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.
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 infoPlatform 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 countdownTying 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.
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.
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 DawnwalkerI’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.
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 availabilityThe 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.
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: designThe 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.
FutureFutureYou 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.
FutureFutureFutureYou 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.
FutureFutureThere’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.
FutureFutureBefore 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.
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 pizzaCooked 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 friesCooked 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 wingsCooked 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 cupBaked 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 breadBaked 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": []}BurgersCooked 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.
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 ifYou 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 ifYou’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 considerTower 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 CompactFor 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
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: SpecificationsPrice
£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)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.
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.
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.
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 considerSuri 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 testedBack 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.
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 ImpressionsMost 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 QualityThe 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 // FutureWith 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 dateThe 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: featuresThe 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.
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.
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.
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.
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.
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.
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.
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.
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.
The Philips 5000 Series Megabasket with Steam Air Fryer is an air fryer and then some.
Sure it does a great job at being an air fryer, and so it should for the premium price tag it comes in at. The sizable 9.5L basket offers plenty of space for family-sized portions, while the handy divider allows you to cook two different foods, at differing durations and temperatures, simultaneously. It’s pretty par for the course these days, but the 5000 Series Megabasket is only just getting started.
Things are turned up a notch with the steam functionality Philips has built in. Being able to perfectly steam vegetables, fish and dumplings without the need for a separate appliance saves on counter and cupboard space, and the results here are just as good as the air fryer.
However, the versatility is kicked into overdrive with the streamfry function, allowing you to bring the best of both worlds to your food. The crispy finish of an air fryer combined with the moisture locking abilities of steam. The result? Some of the best chicken wings I’ve ever made.
(Image credit: Future)All this functionality not only comes at a cost to your wallet, but also your counter top. This is a wide, tall air fryer that requires plenty of space — especially when using the steam or steamfry function, as the water vapor vents from the rear.
I’m a big fan of Philips’ controls though. The touch buttons are intuitively laid out, with easily recognizable icons that require little reference to the manual to work out - that can’t be said of all air fryer brands.
(Image credit: Future)The basket, trays and divider are dishwasher safe, and you can also use the steam function to give the appliance its own steam clean. You will need to give the top a wipe every now and then, as the glossy finish attracts grime — but it’s a minor point in what is an overwise excellent appliance.
Whether you’re looking to make cakes, cookies, sausages, chicken wings, fish, vegetables, fries, dumplings or pretty much anything else, the Philips 5000 Series Megabasket delivers consistently great results.
Philips 5000 Series Megabasket with Steam Air Fryer price and availabilityThe Philips 5000 Series Megabasket with Steam Air Fryer price is £259.99 (about $350 / AU$490), putting it at the premium end of the market, and pits it against the Ninja Foodi FlexBasket in the larger-basket arena.
There are cheaper, big-basket air fryers on the market that also perform well, with the Philips 1000 Series Dual Basket and Tower Elite 11 Litre Flexi Drawer both coming in at around half the price of the 5000 Series.
This exact model (the NA465) isn’t available in the US and Australia, with these regions instead getting the $349.99 / AU$499 5000 Series Dual-Basket Airfryer with Steam (NA551) with two separate drawers, rather than one large one.
Review Model
NA465/92
Number of baskets
1
Number of cooking programs
8
Cooking programs
Frozen fries, mixed vegetables, chicken drumsticks, tray bakes, fish, dumplings, reheat, favorite
Extra functions
Steam, Steamfry, Shake reminder, SteamClean, Adjustable basket size
Smart control
No
Wattage
2750W
Capacity
9.5L
Temperature range
40-200 degrees C
Time range
1-180 minutes
Dimensions
496mm (L) x 329mm (W) x 355mm (H)
Dishwasher-safe
Yes
Weight
8.2kg
Philips 5000 Series Megabasket with Steam Air Fryer: designThe Philips 5000 Series Megabasket with Steam Air Fryer is big, it’s almost as if a UFO has landed on your worktop. Wide and tall, it dominates the kitchen counter — but for good reason.
The spacious 9.5L basket provides great flexibility as one large cooking space big enough for 2.5kg of fries, 1.9kg of ribs, or whole chicken, but can easily be split into 3L and 6L baskets with the included divider. This allows you to cook two separate things, at different temperatures and durations, at the same time.
You can even just choose to use one of the sides only, saving on power consumption when cooking smaller portions.
The only small issue with the basket is its handles, which consist of two small protrusions on either side. It means you have to use two hands to open the drawer, and to lift and carry it.
(Image credit: Future)When the basket is fully loaded with food, it’s heavy so you’ll be using two hands anyway, but for times when you want to quickly check on cooking progress, you can’t open it with just one.
The additional height of this air fryer is down to the inclusion of Philips’ clever steam function, giving you more ways to cook from a single machine. You can steam food in this air fryer, as well as 'Steamfry', which combines both cooking methods.
What this means is you’ll need to consider where you want the air fryer to go, and whether you have suitable space for this 496mm x 329mm x 355mm model to fit - especially if you have low-hung wall cabinets over your worktops.
(Image credit: Future)Hot air vents from the rear of the machine, so you need to leave space between it and the wall, and when using the steam function water vapor will also rise from the back of the machine.
The one meter power cable will be long enough for most kitchen setups, and the Philips 5000 Series comes with a clip-on cable tidy for the rear to keep things neat if you like to store your air fryer in a cupboard when not in use. Although, it’ll need to be a sizable cupboard.
A nice inclusion in the box was a set of tongs, a particularly useful addition when cooking with an air fryer, as it makes tossing food and removing it from the basket much easier.
(Image credit: Future)There’s also a paper manual in the box that covers all the basics, mainly via pictorial guides, but for those who want a more detailed breakdown of functionality you’ll need to download the free HomeID app on your phone.
What isn’t made obvious out of the box is the need to run the air fryer empty initially to burn off the protective shipping coating.
Diving into the app deeper, Philips advises to wash the basket and accessories with a soft sponge, water and washing up liquid, dry them, and then run the air fryer empty, a 200C, for the maximum cook time (which for this model is 180 minutes).
(Image credit: Future)That seemed excessive to me. I did an initial four minute cycle at 180C, allowed the basket to cool down, and then washed it, the divider, and the crisp trays, and set the machine at 200C for 50 minutes. The smell did get very strong during this time, but it did the trick.
When I came to cook with the air fryer for the first time, there was a slight smell during cooking, but it didn’t transfer to the food.
(Image credit: Future)The controls here are excellent, just as they are on the Philips 4000 Series Stacked Dual Basket Air Fryer. The illuminated touch buttons on the top of the machine make it really easy to select the basket size you wish to cook with, and to set the temperature and time.
The only slight negative against this design is the glossy black surface quickly gets dirty, and shows up finger smudges. Plus, if your hands aren’t clean it can sometimes struggle to pick up your presses.
There are a number of presets to pick from too (frozen fries, mixed vegetables, chicken drumsticks, tray bakes, fish, dumplings, reheat), if you want to just press and play.
While the presets are useful, I did find during my weeks of testing they sometimes needed to be fine tuned to my preferred cook level. It’s all part of the early trial and error of using a new air fryer to work out the times and temps that work best for the food you’re cooking regularly.
(Image credit: Future)When it comes to cleaning, the good news is the basket, trays and divider are all dishwasher safe. If you don’t have access to one, hand washing also works - although the sheer size of the basket means it can be tricky to clean in smaller sinks.
Another nice feature is the steam cleaning function. Simple to enact - just make sure the water reservoir is full and select the steam clean mode - it does a good job of loosening grease and marks in the basket. It means you can just run a cloth or paper towel round the basket and it’s pretty much clean. No need for hard scrubbing. It’s not going to remove stubborn marks or pieces of food debris, but it’s a handy option when only lightly used.
The Philips 5000 Series Megabasket with Steam Air Fryer is one of the quieter models I’ve tested, making it an excellent cooking companion, especially in smaller kitchens as the noise doesn’t dominate the room.
As well as the presets, there are a couple of other useful features here. First is the shake reminder, where the 5000 Series will work out how many shake intervals are required based on the cook duration you’ve set, and will beep at set times to alert you to the fact you need to shake or turn the food in the basket.
FutureFutureFutureThis allows you to ensure an even cook, be it fries, chicken wings, vegetables, or pretty much anything else you’re cooking. If you’re not using a preset, you will need to manually enable the shake reminder by pressing the icon on the control panel.
The second handy feature is sync, allowing you to utilize the dual basket setup, and cook two different foods, at different temperatures, for different lengths of time, but have them finish at the same time.
The air fryer delays the start of the side with the shorter cook time, starting it when its duration matches that left on the other side. It’s simple to set up, and works really nicely.
FutureFutureFutureThe 5000 Series Megabasket is certainly well equipped, but how does it actually perform when it comes to cooking food?
As this is a large basket air fryer, and given my penchant for consuming pizza, I decided to kick things off with a simple, store-bought margarita. When I reviewed the Tower Elite 11 Litre Flexi Drawer, I was able to fit a whole round (admittedly small) pizza into the basket.
With the Philips, the basket isn’t as deep, which meant I had to slice my circular pizza in half and lay the two halves at an angle in the basket. It worked fine, but if this pizza was frozen rather than fresh, I would be forced to use the oven.
After warming up the air fryer for a couple of minutes first, I cooked the pizza at 190C for nine minutes. It turned out this was a minute or so too long, as the topping came out a little overdone. It was still fine to eat, but a glass window on the basket would have allowed me to keep a better eye on the progress being made. Alas, there’s no window on the basket.
I returned a few days later however with an oval shaped pizza. This easily sat in the basket, and having learned my lesson I cooked it for seven minutes at 180C.
The final cook was much better, with a crisp base and juicy toppings, although I noticed the part of the pizza towards the back of the basket was slightly more cooked than that at the front.
FutureFutureYou don’t always get a completely even cook from this air fryer, but it wasn’t a problem during the weeks of cooking I did.
Fries came out great with this air fryer, whether they were frozen or fresh. Crispy on the outside, fluffy in the middle, and using the frozen fries setting I got automatic reminders to shake the basket a few times during the 24 minute cook at 200C.
For the fresh fries I had to set the temperature (200C) and time (21 minutes) manually, as well as enable the shake reminder. Still, the results were great.
Baking is another highlight when using the Philips 5000 air fryer, with a simple banana bread recipe producing a moist inside, crunchy-topped loaf with an excellent texture. I cooked it at 160C for 25 minutes, and then 20 minutes at 140C.
I also produced delicious, gooey-centered chocolate cookies, with an eight minute bake at 175C doing the job nicely. The chicken breasts, mixed green vegetables and sausages I also cooked using the air fryer mode all came out well.
FutureFutureBut air frying is only part of the story. The reservoir atop this device is the signal this device has more tricks up its sleeve. The Steamfry function, that utilizes both the air frying components along with generating steam, aims to lock in moisture and enhance tenderness, creating juicy and golden textures. Basically, the best of air frying and steaming in one.
And it works really well. I used the entire basket to Streamfry large, hand-seasoned chicken wings on the chicken preset (32 minutes at 200C).
During the cook there are periods of air frying and periods of steaming, the latter of which are obvious as you can hear the steam being produced, and see it vent out the rear of the machine. If you have it up close to a wall, or under a kitchen cabinet, expect significant condensation. I’d recommend giving it plenty of breathing room when using a steam function.
The results were superb. Wonderfully crisp skin, and juicy meat made for a delicious dinner, and had me returning the next day for lunch to cook the rest of the wings I didn’t need the night before.
FutureFutureFutureAnd when it comes to solely steaming, the 5000 Megabasket performs well yet again. Popping a selection of Japanese chicken and vegetable gyoza into the right side of the basket (steam and steamfry are available in the whole basket, or the right side only) and using the preset dumpling mode produced perfectly steamed, silky pillows.
A word of warning on the presets though, they aren’t a sure-fire win every time. When I cooked some green beans, broccoli, sugar snap peas, I split the batch between the two compartments. The veg I put in the smaller side I air fried, while I opted for steam on the larger side.
I selected the vegetables preset for both, which gave me settings of 200C for 30 minutes for the air fried veg, and 100C for 14 minutes for the steamed side. I also selected the sync option, so both sides would finish at the same time. However, at the first shake reminder for the air fried side (after 15 minutes) it was clear my veg was already overcooked.
(Image credit: Future)I completed the full cycle for both sides, and the air fried veg was cremated. Thankfully, the steamed side had cooked very well, with tender broccoli stems, beans and peas.
Put bigger, chunkier pieces of veg in the air fry side (such as roughly chopped carrots and parsnips) and the preset is closer to what you need. It’s a good reminder that you need to spend time with your air fryer in the initial weeks to find out which settings work best for the food you cook - even with premium models such as the 5000 series.
Attribute
Notes
Rating
Value
There’s a premium price tag, but you’re getting a premium product. The 5000 Series Megabasket is packed full with features, includes a set of tongs in the box, and is well built.
4/5
Design
If you have the space, this is a premium air fryer with excellent controls and plenty of features. The set of tongs included in the box is a nice touch, but the handles on the basket can be a little awkward.
4.5/5
Performance
Whether you air fry, steamfry or steam, you’ll get excellent results from the 5000 series. Its easy operation and impressive versatility delivers consistently great cooks.
4.5/5
Buy it ifYou want excellent versatility
The steam and streamfry modes on offer here are excellent, so if you often use steam to cook, want an additional healthy way to cook, or want to reduce the number of appliances in your kitchen, the 5000 Series has you covered. The removable divider provides more flexibility too, with the ability to cook two separate foods simultaneously. You even get a set of tongs included in the box.View Deal
You want to feed a family
The large 9.5L ‘Megabasket’ provides plenty of space, allowing you to easily cook family-sized portions. It’s great for a large helping of chips, or a bunch of chicken wings.View Deal
You want consistent, delicious results
The Philips 5000 Series Megabasket produces great results in all cooking modes, and you’ll be thoroughly impressed with what it can do. From fluffy cake and gooey cookies, to crispy and moist chicken wings, crunchy fries, and wonderfully steamed veg.View Deal
Don’t buy it ifYou’re on a budget
If you’re after a large capacity air fryer that still performs well and costs significantly less than this Philips, there are cheaper options available. They won’t look quite as sleek, nor will their controls be so well thought out, but you can pick up a budget, large basket air fryer for around half the price of the 5000 series.View Deal
You’re only after air frying capabilities
The steam and streamfry modes are excellent, but if you don’t see yourself ever using them, save yourself some money and go for an air fryer without them.View Deal
You’re limited on counter space
The Philips 5000 Series Megabasket is a big airfryer. Wide and tall, it will dominate small kitchens with limited counter space. It also needs to be positioned away from wall-mounted units and walls, to allow the hot air and the steam to properly vent from the rear.View Deal
Philips 5000 Series Megabasket with Steam Air Fryer: also considerNinja Foodi FlexBasket Dual Air Fryer
An immense air fryer with one of the largest capacities on the market and the flexibility to cook in either two independent zones or convert the drawer into one tray for larger meals.
For more information, check out our full Ninja Foodi FlexBasket Dual Air Fryer review
Tower Elite 11 Litre Flexi Drawer
If you’re after a big-basket air fryer on a budget, the Tower Elite 11 Litre Flexi Drawer has a larger basket than the Philips and is almost half the price. There’s no steam function here though.
For more information, check out our full Tower Elite 11 Litre Flexi Drawer review
How I tested the Philips 5000 Series Megabasket with Steam Air FryerI spent multiple weeks using the Philips 5000 Series Megabasket with Steam Air Fryer in my kitchen. During that time I cooked using the air fry, steamfry and steam settings, and used the various preset modes, along with manual setting.
I cooked a wide variety of food, including baking cakes and cookies, air frying chips, pizzas, sausages and chicken, steaming vegetables and dumplings, and steam frying chicken wings.
I also tested the steam cleaning function, and cleaned the basket, trays and divider both by hand, and with the dishwasher.
First reviewed August 2026
SOAX is a UK company, and a relatively young one at that, considering it was founded in 2020. It started small with only a few people, but as the years passed, it grew to the point that the company’s ethically sourced proxy network comprises more than 191 million IP addresses.
Since our last review, SOAX has undergone a major overhaul, with changes ranging from a new website and dashboard to a better API ecosystem and fresh features. Additionally, the company is now more of a data collection platform (somewhat of a trend in the proxy service industry) built around residential and mobile proxies, rather than operating solely as a proxy IP vendor.
(Image credit: SOAX)Features(Image credit: SOAX )Right from the start, one of the most notable features SOAX has is its sizable proxy pool. The company offers over 155 million residential IPs (all ethically sourced) and proxy servers (including mobile proxies) in more than 195 geolocations. The mobile pool has over 30 million IPs from carriers around the world.
Depending on the pricing plan, you can target any of those locations by country, region, city, ISP, ZIP, or ASN (Autonomous System Number).
IP rotation can be customized to match the specific requirements of each task, either refreshing the IP with every request or keeping the same IP over an extended session (up to 60 minutes for mobile proxies). Tweaking further, you can set custom session lengths.
SOAX lets you adjust how often your IP refreshes to fit your data collection needs. You also have the option to set up sticky sessions that keep the same entry point and IP address for each request. This gives you a consistent online presence throughout your session.
The company has a Web Optimizer feature that improves error management and keeps your browsing stable. There’s also the choice to turn on MaxIP, which helps you get the most unique IPs possible for tasks that call for a lot of IP switching.
Apart from proxy services, SOAX also has data scraping solutions that include managed scraping for AI, SERP, video, and e-commerce data.
The vendor promises 99.9% uptime, with support for HTTP(S), SOCKS5, and UDP/QUIC protocols.
PerformanceDuring our previous testing, we ran some checks from the UK, targeting the UK to get the best possible speeds, and the residential proxy results were very similar to SOAX’s, with the TTFB averaging an excellent 787ms. Speeds you’ll see will vary hugely based on your location, your target, and the proxy type, but clearly the SOAX infrastructure can perform very well.
Plans and Pricing(Image credit: SOAX )After refreshing its service (website included), SOAX changed how the pricing works as well. The main difference is that the pricing now revolves around credits, which represent prepaid usage units. As a rough estimate, 1 credit equals $1 of usage.
The company also has a free no-commitment plan called Sandbox with basic support. You get no credits here, and there’s no subscription fee, but you can buy top-up credits when you need them, which is a good way to test the service out.
The starter plan is called Builder, and this gets you 200 credits, or in other words, it’s priced at $200 a month (VAT not included).
The actual network usage and pricing depend on geo-locations that are divided into three tiers. For instance, tier 1 includes the US, the UK, Italy, France, Germany, Japan, Australia, and other popular locations. So, if you use tier 1 locations, the pricing is set at $3.00 per GB with the Builder plan.
Using tier 2 (India, Brazil, Turkey, Nigeria, and so on), the pricing drops to $2.25 per GB, while tier 3 locations (mostly small countries and island nations) are priced at $1.20 per GB.
Other paid plans include Team (500 credits), Scale (1500 credits), and Enterprise (3000 credits). The main difference between these is that Enterprise has postpaid billing and dedicated IP pools.
All plans mostly share the same features and get 24/7 support, since there are some differences in higher-end plans. For example, Enterprise gets a premium SLA (all others get standard), dedicated IP pools, and CSM support on top of the 24/7 support. Furthermore, Scale and Enterprise plans get ASN and ZIP targeting.
SOAX also lets you pick a country and set a monthly traffic amount to see exactly how much you’ll pay.
The higher the plan, the cheaper the network usage is. So, tier 1 locations are priced at $2.20 per GB with the Team plan, while usage is priced at $1.50 per GB with the Scale plan.
Also, higher plans get more proxy packages, and going from Builder to Enterprise raises that number from 3 to 10.
Speaking of proxy packages, SOAX explains that those let you organize and control proxy access for different teams, projects, or tasks. Each package comes with its own login details, routing rules, permissions, limits, and usage stats, with every proxy request going through one package.
Signing up(Image credit: SOAX )Signing up with SOAX is easy. There are no lengthy identity checks, no need to provide documents just yet (KYC checks don’t happen until you sign up for one of the full paid plans); enter your name and verify your email address (or just sign up with Google), and you’re in.
You’re then prompted to continue with the no-commitment Sandbox plan or upgrade to a paid plan. If you pick the latter, hand over your cash (we were able to pay by card only, but crypto and other options are available once you verify your identity), and the subscription is immediately added to your account.
After that, the website refreshes to the main dashboard screen, a good-looking panel with a whole host of configuration options and status details. There’s a lot to explore, but SOAX does its best to help, offering its ‘get started’ and ‘product’ guides found next to your profile icon.
If, like us, you tend to rush through website onboarding, or sometimes skip it altogether, that’s okay too. The SOAX support chatbot is only a click away, and although it’s not smart enough to solve any complex problems, we found it handy for explaining the ‘where do I find…?’ startup basics. You can get human support this way too, provided you’re not on the Sandbox plan.
The main section of the dashboard is clean without any bloat, clearly showing you how much traffic has been used and how many credits you have left. On the left side, you can find the usage breakdown if you need more traffic details, and the packages section where you can create and manage them.
Getting started with SOAX(Image credit: Soax)Setup complete, it’s back to the dashboard to explore SOAX properly. This all starts with authorization, where you can opt to authenticate with a username and password or via IP whitelisting. We tried both, and in each case had to then specify our preferred IP rotation time, city, state or IP targeting, and assign them to specific ports.
That was enough for our first few tests, but if our needs were more complex, we could add more filters to target different locations or use other IP location schemes.
When you’re done, you can download your proxies in TXT, CSV and HTML formats. A handy Online Proxy Checker allows you to test up to 50 of these, report on their status and response times, and export only the working proxies. (You don’t have to be a SOAX customer to try this, it works with any proxies. Check it out here)
While SOAX offers a lot of proxy configurability and control, it doesn’t have the depth of functionality of the big names. Its proxy API is horribly basic when compared to the likes of Oxylabs, for instance, just a handful of calls to whitelist IPs and get location details. And although Decodo has supporting tools including browser extensions and its X Browser, there’s nothing like that here.
(Image credit: SOAX )SOAX arguably makes up for this, though, with easy integration for a number of anti-detect browsers. The SOAX Integrations page links to tutorials covering how to get SOAX working with 15 popular tools, including Multilogin, GoLogin, AdsPower, Incognition and more.
SupportSOAX has a dedicated documents page where the company has various guides and explanations on topics relating to the service or just general proxy knowledge. A slightly confusing thing is that the page caters to both regular users and developers, so you may encounter some coding terminology in a few guides.
(Image credit: SOAX)The service isn’t that confusing to use, but in case you have trouble, you can find a ‘Quickstart’ guide that can get you started in minutes. Additionally, you can find a similar guide on how to use the dashboard, as well as explanations of what certain settings do.
Then, there’s a help center, which is rather hard to find on the website if you’re not logged in, and it’s much easier to get there through Google. That said, you can find several articles here from the SOAX team, but they’re mostly about available API methods.
More importantly, you’ll find the chat box in this section (or in your dashboard when logged in), which you can use to send a message in case you need customer support. An AI agent is there too, available to answer any general queries, or you can request to chat directly with the support team.
(Image credit: SOAX )Final VerdictAfter the overhaul, SOAX still retained the quality proxy service it provided before. You get a huge pool of residential proxies, a good set of features, and an overall good user experience.
There are some downsides, though. The credit-based pricing might not be for everyone’s cup of tea, and compared to some of its competitors, it’s a bit pricier. Also, unless you’re subscription-based, support will be harder to reach, even if the service isn't that complicated to use in the first place.
Still, the company does a good job of presenting what it can do and what some settings mean, which is especially helpful if you’re not that knowledgeable. Plus, there’s a no-commitment pricing option, allowing you to test the service out before you decide to cash out for it.
As an audio journalist, I’ve covered FiiO plenty of times; the brand is known for beloved digital audio players like the JM21 and digital-audio converters like the FA15. But I was surprised to see the brand enter a totally different market, trying its hand at a gaming headset.
The FiiO FG3 is the resulting device, and it clearly bears some of the audiophile DNA that FiiO is known for. It offers a coaxial dual-driver set-up, which is uncommon in games-focused headphones, and also totes a lightweight DAC control module to jump between audio presets.
So it should be a gaming gem, right? Right? Well, I think something was lost in translation.
FiiO’s hardware is fantastic for music, and the FG3 is the same, with the dual-driver set-up and handy EQ modes working well. However, it’s not quite as good for gaming, which isn’t ideal for a 'gaming' headset.
Audio is often too muddy and rumbly to do justice to the layered sound design of an immersive environment or frantic battlefield. It’s largely the low-end which lets the side down, with higher-pitched sounds cutting through pretty effectively. This won’t affect all games, and dialogue-heavy or rhythm ones will benefit massively from the tuning.
The fit of the headphones isn’t perfect either. While the cups are incredibly soft, the headphones squeeze and the headband is too firm. I had to take breaks from long gaming sessions to avoid my head hurting.
That all may sound like a series of criticisms, but there’s a lot to like here too. The cans are easily portable, and the control app being online-only is a breath of fresh air in this bloatware-riddled world (even if it rules out EQ control when you’ve got no internet).
The FG3 is also, crucially, pretty affordable, and I can see a discount or two making it an absolute bargain. If you’re reading this when they’re even $10 / £10 off, they’ll be an absolute bargain.
So it’s easy to look past some of the more annoying elements, or rougher edges, of FiiO’s sound tuning and design. But I can’t help but hope that the brand’s second foray into gaming headsets makes some improvements on what we’ve currently got.
(Image credit: Future)FiiO FG3: Price and availabilityThe FiiO FG3 sells for $69.99 / £69.99 (about AU$140, though at the time of writing, it’s not on sale in Australia), and was unveiled in June, 2026.
At that price, it undercuts many of the best wired gaming headsets, though it matches our top-rated pick: the catchily-titled RIG R5 Spear Pro HS. That makes it fairly good value for a gaming headset, with many alternatives going for three-figure sums.
For your money, you get the headset as well as a removable microphone, control cable and USB adaptor (which lets you plug the USB-C control cable into a USB-A port, if that’s what you have available).
FiiO FG3: specsPrice
$69.99 / £69.99 (around AU$140)
Weight
0.69lbs / 0.31kg
Drivers
50mm dynamic + 16mm dynamic
Compatibility
PS5, PS4, Xbox Series X|S, Xbox One, Switch, PC
Connection type
Wired (3.5mm or USB-C)
(Image credit: Future)FiiO FG3: design and featuresThe FiiO FG3 comes with a non-removable cable, which connects into a 3.5mm jack. It’s not long, but it’ll reach a hand-held controller. However, it’s best to connect it to a control module which comes in the box; this offers you the ability to mute, change EQ or modify volume, and has a much longer cable which connects to a device via USB-C (or USB-A, thanks to an included adaptor).
These cans aren’t particularly unique-looking, although the cups are slightly canted, which helps them fit a head shape better. They rotate a little horizontally and vertically, which also helps with the fit, though some other elements like the thin metal headband or certain cheap-feeling plastic elements discourage any notion of these being premium headphones. There are no on-cup controls either.
While the ear pads are soft and comfortable, I did find that the padded headband wasn’t padded enough. Longer gaming stints ended in growing aches; the FG3 fit isn’t as comfortable as other gaming headsets I’ve used. A slight squeeze offered by the cans didn’t help either.
You can fold the cups in on each other, and remove the microphone, transforming the headset into a compact unit which is easy to transport (though it doesn’t come with any kind of carry case). Combined with a feature we’ll get to later, it’s a great headset for people who game in different venues.
(Image credit: Future)Now onto the feature set. A potentially-divisive feature of the FiiO FG3 is that you don’t need to download a control app to clutter up your PC. Instead, FiiO’s website offers the ability to change EQ and flick between presets.
I loved the fact I didn’t need to download more bloating software onto my rig, and that I could tote the FG3 between different systems and locations and still customize them, but it does mean that you get no control while offline.
The control site lets you choose three presets, which the control module lets you change between: a gaming mode, a cinema one, and a music one. The latter list, which includes the custom mode, is the one I found myself using most.
This module also means you can still jump between your EQ presets when you're on a console or handheld, so your decision to play on a Switch, PlayStation or Xbox doesn't mean you're banned from customizable sound.
Don’t expect any Active Noise Cancellation (ANC) here. I found that the Passive Noise Cancellation (PNC) or natural ear cup blocking, managed to cut out annoying background sounds from my street, as did the closed-back design. But it won’t save you from louder interruptions.
(Image credit: Future)FiiO FG3: performanceTrue to its audiophile heritage, FiiO has packed the FG3 with two drivers per cup: one 50mm dynamic driver designed to handle mid- and low-end, and a smaller 16mm dynamic driver for higher-end sounds. The benefit of dual drivers, rather than the sole unit found in most gaming headsets, is twofold: firstly, each being dedicated to different frequencies means that they can be better catered to them. Secondly, simultaneous sounds can be delivered with better clarity.
This latter is certainly true of the FiiO FG3, which has a distinct V-shaped sound profile; that means that bass and treble are well-defined and clear, though mids are a little lost. This isn’t a huge issue for gaming, as most sound effects are low or high ones, but it’s audible in music (including game scores).
It’s also clear that the high-end dynamic driver does its job well. Dialogue is easy to make out, even in frantic battles, including in-game audio and friends’ voice chats during gameplay. It’s also easy to make out nearby footsteps or the twinkle of a distant collectible.
(Image credit: Future)However, I’m not as sold on the bass capabilities of the larger driver. In music it’s scooping and well-defined, but while gaming it lacks the power or ‘oomph’ of some other headsets I’ve tested. This means the chatter of your gunfire sounds a little dulled, nearby explosions lose a visceral edge, and roaring monsters sound like they have a sore throat.
Perhaps most importantly, the background rumble of a city or busy landscape which so often defines an alive-feeling open world felt a little too ‘rumbly’ for me. Some of FiiO’s equalization modes go some way to fix its issues, but not the whole way; I never found a way to stop the sound feeling a little muddy, and sometimes even made it worse.
A much-touted selling point of the FG3 is the use of Virtual 7.1, an algorithm which spreads sound to give a feeling of surround sound, without using 8 speakers (which would simply be 7.1 sound). It helps a little in spreading environmental and atmospheric sounds about you, though you’ll never forget that you’re simply getting spread-out headphone sound.
The removable microphone is… fine for purpose, but won’t deliver especially crystalline audio. Even recording onto my PC’s own voice recorder app, speech is a little crackly. However, I appreciate how dexterous the strut holding the microphone is: you can move it to different angles or heights, and there’s far more versatility than in many other headsets I’ve used.
(Image credit: Future)Should I buy the FiiO FG3?Buy it if...You need something easily portable
Between the removable microphone, the foldable build, and the fact that you can use the control app anywhere, this is perfect for going to a friend's LAN party.
You like customizing your sound
The online EQ platform offers you loads of presets and plenty of control over your sound. Plus, the DAC control panel lets you jump between them easily.
You need something suited for long gaming stints
After a few hours with the FG3, my head and ears were asking for a break. It's not the ideal headset for day-long binges, or even a full workday.
You want the best video game sound
If all you care about is the sound of your games, then the FiiO will disappoint you. It's not bad, but its muddy sound profile means you're never getting the best audio possible.
Here are two more gaming headsets that we've given positive reviews to, if you're not sold on the FiiO FG3.
FiiO FG3
RIG R5 Spear Pro HS
Turtle Beach Atlas 200
Price
$69.99 / £69.99 (around AU$140)
$69.99 / £69.99 (around AU$140)
$59.99 / £49.99 (around AU$100)
Weight
0.69lbs / 0.31kg
0.74lbs / 0.34kg
0.62lbs / 0.28kg
Drivers
50mm dynamic + 16mm dynamic
40mm graphene
50mm Nanoclear
Compatibility
PS5, PS4, Xbox Series X|S, Xbox One, Switch, PC
PS5, PS4, Xbox Series X|S, Xbox One, Switch, Switch 2, PC
PS5, PS4, Xbox Series X|S, Xbox One, Switch, Switch 2, PC
Connection type
Wired (USB-C)
Wired (3.5mm)
Wired (3.5mm)
RIG R5 Spear Pro HS
This same-price rival offers great sound and a more comfortable fit. However, there's no way of customizing your sound, and you can't remove the microphone.
Read our full RIG R5 Spear Pro HS review
Turtle Beach Atlas 200
For even less than the FiiO, this Turtle Beach alternative offers a well-designed mesh headband and great mic quality. But its feature set is weighted towards PC gamers.
Read our full Turtle Beach Atlas 200 review
How I tested the FiiO FG3I tested the FiiO FG3 for roughly three weeks in order to write the review. Through this time, I used the headset while connected to my gaming PC; I tried to plug it into my Android phone, but the connection was stuttery.
The majority of the testing was done gaming; predominantly Nioh 3 and Total War: Pharaoh, but with time also spent on Old School Runescape, Isonzo, Slay The Spire, Crying Suns and the Mortal Shell 2 beta. I also used the headset to stream music while at work, and watch YouTube videos and TV shows.
Since I review audio products for a living, I have plenty of experience testing gaming headsets (and using other headphones for gaming purposes). I've also tested other FiiO products.
First reviewed August 2026
I have become quite the expert when it comes to portable power stations. It's definitely a weird flex, but I'll take it when I can get it.
When it comes to power stations, there are several different categories of how they are scaled. Some can run your phone, some can run your fridge, some can run your room, and some can run your house.
The Anker Solix E10 is on that home side. The company calls it "a Whole-Home Backup System, uniting battery, solar and a smart generator." And that's absolutely - and impressively - what it does.
It can scale up to where it could be a larger home and scale down to where it'll be a smaller home, or maybe a large garage, depending on what all you have in your garage.
The point is that it is a power station comparable to probably a Tesla Power Wall, as a lot of people would recognize just due to the brand name. It is not only a reservoir of power that you can pull from in case of a power outage, but also a transfer switch.
It has the ability to connect with solar panels to intake solar power from the sun and utilize that to run your home. Depending on the power company, you have potentially even kicked back some power to the grid and gotten yourself a return.
If you run out of power in case of emergency and you don't have enough solar to run your entire home, you can even connect to a portable smart generator that happens to be tri-fuel. That means you could then run that off of natural gas, propane gas, or gasoline.
So at the end of the day, over the last 141 days that I have had this set up at my home, I have not once worried about a power outage or a storm that's coming, knocking out my power and causing food to spoil or for my kids to panic. In fact, I've welcomed several storms and excitement, actually, to test the system.
Anker Solix E10: Price and availability(Image credit: Collin Probst // Future )Depending on how many batteries and accessories you get, your price is going to change pretty aggressively with this setup, especially if you start counting in install costs as well.
Your base system with one inverter and one battery is going to cost just over $4,000. Once you get up to the Basecamp Power Dock Smart Generator, you get up to $10,000 pretty easily.
You can get these through Anker or Amazon. One thing you will want to note is that, unless you are a licensed electrician, you're going to need to get one to get this all installed. Mine even had to consult with the city code and the utility company in order to get everything approved, since I am tied into the power grid.
(Image credit: Collin Probst // Future )Anker Solix E10: Unboxing and First ImpressionsMy entire setup showed up on a semi truck off a pallet because I got several batteries, the inverter, the generator, and other components needed to help with install.
From the first moment I started unboxing everything and looking at the quality, I was blown away with how sharp this looked. Once I found out that this was going to have to get strapped to the side of my house, I actually wasn't that upset because it looks so sleek and professional.
It doesn't look like it's some toy or cheap product that needs to be mounted, but actually it looks like it's floating. It looks like it's an addition to my home, not just a slap-it-on-the-side. It looks intentional.
Anker Solix E10: Design & Build QualityLike I mentioned, I needed to have a licensed electrician install this, but once he installed it and handed it over to me, the setup process within the app was significantly easier than I'm sure his job was. All I had to do was pair the already set-up device to my app, answer a few questions on how the system was set up, and then I was good to go.
Now I have the ability to run more isolated breakers if I'd like. I can see my power output level. I can see when the smart generator is hooked up and trigger when and how to turn that on. I can check my battery levels.
Another huge thing that I noticed right away is that, much like some of the other units from Anker Solix, I can have my location set so that when there's a storm coming in, it will automatically top my batteries off.
Meaning that I can let them idle and sit at around 80%, maybe 90%, during the winter. When there's a storm, they will automatically top themselves off to help with the longevity of the battery while also still getting the benefit of having the entire battery's capacity when needed.
At first, I was thinking that I would need to have this installed in my garage, but once I found out that it was rated for extreme weather, extreme cold, and even extreme heat, I knew that I could have this outside my home, even in my Midwest temperament, and be just fine.
Anker Solix E10: In use(Image credit: Collin Probst // Future )One of these days I'll get solar added to my roof, but according to what I'm seeing, it looks like the solar input can take up to 9,000 W with two batteries which is madness if you ask me.
What I can speak to is the smart generator. I've tried it both with propane and with gasoline, and both have worked very well. It's a smart generator, meaning that it can automatically trigger when needed based on my E10 power panel, so already I'm a step ahead.
This feels almost like a Generac kind of style, where it will kick on when needed, but what's really cool is that I can disconnect and utilize this as just a generator if I ever needed it as well. If I'm working out on a property somewhere else, or my cabin property, or anything like that, I could bring this generator and get power immediately wherever I need it.
The other nice thing about this generator is that, since it is a smart generator, it has push-to-start, so I won't ever have to rip on that cord unless there's something that's going wrong. Lastly, this generator starts up pretty quickly and has its own built-in Bluetooth and Wi-Fi, so I can pair it to my app independently of the E10 power wall. It runs fairly quietly.
I've tested several times and barely notice it kicking on, and I don't notice it kicking on. When it comes to the power output on the inside, it seamlessly transitions, and I haven't even noticed a flicker or the inside of my house recognizing that there's power loss at all.
It's genuinely a bit hard for me to understand sometimes, even being in this world, but this one little generator has been able to run my entire home when testing. I've intentionally made the system go off-grid, and then my house will run simply off of this generator, and there have been zero drops in ability.
Admittedly, I'm not charging a car off of my house or anything else insane while doing that, but a full house with two fridges, microwaves, air fryers, two-stage HVAC, and 3,000 sq. ft., plus a basement. I've had zero issues running off of this one simple generator.
I used to have the F3800 Whole-home backup system through Anker. While that worked and was solid, I was very aware of the battery capacity, just in case there was ever an issue. Now, though, I don't have any concern at all because, worst-case scenario, I can run off of gasoline.
If I run out of gasoline, I can run off my two propane tanks that I have at the house. While I'm running those, I can go and get more gas if I needed to, or more propane. Down the road, I could hook up to my natural gas line as well.
This may not be for everyone, but I have had a hard time pointing people away from it when I've talked to Dee about Whole Home Backup Systems. Other than, of course, the cost and the fact that this is slightly different than what people have gotten used to when it comes to a Generac or Tesla Powerwall. When I explain just how beneficial my system is, it definitely gets their head turning and gets them interested in this for their own.
One final positive note is that down the road, if I choose to get an electric vehicle or expand or want to have some additional power outside of my house, I could run an independent circuit directly from this Powerwall and then control it from my phone. Anker allows me to customize the output, the schedule, and the control of the circuit independently from my house, and I can do it all from my phone.
Anker Solix E10: Final verdict(Image credit: Collin Probst // Future )The Anker Solix E10 Powerwall makes incredible sense for most homeowners, especially those who are looking for some flexibility and want to have the gas, propane, or natural gas backed up as well. Not only can I use this as a whole-home backup system, but then I can actually use each piece independently for more than what they originally used it for.
It is, of course, a bit of a headache having to consult with the local electric company to ensure that you can hook up your system in line with the grid, because that is a very real concern. It did cause some delay for my install; however, if you can get that solved, this is an absolute no-brainer for me.
Collin Probst // Future Collin Probst // Future Collin Probst // Future Collin Probst // Future Collin Probst // Future Collin Probst // Future Collin Probst // FutureFor more off-grid essentials, we've tested the best portable power stations.
Onimusha: Way of the Sword has blown me away after 30 hours with its engaging, emotional, and immersive narrative, filled with epic combat encounters. Capcom nailed the sword-fighting in almost all areas, further aided by some of the best boss battles I've ever played in the action-adventure genre.
Review infoPlatform reviewed: PC
Available on: PS5, Xbox Series X, Xbox Series S, PC, Nintendo Switch 2
Release date: September 4, 2026
The enemy variety in Way of the Sword appears a little weak initially, but fortunately, there is surprisingly a decent number of diverse enemy types to tackle, some of which will put players' skills to the test, and enemies that tie directly to some of the darker and morbid aspects of the story — giving me every bit of motivation to defeat those responsible.
Much like previous games in the Onimusha series, upgrades and enhancements work by collecting red souls from defeating enemies or by finding other necessary resources to stay well-equipped for more difficult encounters or boss fights (because there are many of them).
Capcom has blended elements from the beloved franchise with modern elements (notably thanks to the RE Engine, used in Resident Evil Requiem), creating a sword-fighting, narrative-driven experience that successfully revitalizes the franchise for future entries — and yet again, it proves that it's in the best form it's ever been in.
What it takes to be the strongest(Image credit: Capcom)In Onimusha: Way of the Sword, we follow Miyamoto Musashi, a confident young samurai looking to climb to the very top to be the best swordsman there is, battling rivals and those with the same goal. When an encounter with a fierce rival, Sasaki Ganryu, goes wrong, both Musashi and Ganryu are thrust into lives and roles neither could ever expect.
Genma (demons) are seeping into Kyoto, Japan, from the depths of hell, and chaos is unfolding, with the lives of innocents taken brutally, and formidable Genma tormenting those who are vulnerable.
Musashi and Ganryu seek the same goal: master the blade and become the ultimate swordsman. However, both will eventually learn that far more important matters are at stake: humanity's attempt to repel Genma is in dire need of attention, and with Ganryu led astray, it's up to Musashi to forge the right path to heroism.
Equipped with Oni gauntlets, Musashi and Ganryu possess strengths far above the ordinary human, with plenty of abilities to challenge and defeat Genma. However, as expected, with that power comes plenty of responsibility.
Do strength and power derive from one's own efforts? Is it honorable to seek absolute power with the sacrifice of innocents? These are questions Musashi is left to answer throughout his journey, learning through victory but also through trial and error, ultimately creating an engaging rollercoaster that kept me on the edge of my seat.
Musashi is far from perfect in his use of Oni powers, but the character's development throughout the Way of the Sword and his bravado (significantly amped by the face model of the late and legendary Toshiro Mifune) are the strongest aspects of the game, keeping you coming back for more after each main story mission.
Miyamoto Musashi shines in every single cutscene, with a level of charisma that accurately represents the legendary Japanese figure, Musashi himself, and Toshiro Mifune's prowess. (Video Credit: Capcom)
As much as Onimusha: Way of the Sword maintains a strong focus on sword combat, it's very much a strong cinematic experience, with cutscenes that are absolutely phenomenal. The level of detail in every character's facial expressions and speech makes it feel like you're watching a movie at times.
Unfortunately, that makes the switch back to gameplay and dialogue sequences quite jarring. It's not that the visuals aren't great during gameplay; it just doesn't match up to those cinematic sequences, and I found myself constantly wishing gameplay looked as great as those important cutscenes — but ultimately, those beautiful visuals are designed for what's most important: the story.
Exceptional, addictive sword combat(Image credit: Capcom)Unsurprisingly, the combat in Onimusha: Way of the Sword is fantastic, taking fundamentals from what series veterans are accustomed to, alongside new and exciting skills, making every encounter entertaining.
As mentioned in my preview, the Issen technique makes its return, allowing players to viciously strike enemies right before being hit, and it makes for an incredible spectacle.
More importantly, parrying and deflecting are pivotal to overcoming foes in Way of the Sword. Just like Sekiro: Shadows Die Twice by FromSoftware, both defence options significantly deplete enemy stamina or 'posture', leaving them open to attacks for huge damage.
Way of the Sword treats Sekiro's 'deathblows' slightly differently; instead of one central area to attack, players have several options for areas to strike against bosses.
In scenarios where Musashi runs out of Hozuki (used for quick healing), most bosses will have a limb or part of a weapon (notably with the Byakue boss) highlighted in purple that is filled with red, yellow, blue, and purple souls, but does less damage to the enemy compared to the traditional main attack.
It's an aspect of combat that creates a dynamic back-and-forth between Musashi and various bosses, especially if you need more yellow souls for health from dealing too much damage earlier on.
Patience is key when attempting to execute Issen or Chain Issen, as the timing window is very narrow, more so than those for parries and deflects. When mastered, though, you'll overcome most enemies with ease. (Video Credit: Capcom)
Capcom did promise that enemies further into the game's story would be more difficult, after players voiced concerns that the demo was too easy. While I can say that endgame enemies are certainly more formidable and aggressive, some even making me sweat when in larger numbers, most basic enemy encounters are still easy.
This is directly due to Capcom's design for Way of the Sword's combat, which is very obviously focused on replicating samurai-like fights, taking after historical samurai duels that often ended in a single strike. Enemies won't attack Musashi in groups, making clashes with enemies easy, but I can see what director Satoru Nihei was aiming for with slower, more deliberate, and steadily paced sword clashes.
Fortunately, once you beat the game, you'll unlock the hard mode, Carnage, which is encouraged for use in New Game Plus. This raises the stakes to a new level, as a single hit could result in death, similar to Sucker Punch's Ghost of Tsushima and its Lethal difficulty.
While that doesn't directly address the fundamental aspect of enemies not attacking Musashi all at once, it will keep players on their toes to remain efficient in combat.
Musashi is an absolute badass in every scenario he's put in (Image credit: Capcom)Onimusha: Way of the Sword genuinely has some of the best animations I've ever seen in any video game, particularly when parrying. Musashi oozes so much swagger in every single fight, making his confident and cocky attitude shine through combat, not just dialogue and cutscenes.
At the same time, I was slightly disappointed to see that Musashi's katana is the only primary weapon to use throughout the game. Yes, you'll find Oni Armaments on the journey, which effectively act as secondary weapons, but they require blue souls to pull off special attacks. It's a step away from a series tradition, where characters like Samonsuke or Jean Reno had a wide arsenal of weapons to use on the fly.
The game excels at its parry and deflect animations, but is surprisingly lacking in the number of animations for enemy finishers — and I couldn't help but feel like another primary weapon besides the katana would instantly fix that.
Nonetheless, Onimusha: Way of the Sword's boss fights make up for it, as they are easily the standout in an already immersive and addictive game experience. While some of the boss encounters are repeated too often, particularly during the game's climax, they are easily among some of the most epic boss battles I've played in games.
Besides the final boss battle, Dohatsu-ten is a strong favourite of mine, putting my reflexes to parry fast attacks to the test, and its design reminds me of Capcom's very own familiar and beloved half-demon, half-human demon hunter, Dante. (Video Credit: Capcom)
Best Bit(Image credit: Capcom)Onimusha: Way of the Sword has several breathtaking boss encounters from start to finish, but the very final boss fight is perhaps now among the best I've ever played in gaming. Without diving into spoiler territory, it was a battle that gave me the true sword fighting back-and-forth I was yearning for throughout the game. Capcom nailed this boss encounter, as it quite literally pushes you utilize every single skill and maneuver Musashi has learned, to overcome an incredibly ferocious and fast foe — and I can only imagine how challenging it will be on the hard mode difficulty.
If difficulty is a major concern, fear not, because not only are the boss fights a fantastic spectacle, but they're also very challenging. Bosses will often launch attacks (where swords have a purple glow) that can't be dodged or blocked, so players must parry or deflect them or lose plenty of souls in the process.
Losing souls from being hit by an enemy's unblockable attack is very risky, as they'll be collected and used to make them even stronger mid-fight — and this is the last thing you'll want to happen during the final boss fight, which I won't spoil.
Players will also have to look out for bosses attempting to grab Musashi by hitting the dodge button just before it lands, as mistiming this results in serious damage and can single-handedly decide a fight. Pulling off well-timed dodges, parries, deflects, and counters to grabs makes the entire combat experience addictive, and once you unlock the Oni transformation, the game takes a new leap to greater heights.
What about performance?(Image credit: Capcom)I played Onimusha: Way of the Sword on my main desktop gaming PC, equipped with an RTX 4080 Super and an AMD Ryzen 7 5700X3D processor, and performance was the least of my concerns. Through most of my 30-hour playthrough, I played at maximum graphics settings at the 3440x1440 display resolution, with DLSS Quality enabled, and consistently stayed above the 100 fps mark.
When testing the game on my Lenovo Legion Go S Z1 Extreme handheld gaming PC, I could easily hit around 40fps with graphics settings preset to medium, with FSR set to balanced, at around 24W (power consumption).
This is another Capcom game that runs very smoothly, which was a worry considering some of its semi-open world hubs. The RE Engine seems to struggle in open-world (open-area) games like Dragon's Dogma 2 and Monster Hunter Wilds, rather than those with linear environments in Capcom's Resident Evil games.
I did experience a few odd moments of heavy frame rate dips during some cutscenes, but these were few and far between, so it didn't break the flow of important narrative development.
There is full ultrawide support in both cutscenes and gameplay, which isn't exactly common for PC ports, as the former is often restricted to the 16:9 aspect ratio.
Should you play Onimusha: Way of the Sword?Play it if...You love games that heavily rely on parries and counters
Onimusha: Way of the Sword is a sword-fighting fan's dream, with enough combat and duels that will keep you addicted to rematching the toughest bosses, and frankly, should be enough to encourage a second playthrough.
You love the Onimusha games
Without a doubt, Onimusha: Way of the Sword is the best game in the Onimusha series, with Capcom managing to keep mechanics from the original games while adding new content for a modern audience, thanks to the help of the RE Engine.
You're looking for a soulslike challenging experience
Onimusha has never been, and seemingly never will be, the franchise that follows in the footsteps of soulslike experiences. Way of the Sword is challenging, but it doesn't punish players for mistakes in the same way something like Elden Ring or Lies of P would.
You hate repetitive boss encounters
Boss fights are the highlight of Onimusha: Way of the Sword, but it's clear to see that there are far too many boss battles that are repeated at different segments of the game.
Onimusha: Way of the Sword has plenty of accessibility options, notably color blindness aids alongside visual and auditory accessibility presets. Within those presets lie options such as subtitles (toggle on or off), subtitle size, subtitle background, menu text size, and HUD size.
There are also numerous options to change the blood color, disable dismemberment, remove action prompts, and motion sickness reduction settings.
Players can also change keybinds for mouse and keyboard play, while there are several different options for sprint control (toggle or hold), deflect control, menu cursor speed, and even one to disable the Windows key's functionality.
The game ships with DLSS 4.5 and FSR 3 frame generation, CPU performance presets, and ray tracing, which doesn't seem heavy to run — at least on a high-end gaming system.
How I reviewed Onimusha: Way of the Sword(Image credit: Capcom)Most of my 30-hour playthrough of Onimusha: Way of the Sword was on my main gaming PC, using the LG 45GS95QE OLED ultrawide display, providing exceptional immersion thanks to its 800R curvature.
During my trip to Gamescom, I put Onimusha's performance to the test by lowering my Lenovo Legion Go S handheld's TDP as much as possible, and was quite impressed by how steady it was around 40fps. It's certainly possible to achieve 60fps, but it would require lowering graphics settings further and increasing the TDP.
First reviewed August 2026
I've always been a big fan of the ThinkPad lineup. Although that's a very clear lineup, split across the S series, the E series, and beyond.
The S series is the slimline series, and even with a 16-inch laptop, the fact that they can keep it this lightweight is pretty impressive. It begs the biggest challenge: what backpack are you going to put it in? Not necessarily if you want to carry it with you or not.
This is the kind of laptop that you want to bring with you if you need some serious power and some screen real estate, but not necessarily a high-power CPU. I wouldn't bring this with me if I'm trying to edit video or push some 3D renderings or anything like that. If I'm doing coding work, need some serious CPU on the go, and want that bigger screen without breaking my back carrying it around, then this is one I would strongly consider.
It is supposed to be a desktop replacement, after all. One thing that Lenovo loves to talk about with this laptop is its ability to run CAD at a desktop performance level, even without the BVR GPU. The RTX Pro 500 Blackwell GPU is plenty good enough for most 3D renderings and mobile work.
Lenovo ThinkPad P16s Gen 4: Price and availability(Image credit: Collin Probst // Future )The ThinkPad P16s Gen 4 is widely available from both Lenovo and online retailers like Amazon and B&H Photo. You can pick up the Ultra 7 with 16 GB of RAM and 512 GB of storage for around $3,000, but it comes in a range of configurations.
That's about what we'd expect for a workstation packing this sort of power, and puts it around $2000 cheaper than the behemoth ThinkPad P16 Gen 3.
It's available with an Intel chip in the US here and UK here via Lenovo. For the AMD version, Lenovo has it in the US here and the UK here.
(Image credit: Collin Probst // Future )Lenovo ThinkPad P16s Gen 4: Unboxing and First ImpressionsI'm fairly certain that unboxing every single Lenovo laptop that I've ever opened has been nearly the same exact experience. So much so that I frequently have to properly label the boxes so that I don't get them mixed up when I'm reviewing several ThinkPads at one time.
With all that being said, there's nothing fancy or outrageous about the ThinkPad unboxing, and that's honestly one of the things I love about them (and one reason, beyond hardware, that I suspect they're a business favorite). The unboxing experience very matter-of-fact.
Taking it out of the box, I was impressed that the laptop is just as slim as Lenovo claims. While it's not the thinnest of my laptops, it's not even the thinnest of all the ThinkPads I have right now, it's startling how well-designed it is considering how powerful this machine is.
Lenovo ThinkPad P16s Gen 4: Design & Build QualityIt's almost boring to talk about Lenovo laptops when it comes to reviews and design and build quality, because they all look almost identical: just slightly different thicknesses and minor changes, but nothing major.
In a sense, that's one of the major strengths, though. They all have phenomenal build quality. It's one of the reasons so many businesses rely on them: they are built to last and to be used and abused, not just looked at as a pretty showcase device.
As all good performance business devices should, the ThinkPad P16S Gen 4 has a MIL-STD-810H-tested build and a spill-resistant backlit keyboard.
It still feels snappy and comfortable to type on all day long. It has a large trackpad, great ports, the track point that people either love or hate, and even core features such as a privacy shutter and human presence detection.
Lenovo ThinkPad P16s Gen 4: In use(Image credit: Collin Probst // Future )I've been jumping in and out of this laptop, along with several others, for the last 100 days or more. So far, it's been able to handle even my most demanding AI business workflows. Yes, while I do write all these reviews by myself without any help from AI, there are several other clients that I have in my day-to-day jobs that I do utilize AI heavily for.
In those times, I'm running several chats at one time across ChatGPT, Claude, Notion, and even Gemini. Sometimes my computer can definitely get slowed down on some of my testing machines.
This one, however, seemed to hold up pretty well, even with multiple AI workflows at the same time, which is pretty impressive. It could be because of its RAM or just the powerful CPU, but either way, this machine gets the work done.
Of course, we are using this for day-to-day office work as well. For basic admin, this machine is overkill and will do it without any problem. The 16-inch screen is great for spreadsheets, research, email, really anything that you need to get done in a business context. But where it really shines is heavy CPU Tasks on the go.
I carry a MacBook Pro 14-inch every day, and that seems just about the largest I normally want to carry. Most 16-inch laptops that I try to carry in my normal backpack are a little bit too big, but the ThinkPad P16S Gen 4 does fit in my normal backpack size. If you are looking to get one and you're curious, that's good news for you.
Further, if you are one of the people who are lucky enough to be in a constant work-from-anywhere or remote work environment or job, and you need something that can handle every workload, this one is a phenomenal option.
Purely for research purposes only, I spent an afternoon at a coffee shop working away at this laptop, and it was very comfortable. It wasn't too big for the awkwardly small café tables and some coffee shops, nor was it awkward to pull out. I was able to get my work done.
The keyboard is comfortable enough to type on all day long. The mics are strong enough for dictation in virtual meetings, and it actually didn't even sound too bad using the built-in mics for virtual meetings in a moderately background-noise-filled coffee shop
Lenovo ThinkPad P16s Gen 4: Final verdict(Image credit: Collin Probst // Future )If you're a developer on the go, if you work on GPU-light but CPU-heavy work, or if you just need a machine that won't slow down with your heavy workloads, then the ThinkPad P16S Gen4 may be something worth considering for you.
This slim moniker really does showcase itself here, all while keeping the same trusted and reliable ThinkPad build. This is definitely designed for mobile pros but could be utilized by just about anybody if the build and specs are right for you.
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 // FutureFor more powerhouse performers, we've tested the best business laptops, the best mobile workstations, and the best laptops for engineering students, which is one area I'd definitely recommend the ThinkPad P16s Gen 4.
The MSI Claw 8 EX AI+ is a high-octane handheld games console that can run PC and Xbox games from a wide range of game stores. With the Intel Arc G3 Extreme chipset — featuring the Intel Arc B390 GPU and 32GB RAM — it’s easily the most powerful portable console I’ve ever (quite literally) gotten my hands on. But there’s a pretty huge catch to that performance: a price tag that would buy you two Steam Deck OLEDs or a mid-price gaming laptop.
Let’s start with the superficial stuff: the MSI Claw 8 EX AI+ looks gorgeous. Its screen is an extensive eight inches across, offers wonderfully rich colors and a silky-smooth 120Hz refresh rate. Combined with its discreet RGB lighting around the asymmetrically placed thumbsticks and Void Purple colorway, it has a unique look that definitely helps it stand out from the crowd.
But its design goes far beyond aesthetics. Its Hall effect thumbsticks and triggers should not only offer greater longevity, but they felt really responsive, even if they’re not quite as sensitive as the TMR versions now offered by some controllers. Meanwhile, it felt perfectly ergonomic in my hands — I was genuinely surprised how light it felt for a 1.73 lb / 786g console — although its laser-etched grips sure made my hands feel sweaty, for some reason.
What cements the MSI Claw 8 EX AI+ as one of the best handheld games consoles out there, though, is its performance. It’s the first gaming handheld on the market with the Intel Arc G3 Extreme chipset and, boy, does that have a pronounced effect on how it plays. While benchmarks showed it offered similar CPU performance to the recent Asus ROG Xbox Ally X, thanks to its Intel Arc B390 GPU and 32GB RAM, it managed to smash its 3D Mark benchmarks by between 35% and 76% — that’s a significant performance upgrade.
Numbers only tell part of the story, though: what was the Claw actually like in action? Well, Baldur’s Gate 3 looked truly gorgeous on Ultra graphics settings and yet it hovered around a decent 38fps. Meanwhile, despite only being released in 2025, both Doom: The Dark Ages and Clair Obscur: Expedition 33 played at a rock-solid 60fps — whether I was punching demons to death or countering devastating attacks, there wasn’t a hint of latency or lag. Even the boss-level challenge of The Elder Scrolls 4: Oblivion Remastered hit 60fps at points… before plunging to a stuttery mess in busier areas. Still that’s impressive stuff for a handheld console.
(Image credit: Future)But the MSI Claw 8 EX AI+ has a pretty huge barrier to Fosbury flop over: its price. In return for its premium components, you’ll pay a seriously premium price tag of $1,799.99 / £1,399.99 / AU$2,849. Not only is that significantly higher than any other gaming handheld to date, it’s also as expensive as some mid-range gaming laptops.
And that presents an enormous problem for the Claw. Despite the fact that some of the best gaming laptops come in at a similar price, many of them offer superior performance in our benchmark tests. Now don’t get me wrong: no gaming laptop offers the kind of ergonomics or compact form factor you get here, but I do have doubts that the pro gamers that can afford this kind of device will be willing to trade performance simply for the sake of increased maneuverability.
That’s a real shame because in almost every respect, the MSI Claw 8 EX AI+ is a fantastic gaming handheld that has really stretched my expectations of what this kind of device is capable of. I want one. And you should too. But I’m not convinced either of us will be able to justify the spend.
(Image credit: Future)MSI Claw 8 EX AI+ review: price & availabilityHaving launched on June 23, 2026, the MSI Claw 8 EX AI+ is available now. As you can see from the specs — or if you took sneaky peak at the benchmarks in the performance section — it’s seriously mighty for a gaming handheld.
It’s the first handheld console on the market that rocks the Intel Arc G3 Extreme chipset, which includes the 12-core Intel Arc B390 GPU and a hefty 32GB RAM. That puts it considerably ahead of most of its competitors, even if it can’t quite rival any of the best gaming laptops for sheer processing punch.
Unfortunately, like the hero in a Greek tragedy — or Oddyseus, apparently — it has a fatal flaw. The price. At $1,799.99 / £1,399.99 / AU$2,849, its cost is possibly the most eye-watering thing I’ve come across in a while and that includes all the people on social media that bragged about raw-dogging the solar eclipse in August. While the price tag here might not literally melt your retinas, it’s likely to give you second thoughts.
By comparison, we threw some shade on the Asus ROG Xbox Ally X for its price on its release — and that only retailed for $999.99 / £799.99 / AU$1,599. The Claw 8 EX AI+’s sticker price outstrips every other handheld console by quite some margin, sitting more up the gaming laptop end of the spectrum. For example, a mid-spec Alienware 16X Aurora, with Intel Core Ultra 9 275HX, Nvidia GeForce RTX 5070 and 32GB DDR5, goes for $1,999.99 / £1,799 (around AU$2,800). Ultimately, I think there aren’t going to be that many mainstream gamers able to pay this price and those that do are going to expect stellar performance in return.
(Image credit: Future)MSI Claw 8 EX AI+ review: specsCategory
Specification
Price
$1,799.99 / £1,399.99 / AU$2,849
Display
8-inch FHD+ (1920 x 1200), 16:10, 500 nits, 120Hz IPS touchscreen
CPU
Intel Arc G3 Extreme
Graphics
Intel Arc B390
RAM
32GB LPDDR5X-8533
Storage
1TB PCIe Gen4 NVMe SSD
Port selection
2x USB-C / Thunderbolt 4, 1x microSD Express card reader, 1x 3.5mm headphone/mic combo jack
Weight
1.73 lbs / 786g
Dimensions
11.7 x 4.9 x 0.94 inches / 297 x 124 x 24mm
MSI Claw 8 EX AI+ review: designI’ll be honest: when I first picked up the MSI Claw 8 EX AI+, I was pretty shocked by how light and manageable it felt. Fundamentally, this is not a small console — it’s as broad-shouldered as the Steam Deck OLED or the Lenovo Legion Go S and weighs in at 1.73 lbs / 786g, which is the heaviest gaming portable I’ve gotten my hands on to date. But despite this, it never felt at all bloated, sitting comfortably in my grasp.
I’d chalk this up to its ergonomic design. On top of feeling well balanced, it offers flared grips, unlike previous iterations of the MSI Claw. These sat really comfortably in my hands, although they aren’t quite as easy to wrap your hands around as the controller-mimicking forked grips of the Asus ROG Xbox Ally X.
This was also helped by the laser-etched texture of its grips, which enabled me to keep a decent grasp on the Claw. But I will say they aren’t quite as comfortable as those on some of the best Xbox controllers I’ve tested, feeling a little on the rough side and quickly getting sweaty as I tried to splat sakapatates in Clair Obscure: Expedition 33.
The MSI Claw 8 EX AI+ also left a pretty good impression on some of my other senses too. No, I didn’t lick it — I’m talking visual appeal here, rather than gustatory. Subtle RGB lighting around each of the thumbsticks is my personal highlight, although I’ll also give its gentle curves and Void Purple colorway honorable mentions as well. Honestly, I’m a little less jazzed about the way the screen juts out past the bottom of the device, but this does seem to be a more common look these days, with the jutting grips of the Asus ROG Xbox Ally X creating a similar effect.
Speaking of screens, despite it not quite rocking the richness of the Steam Deck’s OLED display, the Claw 8 EX AI+ has a beautiful looking screen. As a result of its expansive eight-inch breadth and 16:10 aspect ratio, it rocks a 1920 x 1200 resolution, not to mention a variable refresh rate of up to 120Hz. Every game I played always felt detailed and smoother than whipped cream under a heat lamp. Meanwhile, its 500 nit typical brightness felt plenty bright enough in most settings — on max brightness, I even found I was able to play it outside, although when I faced it directly toward the blazing August sun, it was quickly overpowered by the fiery onslaught.
(Image credit: Future)Anyone familiar with previous incarnations of the MSI Claw will be pretty familiar with the layout here. The Claw 8 EX AI+ has the same combo of asymmetrical thumbsticks, Xbox-style face buttons and vertically aligned Menu, MSI Center M, View and Quick Setting buttons that you’ll have seen on previous iterations. There’s only two macro buttons on its rear, which honestly feels a bit stingy compared to the four offered by the Steam Deck and many Xbox controllers.
On the plus side, the Claw 8 EX AI+ is packing both Hall effect thumbsticks and triggers — as well as preventing the inexorable drift issues that plague potentiometer thumbsticks, Hall effect sticks and triggers also offer smaller deadzones and increased sensitivity. They’re not quite as sensitive as the marginally fancier TMR thumbsticks and triggers you see in a lot of premium controllers these days but I’m not aware of any portable consoles that offer those currently.
So for the most part, its control scheme is suitably versatile. The only area it falls a little short is the lack of built-in mouse control for games that require a cursor. Unlike the Steam Deck’s super flexible trackpads or the quirky hybrid mouse-cons offered by the Nintendo Switch 2 and Lenovo Legion Go 2, the only way I could mimic a mouse input on the Claw 8 EX AI+ was by jabbing its touchscreen with my greasy hand-sausages. That ain’t gonna cut it for some Steam and Windows games. Now, in MSI’s defense, it has never pitched the Claw as a substitute for PC gaming, but it is a shame that some sections of my Steam library will lay tantalizingly just out of reach. Of course, I could connect a mouse via USB or Bluetooth, but that then prevents the MSI Claw 8 EX AI+ from being as portable.
Another criticism I have is the fingerprint scanner. While I appreciate that these narrow scanners are space-efficient, they’re not efficient in any other sense of the word. Every single time I tried to log in to the MSI Claw, I found I had to pop my pinky on the scanner three or four times just to access the home screen. Given my MacBooks’ Touch ID readers require just a single tap to unlock, I honestly wish MSI found a way to squeeze in a circular scanner here.
(Image credit: Future)MSI Claw 8 EX AI+ review: performanceMSI Claw 8 EX AI+ benchmarksHere is how the MSI Claw 8 EX AI+ performed in our suite of benchmark tests:
3DMark Port Royal: 3,544; Fire Strike: 12,358; Time Spy: 6,534
GeekBench 6.5: 2,492 (single-core); 12,550 (multi-core)
Total War Warhammer 3 1080p (Ultra) 81.3fps (Low) 142.5fps
Cyberpunk 2077: 1080p (Ultra) 43fps (Low) 75fps
Dirt 5: 1200p (Ultra) 48.3fps (Low) 95.7fps
PCMark 10 Battery Life (Gaming): 1:40 hours
While the MSI Claw 8 EX AI+’s looks are impressive, what makes it exceptional is what’s going on underneath the surface. While gaming handhelds have previously involved some performance tradeoffs in return for their diminutive size, that’s not the case here, thanks to the Herculean Intel Arc G3 Extreme chipset it’s packing. MSI claims that the Arc G3 Extreme should unlock 42% faster performance on average compared to the AMD Ryzen Z2 Extreme that the Asus ROG Xbox Ally X is rocking, although this requires a little unpacking.
Certainly, performance benchmarks alone don’t suggest the Arc G3 Extreme is leading the field. The Claw 8 EX AI+ hit 2,492 single-core performance and 12,550 multi-core performance in our GeekBench tests, compared to the 2,788 and 12,883 scores nabbed respectively by the ROG Xbox Ally X. So for raw processing power, there’s not a huge amount of light between the two chipsets, with the Ryzen Z2 Extreme taking a narrow lead.
But factor in graphical performance and Intel’s SoC absolutely spanks AMD’s. With the help of the Intel Arc GPU B390, the Claw 8 EX AI+ gets some seriously punchy 3D performance — in our 3DMark benchmarks, it scored 3,544 in Port Royal, 12,358 in Fire Strike and 6,534 in Time Spy, compared to the 2,006, 9,141 and 4,033 the ROG Xbox Ally X hit. Those are 76%, 35% and 62% increases respectively, gains which show the Claw’s graphics are seriously swole.
And that translates to some staggeringly smooth performance in-game. On Ultra settings, Total War: Warhammer 3 comfortably averaged out at 81.3fps, while on Low settings Dirt 5 ran smoother than a nitro cold brew at 95.7fps and still managed a very creditable 48.3fps on Ultra. But what blew me away most is how well it ran Cyberpunk 2077 on Ultra settings with ray-tracing disabled, netting a reasonably polished 43fps — that’s downright playable and throws some serious shade on the ROG Xbox Ally X, which only managed 8fps.
Unfortunately, while these benchmarks are impressive compared to other gaming handhelds, at this price those aren’t the Claw’s biggest competition. Several of our picks for the best gaming laptops have costs in the same region and yet offer significantly better performance.
For example, the Alienware 16X Aurora with Intel Core Ultra 9 275HX, Nvidia GeForce RTX 5070 and 32GB DDR5 we tested costs only a few hundred dollars / pounds more at $1,999.99 / £1,799. And yet its performance is leagues ahead of the Claw, hitting a 3DMark Time Spy score of 13,594 and Fire Strike score of 31,480 — that’s double and nearly triple the Claw’s scores respectively. Naturally, you’re not getting the same compact form factor but I wonder how much that truly matters for the kinds of gamers that are willing to drop almost one and a half grand on a pro gaming device.
Okay, enough nerding out over numbers. Time to focus on the thing you actually care about: how the MSI Claw 8 EX AI+ actually feels to play.
(Image credit: Future)Honestly, what the MSI Claw 8 EX AI+ is capable of kinda blew me away. As those benchmarks would suggest, it can offer ludicrously smooth frame rates. Playing a 2D game like Hollow Knight: Silksong, it remained rock solid at 120Hz, with all the action as Hornet zipped around the rich, mysterious landscapes of Pharloom as slick as ice on a spring day.
Granted, that might not feel like much of a challenge, but this unflappable stability carried over when I transitioned to modern 3D games. Clair Obscur: Expedition 33 ran at a wonderfully smooth 60fps. Rather than having to strip it down to the basic visuals required to get it running on the Steam Deck, it actually looked pretty great and ran so stably I was able to crack out counter after counter on chromatic bosses. Being able to enjoy the game on the go felt like such a novelty that I’d honestly be happy to mop up the game’s remaining optional bosses purely on handheld.
Keen to push the MSI Claw 8 EX AI+ to breaking point, I even tried playing a bit of The Elder Scrolls 4: Oblivion Remastered on Xbox. I’ll admit my expectations were pretty low here, as I’ve heard plenty of people complaining about performance issues on their 5000 series Nvidia GPUs. And yet, amazingly, it was playable.
Well, kinda. With the graphics settings on Low while in the depths of Xedilian, performance plowed along steadily at 60fps, which is truly wild for a AAA Bethesda game. However, it didn’t take long for it to start exhibiting some pretty hinky behavior — sporadically I encountered some audio stuttering and, once I entered a more densely populated open area, the frame rate dropped so far it was more 19th century zoetrope than an RPG from 2025. But I feel like most gaming handhelds would spontaneously combust if you even had the cheek to try this, so Imma still put this one in the win column for MSI.
On top of this, the Claw 8 EX AI+ seems to be able to keep a cool head during all of this. In comparison to its predecessor, the Claw 8 AI+, MSI promises the EX AI+ can achieve an extra 5W cooling capacity, 25% higher static pressure for fans, and 9% higher airflow, thanks to fans that are 0.5mm taller. I can’t speak to how accurate such granular figures are but certainly even slamming out epic boss fights or pushing the CPU to its limit, I rarely noticed the EX AI+ getting unbearably warm, which speaks to the strength of its cooling.
What the MSI Claw 8 EX AI+ is capable of is honestly pretty staggering. The only criticisms I have come down to software and input issues.
The Claw’s MSI Center M launcher felt a little unreliable. Occasionally, I got locked out from being able to access it — hitting the MSI button did nothing, and switching between windows just returned me to the Xbox app. On top of this, sometimes switching out to this menu then returning to a game would lock the input, meaning I could no longer use controller settings till I’d switched out and back again. That’s not a total deal-breaker, but it is a shame, given how stable the Steam and Xbox OSes feel by comparison, and shows that even the mighty MSI Claw 8 EX AI+ isn't immune to Windows 11's unsuitability for gaming handhelds.
(Image credit: Future)MSI Claw 8 EX AI+ review: batteryGiven its huge 80Whr battery capacity, I was expecting the MSI Claw 8 EX AI+ to have some serious endurance. Unlike the ephemeral life I get out of my 40Whr Steam Deck — where I’m lucky if I get 90 minutes out of many 3D games — the whopping battery in the Claw had me anticipating some pretty epic gaming sessions. Which is why I was a bit bemused by the actual results I eked out during our benchmarks.
Running our standard PC Mark 10 Gaming Battery benchmark with all the settings switched to balanced in both MSI Center M and Windows 11, I was shocked to see the battery discharged from 100% to 0% in just 1 hour 36 minutes. So sure was I that I must have made a mistake, I recalibrated the battery using the Claw’s built-in software, revisited all the settings and ran the benchmark two more times. Despite this, I was only able to squeeze out 1 hour 40 minutes and 2 hours 31 minutes on subsequent tests.
Certainly that’s not completely incompatible with my objective experience — on the console’s default AI Mode, I comfortably drained its full battery in a two-hour play session of The Elder Scrolls 4: Oblivion Remastered, for example. But that’s an incredibly demanding game, even for the MSI’s specs, and 2D games didn’t seem quite as thirsty in comparison.
So what’s going on here? Ruling out a fault with my review unit, I suspect that the capacious 80Whr battery the unit ships with is only part of the picture when it comes to the life you’ll squeeze out of it. The more important part? Its AI performance mode.
While our standard benchmarks set consoles and gaming laptops to balanced mode, the default performance mode for the MSI Claw 8 EX AI+ automatically adjusts its power consumption on the fly for the best efficiency in any given moment. That means the mode you’re most likely to play it on will stretch out the battery life without causing a noticeable dip in performance.
Even when the battery has run dry, it doesn’t take long to top it up again. With its 65W charging, you’d expect it to take about 90 minutes to juice up that 80Whr battery — and that’s bang in line with my experiences. When plugged into a cable capable of at least 65W, charging up the Claw only ever took around an hour and a half. However, I did occasionally experience some glitchy behavior here, with progress freezing at 98% or 99% full even when left for 20 minutes, suggesting the console’s battery monitoring software can occasionally be a touch off.
(Image credit: Future)Should I buy the MSI Claw 8 EX AI+?Buy it if…You want amazing performance
Thanks to its high-octane Intel Arc G3 Extreme chipset, the MSI Claw 8 EX AI+ achieves genuinely wild performance for its petite, portable size.
You want to access to all your PC and Xbox games libraries on the go
Installing extra storefronts on a console like the Steam Deck is honestly a bit of a hassle. On the MSI Claw, you have access to the Steam, Xbox, Epic, GOG, EA, Ubisoft Connect games stores.
You’re not loaded
The MSI Claw 8 EX AI+ is one pricy meatball — at $1,799.99 / £1,399.99 / AU$2,849, it comes closer to the cost of a gaming laptop than a handheld console. And while it’s more compact than a laptop, it’s not as powerful.
You need a mouse input
One of the things that makes consoles like the Steam Deck or Lenovo Legion Go so versatile is their mouse inputs. Lacking an equivalent means the Claw 8 EX AI+ isn’t compatible with some mouse-based titles unless you plug in a mouse.
MSI Claw 8 EX AI+
Asus ROG Xbox Ally X
Lenovo Legion Go S (SteamOS)
Price
$1,799.99 / £1,399.99 / AU$2,849
$999.99 / £799
Starting at $649.99 / £699
Display
8-inch FHD+ (1920 x 1200), 16:10, 500 nits, 120Hz IPS touchscreen
7-inch FHD (1920 x 1080), 16:9, 500 nits, 120Hz IPS touchscreen
8-inch WQXGA (1920 x 1200), 16:10, 500 nits, 120Hz IPS touchscreen
CPU
Intel Core Ultra 7 258V
AMD Ryzen AI Z2 Extreme
AMD Ryzen Z2 Go (up to AMD Ryzen Z1 Extreme)
Graphics
Intel Arc 140V GPU
AMD Radeon RDNA 3.5 Graphics
Integrated AMD Radeon Graphics
RAM
32GB LPDDR5X-8533
24GB LPDDR5X-8000
16GB / 32GB LPDDR5X-6400
Storage
1TB PCIe Gen4 NVMe M.2 SSD
1TB M.2 2280 PCIe 4.0 SSD
512GB / 1TB PCIe 4.0 SSD
Port selection
2x Thunderbolt 4, 1x microSD Express card reader, 1x 3.5mm headphone/mic combo jack
1x Thunderbolt 4, 1x USB-C, 1x microSD card reader, 1x 3.5mm combo audio jack
2x USB4, 1x microSD card reader, 1x 3.5mm combo audio jack
Weight
1.75 lbs / 794g
1.58 lbs / 715g
1.63 lbs / 740g
Dimensions
299 x 126 x 24mm / 11.77 x 4.96 x 0.94 inches
290.8 x 121.5 x 50.7mm / 11.45 x 4.78 x 2 inches
299 x 127.55 x 22.6mm / 11.77 x 5.02 x 0.88 inches
Asus ROG Xbox Ally X
The Asus ROG Xbox Ally X packs the AMD Ryzen AI Z2 Extreme chipset, which includes the slightly less impressive AMD Radeon RDNA 3.5 GPU, and hasn’t managed to squeeze as much RAM on-board, clocking in at 24GB rather than the Claw’s 32GB. On the plus side though, it’s significantly cheaper, coming in for $700 / £600 / AU$1,250 less, making it more manageable for a wider range of people. Read our full Asus ROG Xbox Ally X review.
Lenovo Legion Go S (SteamOS)
With integrated AMD Radeon Graphics, 16GB RAM and a 512GB SSD, the Lenovo Legion Go S (SteamOS) is more cruiser motorcycle to the MSI Claw’s superbike. But it’s still able to deliver steady performance, offering rock-solid performance during Baldur’s Gate 3 on max settings or a steady 40fps on Black Myth: Wukong on its lowest settings. And it’s cheaper than either of its rivals here, with a list price that starts from $649.99 / £699 / $1,329. Read our full Lenovo Legion Go S (SteamOS) review.
I tested the MSI Claw 8 EX AI+ over the course of two weeks. I made sure to play a wide variety of games from multiple game stores, whether they were from TechRadar’s Steam library or Xbox Games Pass Ultimate. On top of this, I tried out a wide variety of games at different graphics settings, from relatively undemanding 2D games to AAA 3D titles.
When it comes to more detailed assessments of its performance, I conducted our usual suite of benchmarks. Not only did that entail getting detailed performance scores from 3DMark and GeekBench 6.5, but I also conducted a range of in-game fps benchmarks at both ultra and low graphics settings. To test the console’s battery life, I ran multiple PC Mark 10 Gaming Battery tests to see how rapidly it drained the battery from 100% and I also timed how long it took to charge the console from 0% to 100% using a cable that was rated more than its 65W max charging rate.
During my career, I’ve tested a wide variety of gaming gadgets and accessories, from wireless controllers to gaming handhelds. I’ve also invested a truly ludicrous amount of my four decades on this Earth playing computer games, whether they be RPGs, action adventure games or creative sandboxes. And while I’m a little hazy on the details, I’m told this investment will pay dividends any day now.
I’ve tested numerous electric brushes with far too many settings and features, from 12+ brushing modes to apps that provide real-time guidance. Yet I inevitably end up using them in the same way: pick up the brush, press the button once, brush my teeth, then put it back in the cupboard until the next time. I’ve never used an app outside of a review period, and I rarely bother with any extra settings either. Battery life is also important to me, as I don’t have a compatible plug socket in my bathroom. And I’d also rather not throw out too many plastic brush-heads that will ultimately end up in landfill.
Suri brushes are designed to be no-fuss, no-frills sonic toothbrushes with minimal settings to avoid a simple tool from becoming unnecessarily complicated, alongside recyclable elements. The Suri Core 1.0 sticks closely to this brief, offering a more affordable alternative to its successful, pricier Pro range.
Naturally, Suri has cut some corners with the Core 1.0 to keep the price down, notably replacing the metal body with a "bio-plastic" one made from renewable sources and recycled material, while the motor is slightly weaker, offering 28,000 movements a minute instead of the Pro 2.0’s 30,000. It doesn’t come with a clean-and-charge case as the Pro does, either. Instead, you simply get a brush cap for travel. It lasts six days fewer than the Pro on a full charge, with a battery that lasts 28 days compared to the Pro's 34 days.
These efficiency savings are minor, and do nothing to impact the toothbrush’s overall quality. The simple design makes it eminently easy to use, while the built-in timer uses haptic feedback every 30 seconds to help you keep track of brushing time. It looks great, too, especially when stuck to the wall using the provided magnetic mirror-mount attachment. It doesn't feel quite as pleasing in the hand as the metal model, but the pastel-coloured body has a stylish look that will happily fit the aesthetics of a variety of bathrooms. Whichever colour you choose, the brush head is white.
Speaking of brush heads, in the US and UK, Suri operates prepaid mailing programs that enable you to send used heads back to the company, which it then recycles and makes into new products such as soap dishes. The toothbrush is also covered by a warranty, during which Suri will repair and return it at no cost. In addition, across the brush's construction, Suri has introduced measures to reduce the environmental impact of the plastics it uses, from recycled to recyclable materials to more responsible production and disposal .
(Image credit: Future)I tested this toothbrush for 21 days straight, and in that time didn't have to charge it. The two-minute timer is automatic, with no option to adjust it manually: the brush pulses every 30 seconds to signal that you move to the next quadrant of your mouth then shuts off automatically when the two minutes are up.
There are a couple of niggles. The first is that the brush is almost too simple: alongside its Clean and Polish settings, I’d like to see a gentler mode "sensitive" setting for more delicate teeth and gums. The pressure sensor requires some force to activate it, which could result in over-brushing, and it’s quite loud in operation, registering 69db in my noise measuring app.
But I’m nitpicking. Overall, the Suri Core 1.0 is a simple, high-quality sonic toothbrush for a reasonable price, with some sustainability credentials to boot. It would certainly be my pick over some of the more expensive, feature-stuffed brushes that spring to mind.
Suri Core 1.0: Specifications(Image credit: Future)Component
Suri Core 1.0
Battery life
28 days
Sonic vibrations
28,000/m
Charging stand
USB-C
Timer
30 seconds, haptic
Noise
69db
Settings
Two
Suri Core 1.0: Price and availabilityThe Suri Core 1.0 is priced at $75 / £65, cheaper than other brushes in the Suri range, which come in at $99 / £85, and offers good value. It’s more expensive than budget electric toothbrushes such as the Ordo Sonic Lite, which is similarly basic in terms of features, but the Core 1.0 feels like a worthwhile step up.
It’s reliable, looks great on your bathroom counter-top, and with Suri's free brush-head recycling scheme, you can feel good about doing your bit for the environment, too.
Suri Core 1.0: Scorecard(Image credit: Future)Category
Comment
Score
Value
Pricier than some budget toothbrushes, but good value overall.
4/5
Design
Great look, simple to use, recyclable and sustainable design elements.
5/5
Performance
Strong motor, great battery, simple to use.
4.5/5
Suri Core 1.0: Should I buy?Buy it if…You’re after something simple
The Suri Core 1.0 does one job, at two intensities, and does it well.
You want a toothbrush that looks good
The Suri Core 1.0's pleasant design will look great on a bathroom shelf.
You want value
Suri made this toothbrush specifically to appeal to budget buyers.
Don’t buy it if…You want an oscillating toothbrush
The sonic toothbrush is just a simple vibration model, whereas Oral-B models come with rotating heads.
You’ve got very sensitive teeth
You may prefer a brush with more settings and a lighter pressure sensor.
Also considerOrdo Sonic Lite
One of the best budget toothbrushes on the market.
Read our full Ordo Sonic Lite review
Suri 2.0 electric toothbrush
Suri's excellent full-price electric toothbrush model.
Read our full Suri 2.0 review
How I testedI used the Suri Core 1.0 sonic toothbrush for three weeks, brushing morning and night. I measured the decibel levels of the toothbrush using an app, and compared the specs to its contemporaries in the space.
First reviewed: August 2026
Type: color inkjet tank printer
Functions: Print only
Connectivity: USB, Wi-Fi
Data storage slots: None
Max print speed: 22ppm (draft mode)
Max paper size: Letter/A4
Print quality: 600x600dpi; 4800x1200dpi (enhanced)
Memory: 64MB
Apple AirPrint: yes
Consumables included: 4 x bottled ink (6,000 black or color pages)
Dimensions/Weight: 434 x 360 x 134 mm (WxDxH)/8.3lb/3.75kg
Meet the smallest and cheapest member of HP’s Smart Tank family, lowering the entry point for cartridge-free printing in the home or home office.
It’s a severely stripped-back print-only device with no auto-duplex mode, no ethernet port or paper drawer and a very basic display. but the print engine is the same as that of the more expensive HP Smart Tank 5100, so I’m hoping for decent prints with an unbeatable cost-per-page.
If you can live without the extras, this could be the lowest total cost of ownership of any home printer.
HP Smart Tank 210: Design and build(Image credit: Future)From its sustainable packaging and neat design, to its seamlessly integrated ink tanks, this is a very well-designed product. As well as being the cheapest ink tank printer I’ve tested, it’s also the smallest.
The footprint is the same as the average Letter/A4 printer, but the height is just 134cm, so no bigger than a cartridge inkjet, and I think it looks pretty smart in HP’s off-white livery.
With no integrated scanner, the lid is just a fixed steel panel, and with no front media tray either, your paper must be loaded via the rear input tray. This will hold up to 100 sheets, while the output tray will take up to 30. The display is a postage stamp-sized affair to let you know when it’s connected to the network and not much else.
The HP Smart Tank 210 weighs just eight pounds, but despite that, it feels well made and it’s using 45% recycled plastic. I’m glad to see the packaging is all cardboard too.
HP Smart Tank 210: Features & specifications (Image credit: Future)To keep costs down, the HP Smart Tank 210 dispenses with all unnecessary features. There’s no Ethernet port or USB Host port and the display is small and basic. There’s no scanner bed, which is available on the step-up HP Smart Tank 5100.
These are all features I can live without, but limiting it to manual duplex seriously slows down your workflow and encourages wasteful one-sided printing. So, think carefully before springing for this model. I think it’s a step too far.
Printing is for the most part slow at just 5ppm (pages per minute) for color pages and 12ppm for black, but thankfully, there is a draft mode for when speed is more important than quality and that cranks it up to 22ppm for black pages.
HP Smart Tank 210: Setup and operation(Image credit: Future)HPs printers tend to be the quickest to get up and running thanks to their integrated Bluetooth and I’m glad to see it’s included on this entry-level model. With the HP Smart app on your phone, you can quickly connect it to the printer via Bluetooth, so you can then let the app get your printer onto your local wi-fi network. Dual-band Wi-Fi, AirPrint and Chromebook ensure it’s quick to connect and the app makes it quite easy to print wirelessly.
Things get fiddlier when it comes to installing the two printhead cartridges that distribute the black and tri-color inks to the ink jets. Yes, there are still cartridges, but don’t worry, they’re not the kind that need replacing. The only way to get at them is through the front panel, so you need quite long fingers.
That done, you’re ready to pour in the ink, and that’s much easier. The individually shaped bottle necks means there’s no danger of getting the colors the wrong way around and for three of the tanks, the bottle capacity matches that of the reservoirs. The black bottle holds more, but the tank stops filling automatically when full. I did it quite hurriedly and didn’t spill a drop.
HP Smart Tank 210: Performance(Image credit: Future)The HP Smart Tank 210 turned out crisp and colorful test pages without any crashes or paper jams throughout the test. It prints slowly, especially in color, but the pages are worth waiting for. HP’s dye-based C/M/Y inks are bold and bright, so the colors are pleasingly vivid.
As with most business inkjet printers, the black ink is pigment based because that tends to give quick drying and robust prints that are good for handouts. Black text on plain paper looks sharp enough and it passed the finger smudge test. However, it began to lose clarity when printing characters as small as point 3 print size.
Print resolution is the standard 600x600dpi resolution, but this is enhanced when printing on photo paper at fine quality to 4800x1200dpi. It means the HP Smart Tank 210 makes a reasonable photo printer. and the results are on par with more expensive printers like the Brother DCP-T580DW.
HP Smart Tank 210: Consumables (Image credit: Future)The HP Smart Tank 210 ships with three years of ink according to HP. To be precise, that’s three 50ml bottles of colored ink and one 375ml bottle of black ink, which should yield up to 6,000 black or color pages.
Compared with cartridge printers like the HP Envy 6530e which comes with ink for 120 black pages and just 75 color, the advantage of bulk tank printing is clear. The difference in price between cartridge and bottled ink is equally dramatic, with cartridge ink costing around 36 times as much for what’s essentially the exact same stuff.
HP Smart Tank 210: Maintenance (Image credit: Future)Like any inkjet printer, the printheads are liable to clog if the ink is allowed to dry when left unused for a length of time. It’s easily solved by running a maintenance cycle.
There are three to choose from with the most thorough using the largest amount ink to flush the printheads. If this were a cartridge inkjet, you’d be reluctant to choose that option, but with bottled ink being relatively cheap, it’s not an issue.
If even this doesn’t solve the problem, you can replace the print head cartridges easily, but it’s unlikely you’ll need to do this in the printer’s lifetime.
HP Smart Tank 210: Final verdictFutureFutureFutureI’m delighted to see the entry point for cartridge-free printing lowered by this innovative budget solution. Admittedly, a lot of features have been cut to get here - there’s no scanner, ethernet port, touchscreen, paper tray or auto-duplex.
However, the print quality is the same as the HP Smart Tank 5100 and comparable with HP’s more expensive HP Smart Tank 7001, which is very good news. Text pages look just as sharp while photos have vivid color and clarity.
It has the same crisp design and easy setup as HP’s other printers too, thanks to its inbuilt Bluetooth and seamlessly integrated ink tanks. There’s plenty of ink in the box and the low cost of HP’s bottled refills means you won’t find another printer with a lower cost of ownership.
For me, auto-duplex is a must-have feature, but if you can live with manual duplex this stripped back ink tank is a bargain.
For more options, I've tested out the best home printers and the best ink tank printers.
The MechLands Vibe99 is a mechanical keyboard that takes aim at the budget-end of the market, but does so without any apparent sacrifices to features or performance.
It doesn’t make a great first impression, however. The retro aesthetic fails to charm, with its chunky design and the copious amounts of grey in my review unit merely looking downmarket. Fortunately, the bright and customizable RGB backlighting does help to liven it up a little.
The build quality isn’t terribly impressive, either. The plastic chassis is solid but doesn't feel premium. Fortunately, the Double-shot PBT keycaps are much better, although their opaque legends don’t allow that aforementioned backlighting to shine through. Their Fn shortcuts aren’t labelled, either, unlike those installed in the best gaming keyboards.
(Image credit: Future)However, the compact width of the Vibe99 is impressive, and thanks to the smart 1800 layout, you still get plenty of keys. What’s more, it also features an integrated screen. It may be a basic TFT affair with limited information displayed, but what it does show is useful, such as the time, date, and battery level. You can also upload GIFs to it if you so wish, but I wouldn’t advise that you do, given the screen’s small size and low fidelity.
You’ll need to use MechLand’s peripheral software to upload them, but it takes an incredibly long time to do so, and you can’t do much else while it’s in progress. What’s more, the whole app has a poor UI, lacking sharpness and clarity. The remapping suite is also disappointing, with only a basic selection of assignments and no direct visual indication of your rebindings.
The performance of the Vibe99 itself fares better. The keys are generously lubed yet quite clicky, lacking the dampening of the very best in the space. However, they’re satisfying to use and have plenty of snap, actuating and rebounding quickly while forgiving accidental hits. The natural tilt of the layout and the folding feet help to make the board more comfortable to use as well, although I still wish it came with a wrist rest.
It’s impressive that the Vibe99 offers all that it does at such a low price point. It’s far cheaper than many of the mechanical models offered by the big brands, and it’s even cheaper than some other great budget options. It’s not perfect, and the software isn’t as good as it should be, but the Vibe99 is still worth shortlisting if you’re looking to save.
(Image credit: Future)MechLands Vibe99 review: Price & availabilityThe Vibe99 costs $82.99 / £63.99 / AU$120 and is available now in various colorways but with one switch type, which is MechLand’s Linear Mint model. It comes with a keycap puller and a braided USB cable.
This is a very competitive price for a 1800 wireless mechanical keyboard with hot-swappable switches. It’s even cheaper than the aluminum variant of the MonsGeek FUN60 Ultra, which has fewer keys. However, the build quality of that board is superior, and thanks to its analog switches, it has far more performance-related tweaks.
The Vibe99 is also considerably cheaper than big-name mechanical models, such as the Razer BlackWidow V4 Pro 75%. But the BlackWidow has a far superior build and unrivaled performance, thanks to the glorious response of its switches. Its software is much better, too.
MechLands Vibe99 review: SpecsLayout
1800
Switch
Mechanical (MechLands Cream Mint Linear)
Programmable keys
Yes
Dimensions
16.5 x 5.9 x 1.7 inch (418 x 150 x 42mm)
RGB or backlighting
Yes (customizable)
(Image credit: Future)MechLands Vibe99 review: Design & featuresThe Vibe99 aims for that faux-retro appeal, but I don’t think it succeeds. Not only does the thick base look dated, but the grey and black finish of my review unit looked quite dour. The bright RGB backlighting did at least add some vividness though.
Unfortunately, the build quality isn’t anything to write home about either. Although it feels solid enough, the plastics used throughout feel cut-price, especially when compared to the aluminum frames of more upmarket gaming keyboards. Its saving grace is its keycaps, which have a Cherry profile and are made from Double-shot PBT. They’re also solidly installed with next to no play. However, it’s a shame their legends aren’t transparent to allow the backlighting to shine through. Also, the default Fn shortcuts across the Function row and dotted around elsewhere aren’t labelled, so you’ll have to commit them to memory.
To speak in favor of the Vibe99’s design, it’s an impressively compact board, and its 1800 layout means it still manages to feature plenty of keys, including a number pad. It’s also quite light, which makes it easy to maneuver when required.
(Image credit: Future)What’s more, a TFT display is nestled in the top corner, and while it’s small with a low resolution, it still provides some useful readouts, such as those for the time, date, and the battery life. You can also upload custom GIFs to it via the MechLands’ software for Windows, although I’m not sure it’s worth the effort given the screen’s quality.
This software also lets you record macros and customize the Vibe99’s backlighting. You can remap keys here as well, although the selection on offer is quite lackluster, with only a handful of system and media shortcuts available. What’s more, your selected bindings aren’t shown on the layout map directly; you have to hover over each individual key to see your remapped function, which is highly impractical.
The rest of the app’s UI has issues, too. Text and various other elements are fuzzy and sometimes oddly proportioned. Worse still is the aforementioned GIF uploader: during my testing it took an achingly long time for one to upload, and most of the app was inaccessible during the process. To add insult to injury, the dialog box for its progress remained on top of all my other windows, not just the app’s. If you’re hoping such issues will be patched, I wouldn’t get your hopes up; according to MechLand’s website, the last update for the software was in 2025.
(Image credit: Future)MechLands Vibe99 review: PerformanceIn contrast to its somewhat incompetent software, the Vibe99 is a solid and impressive performer. The keys are well lubed, which makes them feel less harsh when pressed, yet they still retain a gratifying clickiness. They’re relatively loud, but thankfully the noise isn’t grating.
They’re also quite snappy, thanks to their reasonably shallow actuation point and fast rebound. However, they’re not so reactive that mere grazes will trigger them, which means you won’t be making many typos.
(Image credit: Future)What also helps with typing are the keycaps, with their low Cherry profile making them easy to glide over. Additionally, they’re spaced far enough apart to prevent mis-hits, yet close enough to make gaming comfortable, with various common keys remaining easy to reach from the WASD position. The space bar is a triumph as well — the combination of its low profile and sloping shape makes it conducive to direct hits on its top surface, rather than on its back edge.
However, the Vibe99 really needs to be paired with a wrist rest to make it comfortable for long sessions. That aforementioned thick chassis strained my wrists as I reached for the keys. The natural tilt of the layout and the unit’s fold-out feet improve ergonomics to an extent, but neither can compensate entirely for the lack of additional support.
The Vibe99 connected to my Windows PCs via the 2.4GHz dongle and Bluetooth just fine, and hot-switching between them was quick thanks to the toggle switch on the back of the unit.
Should I buy the MechLands Vibe99?ScorecardAttributes
Notes
Rating
Value
This keyboard has one of the best price-to-spec ratios I’ve ever seen.
4.5 / 5
Design and features
Solid enough, but it doesn’t look or feel premium. The software is functional but barebones and features a poor UI.
3 / 5
Performance
The switches are well lubed and have a snappy response. However, you’ll need some additional wrist support to get comfortable.
4 / 5
Overall
The Vibe99 is a veritable bargain at this price, considering all that it offers. You’ll need to bring your own wrist support, though, and I hope you’re not after incredible accompanying software.
3.5 / 5
Buy it if…You’re on a budget
If you’re looking for a cheap mechanical keyboard, you can’t do much better than the Vibe99.
You want clicky mechanical keys
The stock switches in the Vibe99 are well lubed but also very clicky, which makes them satisfying to use.
You want a premium build
Although the Vibe99’s build quality is sufficient, it doesn’t look or feel expensive.
You want the best software
Perhaps the weakest part of the Vibe99, the accompanying app looks poor and doesn’t have many features.
Razer BlackWidow V4 Pro
The BlackWidow V4 Pro is vastly more expensive than the Vibe99, but it’s built to a much higher standard than the Vibe99, and its mechanical performance is unparalleled. Synapse, the software for customizing its inputs, is far superior, too. Read our full Razer BlackWidow V4 Pro 75% review.
MonsGeek FUN60 Ultra
The FUN60 Ultra is another great gaming keyboard with a low price tag. Although it has a smaller layout, it has analog switches with adjustable actuation points and other features that mechanical switches miss out on. Read our full MonsGeek FUN60 Ultra review.
I tested the Vibe99 for several weeks, during which time I used it for gaming, working, and general productivity. I used it with two Windows 11 PCs, one connected via the 2.4GHz dongle and the other via Bluetooth, and regularly hot-switched between them.
One of the games I played with the keyboard was Counter-Strike 2, which is a great test for peripherals since it requires quick and accurate movements.
I’ve been PC gaming for over a decade, and have used a large number of keyboards in that time. I’ve also reviewed plenty of them, from budget offerings to premium models from the likes of Razer, Corsair, and SteelSeries.
The new Epson LifeStudio Grand UST projector may not ring any bells. But its rebranding hides the fact that it’s little more than a minor update to the Epson EpiqVision Ultra LS650. That was a decent projector when it came out, but not an amazing one.
With the LifeStudio Grand, Epson has made some improvements. The Google TV operating system works well, and there’s an extra HDMI port where its predecessor offered just two. It also doesn’t have whiny fans. But the image is still a little soft and not as dazzlingly colorful as RGB laser projection. The projector’s motion interpolation also needs a lot of work. And Epson’s switch from Yamaha to Bose for sound tuning hasn’t made the audio better.
With competitors improving considerably over the past year, the LifeStudio Grand is in troubled waters. If you can’t see the DLP rainbow effect and don’t mind drawing the curtains from time to time, you can get a much better projector for your money by shopping elsewhere.
(Image credit: Future)Epson LifeStudio Grand review: Price & release dateThe LifeStudio Grand launched in late 2025 with global rollout in Spring 2026. The project has a retail price of $2,699 / £1,749.99 / AU$4,399.
Given its newness and the fact that it’s coming from a big player like Epson, I wouldn’t expect any major discounts on the projector too soon, though Black Friday could roll around and see at least a minor deal.
Epson LifeStudio Grand review: SpecsScreen sizes supported
60 to 120 inches
Brightness (specified)
3,600 Lumens
Optical technology
3-Chip 3LCD
Smart TV
Google TV
Connections
3x USB-A, 1x 3.5mm audio out, 1x Optical audio out, 3x HDMI 2.0 (1x eARC, 1x USB-B (Service port)
Dimensions
18.4 x 15.7 x 6.2 inches
Weight
16.6 pounds
Epson LifeStudio Grand review: Design & features(Image credit: Future)As soon as I took out the LifeStudio Grand, I thought it looked familiar. Sure enough, down to the inch and pound, it’s just the Epson EpiqVision Ultra LS650 back again. There are just a few changes.
Epson added a third HDMI port on the back: nice. Epson swapped to Google TV and it actually runs quickly: nice. Epson included Wi-Fi 6E: nice. And Epson added some gaming features, like ALLM and a 1080p/120Hz mode: nice. But these are more making up for fumbles from that earlier model, rather than actually keeping pace with competitors like the Hisense PX3 Pro and its 1080p240Hz mode.
The LifeStudio Grand is a little plain to look at with its white plastic construction and gray-ish front grille — the result of a white grille dotted with black holes. Even the Epson branding looks unfortunate, like it was pasted on after having been forgotten in an earlier prototype (except we know it wasn’t because it was there on the predecessor).
One thing giving the LifeStudio Grand a bit of style is its little silver legs. These also play a crucial role in the projection, as they can adjust the tilt of the projector to ensure it lines up square with a wall or projection screen. The projector supports digital keystone adjustments, but those are best avoided when possible. The right side of the projector hides a hardware focus dial behind a small panel, which allows for quick focus adjustments while also protecting the setting once you’ve got it in place. Auto-focus would have been nice though.
(Image credit: Future)While the LifeStudio Grand isn’t a large UST projector, it ends up feeling a little large because of its 15.7-inch depth. For comparison, the Hisense L9Q is just 12.5 inches deep and the PX3-Pro is just 11.7 inches. That sees the LifeStudio Grand stick out pretty far forward on a media console, and because of its 0.25:1 throw ratio, the console might have to stick out too if you want to get a huge picture. All of this also makes for tough placement for a soundbar.
The LifeStudio Grand’s remote is a cheap little plastic unit that doesn’t feel a good match for the price of the projector. It has typical Google TV controls, a dedicated input-selection button, four streaming app shortcuts (one for Free TV, which fires up Google TV Freeplay), and a dedicated brightness control and a shortcut to projection settings. While there are also volume controls on the remote, there’s no mute button — enjoy the sound of advertisements that you can’t quickly mute. The remote also lacks any illumination, which would be helpful in a dark home theater.
(Image credit: Future)Just like its predecessor, the star of the show for the LifeStudio Grand is its brightness. The projector offers a very respectable 3,600 lumens. This doesn’t make up for bright sunlight coming into the room and ruining dark scenes, but for bright content it can look decent. And the fans don’t overdo while running at full brightness either — an improvement over its prior model.
That’s about where the LifeStudio Grand’s benefits compared to its competitors end. The LifeStudio Grand uses Epson’s own 3LCD projection, which doesn’t prove as colorful compared to the crop of RGB laser projectors on the market. It does avoid issues with DLP rainbow effect, but if you’re not susceptible to that, it may be a non-issue. Contrast is decent, but not astounding. And though this is a 4K projector, Epson’s pixel shifting on this model doesn’t produce as stunningly sharp an image as its rivals.
Right out of the box, the projector’s Standard picture profile has some motion issues, and it’s not better on its other profiles. It smoothes out camera panning motion, but it introduces issues in just about all other types of motions. People moving around on screen look poor, especially with hand motions, which look almost AI generated and occasionally cause weird stuttering for the whole frame.
Animation looks even worse as motions are smeared chaotically. And even panning shots can suffer when the camera motion changes speed or slows to a stop, with the projector seeming to reduce the frame rate instead of interpolating. Although the interpolation can be turned off, when it is some camera pans stutter.
(Image credit: Future)The speakers on the LifeStudio Grand are fine, but not dazzling — so much for that Bose collab. They don’t create a very wide soundstage, so they’re no replacement for a proper sound system. And while they can pump out enough volume for a 200-square-foot room, that’s about their limit. I find I’m regularly dialing them up above 60% just to listen in a quiet room. With guests over, it all but requires max volume, and has a slightly harsh quality when cranked.
Even with the projector’s new gaming features, it doesn’t prove a stunning option for gamers either. At a pinch, it’ll be good enough for most games, but I could still feel slight latency that made combat hard in fast-reflex action games.
The LifeStudio Grand isn’t a terribly high-priced UST projector, undercutting the Hisense PX3-Pro by a good amount. And for the money, you’re getting a very bright projector. But that’s about the only specification that stands out.
The picture quality, sound, and design all leave plenty to be desired. That’s a bit too much disappointment for a product that’s still edging up toward $3,000 / £2,000 / AU$4,500.
Having seen the Hisense C2 Ultra — a 3,000 lumen triple laser projector — going for $2,000 (around £1,500 / AU$2,800) recently, it’s hard to see the LifeStudio Grand as a good option when you can grab the Hisense and a solid sound system for the same price.
Attributes
Notes
Rating
Design and features
A bland and bulky design that hasn’t changed much holds the LifeStudio Grand back, though it’s nice to see Wi-Fi 6E and an upgrade to a functional Google TV operating system.
3/5
Picture quality and performance
The LifeStudio Grand is bright and avoids the DLP rainbow effect, but that’s about the only thing it has going for it against its rivals. It’s not dazzlingly colorful, offers just decent contrast, can look a little soft, and doesn’t have impressive speakers or gaming performance.
3/5
Value
With just a couple of strong points and some big areas it lags behind, the LifeStudio Grand doesn’t offer wonderful value at $2,699 / £1,749.99 / AU$4,399, especially when some competitors have come down in price.
3/5
Buy it if...You really struggle with the DLP rainbow effect
Have you ever noticed flashing colors while watching a projector? That’s probably the DLP rainbow effect, and it can ruin your experience with an otherwise great projector. The LifeStudio Grand doesn’t use DLP tech, so you don’t have to worry about this issue on it.
You do a lot of bright-room viewing
For the money, the LifeStudio Grand is one of the brighter options you’ll find. If you want to watch content largely in a bright room, it can provide a more serviceable image than similarly priced competitors.
You don’t struggle with the DLP rainbow effect
There are such amazing RGB laser projectors on the market, and some of them are nearly as bright and competitively priced against the LifeStudio Grand. They may not all be as bright, but the vibrant color they deliver can feel like it makes the image even brighter than it is.
You’re a gamer
Epson has improved the gaming experience here, but it still can't offer flawless responsiveness. With Hisense offering models that support 1080p/240Hz modes for super-smooth gaming and negligible latency, it’s no contest.
You’re setting up a serious home theater
The LifeStudio Grand’s big edge is in a bright room. In the dark, it’s not as impressive. Its longer throw ratio, lower color gamut, and weaker sound also hold it back. And with its depth, it gets in the way of soundbars.
Epson LifeStudio Grand
Hisense PX3-Pro
Xgimi Aura 2
Hisense C2 Ultra
Price:
$2,699 / £1,749.99 / AU$4,399
$3,499 / £2,499 / AU$3,999
$2,699 / £2,459 / AU$6,399
$2,999 / £2,499 / AU$4,499
Screen sizes supported:
60 to 120 inches
80 to 150 inches
80 to 150 inches
65 to 300 inches
Brightness (specified):
3,600 lumens
3,000 lumens
2,300 lumens
3,000 lumens
HDR support
HDR10, HLG
HDR10+, HDR10, HLG, Dolby Vision
HDR10, HLG, Dolby Vision
Dolby Vision, HDR10+, HLG
Optical technology:
3LCD, Laser
3 Laser DLP
Dual Light 2.0 (Laser + LED)
RGB Laser DLP
Smart TV:
Google TV
Google TV
Android TV
Vidaa OS
Connections:
3x HDMI 2.0 (1 with ARC), optical, 3.5mm
2x HDMI 2.1, 1x HDMI 2.0 (1 with eARC), 1x optical, 1x 3.5mm
2x HDMI, 1x HDMI eARC, optical digital audio out, 3.5mm audio out, 3x USB-A, Ethernet
2x HDMI 2.1 (1 with eARC), 2x USB-A, 1x S/PDIF, Ethernet, 1x 3.5mm, Bluetooth 5.3
Hisense PX3-Pro
The Hisense PX3-Pro is nearly as bright, far more colorful, more versatile, and cooler looking. While it may be more expensive on paper, it’s seen plenty of discounts that can bring it to even more competitive prices. Read our full Hisense PX3-Pro review.
Xgimi Aura 2
You won’t get as much brightness out of the Aura 2, but you’ll get a much prettier piece of hardware, and an all-around great projector with solid color and HDR support. Read our full Xgimi Aura 2 review.
Hisense C2 Ultra
As an alternative to UST projection, the C2 Ultra is a brilliant long-throw projector with flexible optics to make positioning less of issue. It boasts bright, RGB laser projection for a gorgeous image, works wonders in games, and has seen discounts since launch that see it undercut the LifeStudio Grand. Read our full Hisense C2 Ultra review.
I tested the Epson LifeStudio Grand at home, in real-world conditions. This saw it faced with ambient light coming in from numerous windows, in-room lighting, as well as ambient noise that both the projector and speaker systems had to overcome. The projector was tested both against a bare, white wall and an Akia Screens CineWhite screen. It was presented with streamed content, HDR and non-HDR, and PC gameplay.
My testing evaluates the projector’s performance with respect to its price and competition from other models colleagues at TechRadar and I have tested.
I have been testing projectors since 2021 and displays for even longer.
The LS Luxe is the new high-point — by which I mean ‘most expensive’ — of KEF’s fêted range of wireless stereo speaker systems. Having precisely nothing left to prove where products of this type are concerned in the lower $1,000 / £750 - $3,400 / £2,500 arena, the company has made a decisive move upmarket — and the LS Luxe seems to leave very little to chance where engineering, specification and aesthetic shock and awe are concerned.
You will make your own mind up about the looks, of course; for my money, the ‘eclipse black’ of my review sample is the least successful of the three available finishes, but there’s no denying the LS Luxe is an individual looker in a market where design flourishes are always at a premium. But when talk turns to engineering and specification, subjectivity ceases to be all that much of an issue.
Numerous input options (both wired and wireless), genuinely high-resolution playback (24bit/192kHz is yours if you connect the speakers together, while 24bit/96kHz is available from a wireless connection), and some proven technologies exclusive to KEF serve to make the LS Luxe look like a very serious proposition on the page.It’s only fractionally less serious when it comes to performance, too.
Make sure you’ve positioned the speakers carefully, get beyond the slightly restricted dimensions of the soundstage it conjures… and then there’s a huge amount to enjoy here. Some of the best stereo speakers on the market? Yes.
The LS Luxe is a deftly accomplished listen, able to combine forensic attention to detail with an energetic, almost forceful attitude that brings recordings of all types bounding to life. It manages to combine analysis with entertainment in a way that’s rare at any price.
(Image credit: Future / Simon Lucas)KEF LS Luxe review: Price & release dateThe KEF LS Luxe wireless stereo speaker system is on sale now, and in the United Kingdom it costs £3,499. In the United States it sells for $3,999, while in Australia the going rate is AU$6,399.
If you don’t want this to be the end of your spending, KEF will happily sell you a pair of its bespoke ‘S-Luxe’ speaker stands for £799 / $799 / AU$1199…
What of note at the level? The Sonus faber Duetto are the same price and also present a fantastic listen, albeit with a very different aesthetic.
(Image credit: Future / Simon Lucas)KEF LS Luxe review: FeaturesIt’s not the only thing that’s attention-grabbing about the look of the LS Luxe, of course, but there’s no denying that the 12th generation Uni-Q driver array is just as visually impactful as it was when the first generation was revealed back in 1988.
Here, it features a 25mm aluminium tweeter behind a complex waveguide, in the throat of a 165mm aluminum mid/bass cone — as always, the arrangement is designed for optimum time-alignment and superior driver integration.
A more recent KEF innovation, ‘metamaterial absorption technology’, sits behind the tweeter where it’s designed to mop up energy travelling from the back of the tweeter dome and allow for sweeter, cleaner treble response as a result.
The driver arrangement is mechanically decoupled from the cabinet, and a decoupling chassis within the assembly damps any vibrations from the motor system — in both cases, the idea is to reduce the vibration affecting the cabinet structure to an absolute minimum. Low distortion and sky-high clarity are the results KEF is aiming for.
Unusually, KEF has deployed two distinct methods of amplifying the Uni-Q array. Each mid/bass driver feels the benefit of 280 watts of Class D power, while each tweeter is driven by 100 watts of Class A/B amplification — an all-in total of 760 watts of power really ought to prove adequate. KEF reckons a frequency response of 42Hz - 28kHz results from all this very thorough engineering.
Naturally, that’s not the end of it where clever technologies are concerned. KEF’s ‘Velocity Control Technology’, first seen in the XIO soundbar, measures the speed of movement of the cone and compensates for discrepancies between actual and expected values in real time. The ‘Music Integrity Engine’, meanwhile, maintains tonal consistency at all volume levels.
In terms of getting audio information into the system where it can be had at by these various highlights of specification, your options are fairly extensive. Dual-band wi-fi is on board, naturally — there’s also an Ethernet socket on the rear of the ‘primary’ speaker for absolute network stability — and this allows the system to be compatible with Apple AirPlay 2, Google Cast, the ‘Connect’ versions of Qobuz, Spotify and TIDAL, and UPnP. Internet radio is available too, and Roon Ready status is due to be confirmed much sooner rather than later.
A USB-C slot looks promising, but it’s ‘only’ a 5V output for charging. Bluetooth 5.3 is also on board as an additional wireless option - all the wireless stuff is handled by KEF’s proven ‘W2 Wireless Platform’.
The primary speaker is also home to the system’s physical connectivity. Here that means an HDMI eARC socket, optical and coaxial digital inputs, and a 3.5mm analogue input, as well as a kettle-lead socket for connection to mains power, a pre-out for a subwoofer and an RJ45 socket for connection to the secondary speaker. That secondary speaker makes do with a mains power socket, a corresponding RJ45 and a subwoofer pre-out.
The LS Luxe will support resolutions of up to 24bit/384kHz and DSD128 via its network inputs, 24bit/192kHz via coaxial and HDMI, and 24bit/96kHz via its optical input. If the speakers are connected using the supplied cable, everything is up- or down-sampled to 24bit/192kHz - if you decide the cleaner look of a wireless connection between the two is your preference, then the system tops out at 24bit/96kHz.
First things first: the LEF LS Luxe is not remotely forgiving where the positioning of the speakers is concerned.
The overwhelming majority of stereo speakers I’ve tested, both active and passive, have given their best when toed in towards the listening position — in fact, off the top of my head I can only think of Dali that recommends its speakers should be pointing dead ahead to perform to their full potential. The KEF, though, like only the tiniest amount of toe-in. Too little or, especially, too much and they lose some of the width of their soundstage and a more noticeable amount of sonic height.
Even when ideally positioned, the soundstage they generate is not the biggest you’ve ever heard. It escapes the confines of cabinets quite comfortably, in both horizontal and vertical directions, but is still relatively limited.
Mind you, it’s fair to say a) the soundstage is extremely well laid-out and controlled, and b) that’s just about where my complaints end regarding the way the LS Luxe performs. In every other respect it’s a remarkably accomplished listen, and is undoubtedly one of the most effective pound-for-pound wireless stereo speaker systems around.
(Image credit: Future / Simon Lucas)No matter if you listen to the avant-electronica of Arca’s eponymous debut album via a CD player connected to the KEFs digital optical input, a 24bit/192kHz FLAC file of David Bowie’s Stationtostation wirelessly streamed from Qobuz Connect or a heavyweight vinyl reissue of Takk… by Sigur Rós from a pre-amplified turntable, the LS Luxe is a remarkably articulate, utterly revealing and deftly punchy system that is likely to steal your time away.
The tonal balance is exquisitely neutral. The KEF is more than happy to get out of the way of a recording and let it dictate terms in this respect. It’s similarly balanced and egoless where frequency response is concerned, too — it digs deep into the low frequencies and hits with real authority and control, while the opposite end has the substance to counteract the brilliance of the treble response, but at no point does the system over- or understate any part of the range.
The balanced and even-handed nature of its presentation goes a long way towards creating a strong impression of fidelity. So does the amount of detail it’s able to retrieve, reveal and contextualise. At every stage it is alert to the finest, most minor occurrences in a recording, in a voice or an individual instrument — and it’s able to give these details the appropriate amount of weighting no matter how fleeting they might be.
Its transient response is thrillingly positive, and the overall sound is eloquently alive and communicative as a result.
And when it comes to communication, the way the LS Luxe resolves the midrange means it’s brilliantly informative where voices are concerned. The minutiae of timbre, texture and technique are all made available, and the KEF can describe the attitude and character of a vocalist just as directly.
Rhythmic expression is confident, thanks to the careful control the system pays to the attack of low-frequency information. It’s a deftly fluent listen at the bottom end, and marries outright punch to a huge amount of tonal and textural variation. And when it comes to the dynamic of a recording, whether that’s the big shifts in intensity and volume or the more nuanced dynamics of harmonic changes, the KEF is an assured and convincing performer.
Q: When did you last see a pair of speakers that look like this? A: Never, that’s when.
The LS Luxe is the latest results of KEF’s ongoing collaboration with designer Ross Lovegrove and, just as with previous KEF/Lovegrove designs, there’s something almost organic about the shape of these loudspeakers.
The use of BMC (‘bulk moulding compound’) as the material for the cabinets means this smoothly curvaceous shape has no edges or visible seams, and is less prone to the build-up of internal standing waves than a more conventional box. It also means the requirement for internal bracing is minimised, so there’s greater internal volume than would otherwise be the case as a result. And there’s further visual drama at the rear of the cabinet: an elaborately shaped and channelled heatsink, fashioned from aluminium, has sufficient surface area to allow the heat from the internal electronics to be efficiently dispersed.
There’s also a fairly large bass reflex port nearby — it features KEF’s ‘Flexible Port Technology’. This means the walls of the port are not completely rigid, which should in theory help keep internal resonance to a minimum.
The LS Luxe is available in three finishes. My review sample is in ‘eclipse black’, which is my least favourite of the three. To my eyes it makes the cabinets look bulkier and heavier than they actually are. Check out the alternative ‘mineral white’ or ‘dusk titanium’ and see if you know what I mean. Regardless of the finish you choose, though, you’ll be the owner of a pair of speakers that are beautifully constructed, flawlessly finished, and both look and feel like the money’s-worth.
KEF didn’t supply me with the cost-option ‘S-Luxe’ stands developed specifically for use with this system, but unless you intend to position your speakers on a shelf or desktop (in which case I will judge you quite strongly) it’s worth factoring this extra cost in.
Other speaker stands work perfectly well, of course — I position the KEF on a pair of Soundstyle Z2, and they perform admirably. But the way the cabinet swoops and tapers towards the base means that a lot of the (regulation size) top plate of my stands is visible when the speaker is in place, and the look is not especially harmonious.
There’s really not that much to setting up the KEF LS Luxe, and once it’s set up it’s pretty straightforward to operate — but that’s not the same as saying it doesn’t require a little attention.
As already discussed, this is a wireless system that requires at least two wires; both speakers must be plugged into the mains. After that, you can choose to connect the speakers together using a supplied cable, or you can take the hit in terms of resolution and establish a wireless connection between them.
There are a couple of control methods available. KEF supplies quite a nice, metal-fronted remote control that covers off the fundamentals like playback, power, volume and input selection — and there’s also the ‘KEF Connect’ control app that’s free for iOS and Android.
Naturally it duplicates all the remote control functions, and adds in the ability to integrate music streaming services, search for and save internet radio stations, trim the system’s response to suit your specific environment, check for firmware updates and so on. It can be a little lethargic at times, but on the whole it’s a stable and useful user interface.
If you want your fancy new wireless stereo system to turn heads on the basis of its looks as well as its sound, you can’t really argue with the value the KEF LS Luxe represents.
If you’re after great build quality and nicely realised control options to go along with the sonic performance and the visual drama, the case for this system gets stronger still. The bespoke stands are no one’s idea of a bargain, admittedly, but in every other respect there’s undeniable value for money on offer here.
Attribute
Notes
Score
Features
As fully featured as you could ever hope in such a design
5 / 5
Sound quality
Very fussy with placement, but get it right and they'll reward you
4.5 / 5
Design
Ross Lovegrove's stylings won't be for everyone, but they're refreshingly unusual
4 / 5
Setup & usability
'Wireless' means either two or three wires, but a little patience gets things all set
4.5 / 5
Value
Excellent in the sound-per-pound stakes, but those stands are nobody's idea of a bargain
4 / 5
Buy them if…You like a strong design statement
They’re hard to come buy in the loudspeaker world, but there’s certainly one being made here
You like to be kept in the picture
The KEF’s facility with detail retrieval and midrange fidelity is straightforwardly impressive
You have a few different sources of music
Wired and wireless, analogue and digital - the LS Luxe has plenty of input options
You don’t intend to buy the bespoke stands
Third-party stands do a good job, of course, but will have no harmony at all where aesthetic is concerned
The looks have led you to expect big sonic scale
The KEF’s soundstage is properly laid out and controlled, but it’s not as sizable as you might hope
You’re not inclined to finesse the position of the speakers
It’s well worth putting the effort in, but there’s no denying the LS Luxe are fussier about positioning than most pairs of speakers
The Sonus faber Duetto is, in its own way, just as visually arresting as the LS Luxe — it’s more identifiably a pair of speakers, but the established Sonus faber virtue of outstanding cabinet-making means this system looks and even feels the part.
It’s no slouch sonically, either — it’s a composed, informative and periodically thrilling listen.
At the other end of the spectrum (at least where aesthetic considerations are concerned) you’ll find the sonically impeccable, visually challenging JBL 4329P. JBL speakers have looked like this since the middle of the last century, and there’s no denying that in terms of performance they’re a roaring success. Their appearance in your home may cause a row based on their divisive looks, though…
(Image credit: Future / Simon Lucas)How I tested the KEF LS LuxeI position the KEF LS Luxe on a pair of Soundstyle Z2 speaker stands, and plug each one into the mains.
I listen with the speakers connected wirelessly, and I also listen when they’re physically joined together.
I stream music using TIDAL Connect and also access a lot of hi-res content from a Synology BeeStation Plus NAS device.
I connect a preamplified turntable to the analog input, a CD player to the coaxial input, and an OLED TV to the HDMI eARC socket. This means I’m able to access lots of different styles of content, in lots of different digital file types, and in a variety of resolutions.
(Image credit: Future / Simon Lucas)The Sony Bravia 7 II serves as the more affordable model in Sony’s RGB LED 2026 lineup, and while it may not deliver the OLED-rivaling performance RGB has been touted to offer, it’s probably one of the best examples I’ve seen of the new RGB tech in action. It won’t beat the very best TVs I’ve tested this year, but it’s certainly a great TV.
The Bravia 7 II’s picture quality is great overall. It demonstrates excellent backlight control that delivers OLED-level blacks when viewed straight on, with minimal signs of blooming. It also delivers spectacular colors that rival the best OLED TVs, as well as refined, realistic detail and textures that bring pictures to life. It also delivers excellent motion handling for fast-paced action on screen. While not perfect, due to its reflective screen and signs of backlight blooming and faded contrast when viewed off-center, the Bravia 7 II’s picture is still very good.
Sony’s TVs are often among the strongest for built-in sound, but while the Bravia 7 II shows promise, its built-in sound wasn’t quite as good as I hoped. Getting the settings right is key (check out the sound quality section for more info), and once set up, it does deliver a clear, detailed, and accurate sound profile with decent bass. Yet, the sound felt too contained for my liking. I’d recommend one of the best soundbars here if you’re a regular movie viewer.
Gaming is well supported on the Bravia 7 II, with 4K 120Hz, VRR, ALLM and Dolby Vision all featured. The Bravia 7 II even produced a 10.4ms input lag time; one of the stronger times I’ve seen from a Sony TV. This translates well into real-life gaming, as I found performance smooth and responsive. While it has just two HDMI 2.1 ports and its picture can get muddy during fast-paced sequences, the Bravia 7 II still gives the best gaming TVs a run for their money.
Using Google TV as its smart TV platform, the Bravia 7 II has a good number of picture and audio settings, with fairly easy-to-navigate menus. Performance is strong overall, with only the occasional stutter, and while the large banner ads on the home menu can be distracting, Google TV is a decent smart TV platform.
The Bravia 7 II is solid value for money. While it is a premium-priced ‘mid-range’ TV, it delivers very good performance with a strong feature list and even goes toe-to-toe with rival OLEDs like the LG C6. The 65-inch launched at $2,599 / £2,299 / AU$3,299, with prices already dropping to $1,799 / £1,899 / AU$3,295. The Bravia 7 II may still be pricey, but it’s mostly in line with other RGB TVs and OLEDs for what it offers.
Sony Bravia 7 II review: Prices & release dates(Image credit: Future)The Bravia 7 II is the more affordable model in Sony’s True RGB TV lineup, sitting below the flagship Sony Bravia 9 II. The 65-inch model I tested for my review launched at $2,599 / £2,299 / AU$3,299, putting it at a similar launch price to the LG C6 OLED.
Since its release, the Bravia 7 II has been on sale several times, with the same 65-inch model I tested dropping to $1,799 in the US and £1,999 in the UK. Prices remain unchanged in Australia at the time of writing.
Sony Bravia 7 II review: SpecsScreen type:
RGB LED
Refresh rate:
120Hz
HDR support:
Dolby Vision, HDR10, HLG
Audio support:
Dolby Atmos, DTS:X
Smart TV:
Google TV
HDMI ports:
4 (2x HDMI 2.1)
Built-in tuner:
ATSC 1.0 (US)
Sony Bravia 7 II review: Benchmark results @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-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper *, #fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper *:before, #fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper *:after, #fv-chart-1787753727339-neqc22kvk-slideshow *, #fv-chart-1787753727339-neqc22kvk-slideshow *:before, #fv-chart-1787753727339-neqc22kvk-slideshow *:after {box-sizing: border-box !important; margin: 0; padding: 0; border: 0;font-size: 100%; font: inherit; vertical-align: baseline;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper, #fv-chart-1787753727339-neqc22kvk-slideshow { font-family: 'Open Sans', sans-serif !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper {position: relative !important; overflow: visible !important;--riv-primary: #2E6E93;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .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-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-inner-wrapper.fv-no-header.fv-is-image-compare {padding-top: 0 !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.fv-full-bleed {width: 100vw !important;margin-left: calc(50% - 50vw) !important;}body {overflow-x: clip !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.fv-full-bleed .fv-inner-wrapper {padding: 0 !important;border-radius: 0 !important;box-shadow: none !important;margin: 0 !important;background-color: transparent !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-inner-wrapper.fv-is-shop-the-look {padding: 0 !important;border-radius: 0 !important;box-shadow: none !important;margin: 0 !important;background-color: transparent !important;}#fv-chart-1787753727339-neqc22kvk-slideshow {position: relative !important;width: 100% !important;margin: 1rem 0 !important;--riv-primary: #2E6E93;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-slides-wrapper {position: relative !important;width: 100% !important;}#fv-chart-1787753727339-neqc22kvk-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-1787753727339-neqc22kvk-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-1787753727339-neqc22kvk-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-1787753727339-neqc22kvk-slideshow .fv-nav-btn svg {width: 18px !important;height: 18px !important;stroke-width: 3px !important;filter: none !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-nav-btn:hover {opacity: 0.9 !important;transform: translateY(-1px) !important;}#fv-chart-1787753727339-neqc22kvk-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-1787753727339-neqc22kvk-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-1787753727339-neqc22kvk-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-1787753727339-neqc22kvk-slideshow .fv-slideshow-select:focus {outline: 2px solid #2E6E93 !important;border-color: #2E6E93 !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-chart-title {font-weight: bold !important;text-align: center !important;margin-bottom: 0.5rem !important;color: var(--riv-primary) !important;font-size: 20px !important;line-height: 1.2 !important;font-family: 'Open Sans', sans-serif !important;text-transform: none !important;white-space: normal !important;overflow-wrap: break-word !important;padding: 0 20px !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-chart-subhead {font-size: 18px !important;font-weight: 500 !important;text-align: center !important;margin-bottom: 2rem !important;color: #374151 !important;line-height: 1.7 !important;font-family: 'Open Sans', sans-serif !important;display: block !important;text-transform: none !important;padding: 0 20px !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .rv-chart-caption { font-size: 15px !important; color: #374151 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-select-wrapper { flex: 1; min-width: 0; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-select { background: transparent; border: none; border-bottom: 2px solid; font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; padding: 0.25rem 0; cursor: pointer; outline: none; appearance: none; -webkit-appearance: none; -moz-appearance: none; max-width: 100%; width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-select option { font-family: 'Open Sans', sans-serif; font-weight: 400; font-size: 14px; color: #374151; direction: ltr; text-align: left; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-vs { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; color: #374151; letter-spacing: 0.1em; padding: 0 1rem; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-bar { height: 32px; width: var(--target-width); transition: width 0.8s ease-out; animation: fv-grow-max-width 0.8s ease-out forwards; display: flex; align-items: center; overflow: hidden; color: #ffffff; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-bar-right { border-radius: 0 4px 4px 0; justify-content: flex-start; padding: 0 8px; }@keyframes fv-grow-max-width {from { max-width: 0; }to { max-width: 100%; }}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-center-line { position: absolute; left: 50%; top: 0; bottom: 0; width: 4px; background-color: #ffffff; transform: translateX(-50%); z-index: 1; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-inside-left { white-space: nowrap; flex-shrink: 0; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-inside-right { white-space: nowrap; flex-shrink: 0; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-pct-diff { font-size: 12px; font-weight: 600; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-label { position: absolute; left: 50%; transform: translateX(-50%); top: 0; background-color: transparent; border: none; box-shadow: none; padding: 0; font-family: 'Open Sans', sans-serif; font-weight: 700; font-size: 14px; color: #374151; white-space: nowrap; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-footer-content { text-align: center !important; width: 100% !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-logo {display: block !important;margin: 0 auto !important;width: 120px !important;min-width: 120px !important;max-width: 120px !important;height: auto !important;object-fit: contain !important;flex-shrink: 0 !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-dropdown-title {appearance: none !important;-webkit-appearance: none !important;-moz-appearance: none !important;background: transparent !important;border: none !important;font-size: 18px !important;font-weight: 600 !important;color: var(--riv-primary) !important;padding-right: 28px !important;padding-left: 10px !important;cursor: pointer !important;text-align: center !important;text-align-last: center !important;width: auto !important;max-width: 100% !important;font-family: 'Open Sans', sans-serif !important;line-height: 1.3 !important;margin: 0 !important;text-overflow: ellipsis !important;overflow: hidden !important;white-space: nowrap !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-dropdown-title:focus { outline: none !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-dropdown-title::-ms-expand { display: none !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-dropdown-chevron {position: absolute !important;right: 0 !important;top: 50% !important;transform: translateY(-50%) !important;pointer-events: none !important;color: var(--riv-primary) !important;display: flex !important;align-items: center !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-carousel-nav-btn {background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important;cursor: pointer !important; font-size: 14px !important; color: #374151 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-multi-value-legend {display: flex !important;justify-content: center !important;flex-wrap: wrap !important;gap: 12px 24px !important;margin-bottom: 1.5rem !important;padding: 0 !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-multi-legend-item { display: flex !important; align-items: center !important; gap: 8px !important; font-size: 14px !important; color: #374151 !important; font-weight: 500 !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-benchmark-group { margin-bottom: 1rem !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-benchmark-title {font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important;text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important;font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important;text-transform: none !important;white-space: normal !important;overflow-wrap: break-word !important;word-wrap: break-word !important;max-width: 100% !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-bar-row, #fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #374151 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; min-height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-bar-commentary-inline { display: none !important; position: absolute !important; left: 150px !important; top: 0 !important; bottom: 0 !important; right: 0 !important; width: calc(100% - 150px) !important; margin: 0 !important; padding: 0 8px !important; font-size: 13px !important; color: #fff !important; background: rgba(0,0,0,0.8) !important; border-radius: 4px !important; line-height: 1.4 !important; font-weight: normal !important; text-transform: none !important; word-wrap: break-word !important; z-index: 10 !important; align-items: center !important; overflow-y: auto !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; min-height: 23px !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-bar:hover { opacity: 0.8 !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; font-size: 14px !important; font-weight: bold !important; overflow: hidden !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-bar-inner-value { flex-shrink: 0 !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #374151 !important; white-space: nowrap !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-stacked-bar { display: flex !important; overflow: hidden !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-stacked-segment:last-child { border-right: none !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-segment-value { font-size: 14px !important; font-weight: bold !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-grouped-product-title-wrapper { padding-left: 150px !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #374151 !important; text-transform: none !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-bar-cluster .fv-bar-container { height: 20px !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .riv-grid line {stroke: #D1D5DB !important;stroke-dasharray: 3 3 !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #374151 !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-x-axis-ticks span { position: relative !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-x-axis-ticks span::before { content: '' !important; position: absolute !important; top: -6px !important; left: 50% !important; transform: translateX(-50%) !important; width: 2px !important; height: 4px !important; background-color: #D1D5DB !important; border-radius: 1px !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #374151 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-y-axis-title {font-size: 15px !important;color: #374151 !important;line-height: 1.5 !important;text-align: left !important;padding-left: 5.83% !important;margin-bottom: 4px !important;display: block !important;font-weight: bold !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-pie-container,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-pie-container {flex-direction: column !important; gap: 1rem !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-grouped-product-title-wrapper,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-grouped-product-title-wrapper {padding-left: 0 !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-bar-row,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-stacked-product,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-grouped-bar-product,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-row,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-stacked-product,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-grouped-bar-product {flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-bar-label:not(.fv-grouped-product-title),#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-label:not(.fv-grouped-product-title) {width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-bar-label,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-grouped-product-title,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-label,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-grouped-product-title {width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-bar-container,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-bar-cluster,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-container,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-cluster {width: 100% !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus-within {position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-x-axis-wrapper,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-x-axis-wrapper {margin-left: 0 !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-x-axis-label-space,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-x-axis-label-space {display: none !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-x-axis-chart-space,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-x-axis-chart-space {padding-right: 0 !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-benchmark-title,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-benchmark-title {font-size: 16px !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-dropdown-title,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-dropdown-title {font-size: 16px !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-carousel-nav-btn,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-carousel-nav-btn {padding: 8px 12px !important; font-size: 14px !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-chart-title,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-chart-title {padding: 0 8px !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-chart-subhead,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-chart-subhead {padding: 0 8px !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-versus-header,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-header {flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select-wrapper,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select-wrapper {flex: 1 !important; min-width: 0 !important; width: 100% !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select-wrapper.fv-left,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select-wrapper.fv-left {text-align: center !important; padding-right: 0 !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select-wrapper.fv-right,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select-wrapper.fv-right {text-align: center !important; padding-left: 0 !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select.fv-select-left,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select.fv-select-left {text-align: center !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select.fv-select-right,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select.fv-select-right {text-align: center !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-versus-vs,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-vs {text-align: center !important; padding: 0.25rem 0 !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select-container,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select-container {max-width: 100% !important; width: 100% !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select {font-size: 14px !important; width: 100% !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-stl-shop-all-btn,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-stl-shop-all-btn {bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-stl-shop-all-logo,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-stl-shop-all-icon,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-stl-shop-all-logo,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-stl-shop-all-icon {width: 2rem !important; height: 2rem !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-stl-shop-all-icon svg,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-stl-shop-all-icon svg {width: 14px !important; height: 14px !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-bar-commentary-inline,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-commentary-inline {display: block !important; margin-left: 0 !important; width: 100% !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view .fv-y-axis-title { padding-left: 5% !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.mobile-view.fv-contains-line-chart .fv-footer-content {margin-left: -1rem !important;margin-right: -1rem !important;}@media (max-width: 599px) {#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-pie-container {flex-direction: column !important; gap: 1rem !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-grouped-product-title-wrapper {padding-left: 0 !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-bar-row,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-stacked-product,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-grouped-bar-product {flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-bar-label:not(.fv-grouped-product-title) {width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-bar-label,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-grouped-product-title {width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-bar-container,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-bar-cluster {width: 100% !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-bar-row .fv-bar-commentary-inline:focus-within {position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-x-axis-wrapper {margin-left: 0 !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-x-axis-label-space {display: none !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-x-axis-chart-space {padding-right: 0 !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-benchmark-title {font-size: 16px !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-dropdown-title {font-size: 16px !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-carousel-nav-btn {padding: 8px 12px !important; font-size: 14px !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-chart-title {padding: 0 8px !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-chart-subhead {padding: 0 8px !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-header {flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-select-wrapper {flex: 1 !important; min-width: 0 !important; width: 100% !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-select-wrapper.fv-left {text-align: center !important; padding-right: 0 !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-select-wrapper.fv-right {text-align: center !important; padding-left: 0 !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-select.fv-select-left {text-align: center !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-select.fv-select-right {text-align: center !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-vs {text-align: center !important; padding: 0.25rem 0 !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-select-container {max-width: 100% !important; width: 100% !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-versus-select {font-size: 14px !important; width: 100% !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-stl-shop-all-btn {bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-stl-shop-all-logo,#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-stl-shop-all-icon {width: 2rem !important; height: 2rem !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-stl-shop-all-icon svg {width: 14px !important; height: 14px !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-bar-commentary-inline {display: block !important; margin-left: 0 !important; width: 100% !important;}#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper .fv-y-axis-title { padding-left: 5% !important; }#fv-chart-1787753727339-neqc22kvk-slideshow .fv-chart-wrapper.fv-contains-line-chart .fv-footer-content {margin-left: -1rem !important;margin-right: -1rem !important;}}[{"@context": "https://schema.org","@type": "Dataset","name": "Brightness Measurements","description": "Taken using a colorimeter and test pattern generator. Click the test name for measurements and select the chosen test from the dropdown menu.","creator": {"@type": "Organization","name": "TechRadar","logo": "https://cdn.mos.cms.futurecdn.net/dAwPEozB9GMMhAngdFJTHb.png"},"isAccessibleForFree": true,"dateCreated": "2026-08-26T14:15:27.340Z","citation": "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized","keywords": ["Sony Bravia 7 II","LG C6","Samsung R95H","HDR Filmmaker Mode (10% window)","HDR Filmmaker Mode (Fullscreen)","HDR Standard Mode (10% window)","SDR Filmmaker Mode (10% window)","SDR Standard Mode (10% window)","HDR Standard Mode (Fullscreen)","SDR Filmmaker Mode (Fullscreen)","SDR Standard Mode (Fullscreen)","HDR Filmmaker","HDR Standard","SDR Filmmaker","SDR Standard","benchmark","comparison","performance","review","TechRadar"],"measurementTechnique": "Performance Benchmarking","variableMeasured": [{"@type": "PropertyValue","name": "Sony Bravia 7 II – HDR Filmmaker Mode (10% window)","value": 1114,"unitText": "nits"},{"@type": "PropertyValue","name": "Sony Bravia 7 II – HDR Filmmaker Mode (Fullscreen)","value": 829,"unitText": "nits"},{"@type": "PropertyValue","name": "LG C6 – HDR Filmmaker Mode (10% window)","value": 1427,"unitText": "nits"},{"@type": "PropertyValue","name": "LG C6 – HDR Filmmaker Mode (Fullscreen)","value": 247,"unitText": "nits"},{"@type": "PropertyValue","name": "Samsung R95H – HDR Filmmaker Mode (10% window)","value": 1977,"unitText": "nits"},{"@type": "PropertyValue","name": "Samsung R95H – HDR Filmmaker Mode (Fullscreen)","value": 612,"unitText": "nits"},{"@type": "PropertyValue","name": "Sony Bravia 7 II – HDR Standard Mode (10% window)","value": 1295,"unitText": "nits"},{"@type": "PropertyValue","name": "Sony Bravia 7 II – HDR Standard Mode (Fullscreen)","value": 788,"unitText": "nits"},{"@type": "PropertyValue","name": "LG C6 – HDR Standard Mode (10% window)","value": 1364,"unitText": "nits"},{"@type": "PropertyValue","name": "LG C6 – HDR Standard Mode (Fullscreen)","value": 243,"unitText": "nits"},{"@type": "PropertyValue","name": "Samsung R95H – HDR Standard Mode (10% window)","value": 2066,"unitText": "nits"},{"@type": "PropertyValue","name": "Samsung R95H – HDR Standard Mode (Fullscreen)","value": 647,"unitText": "nits"},{"@type": "PropertyValue","name": "Sony Bravia 7 II – SDR Filmmaker Mode (10% window)","value": 90,"unitText": "nits"},{"@type": "PropertyValue","name": "Sony Bravia 7 II – SDR Filmmaker Mode (Fullscreen)","value": 94,"unitText": "nits"},{"@type": "PropertyValue","name": "LG C6 – SDR Filmmaker Mode (10% window)","value": 333,"unitText": "nits"},{"@type": "PropertyValue","name": "LG C6 – SDR Filmmaker Mode (Fullscreen)","value": 237,"unitText": "nits"},{"@type": "PropertyValue","name": "Samsung R95H – SDR Filmmaker Mode (10% window)","value": 115,"unitText": "nits"},{"@type": "PropertyValue","name": "Samsung R95H – SDR Filmmaker Mode (Fullscreen)","value": 185,"unitText": "nits"},{"@type": "PropertyValue","name": "Sony Bravia 7 II – SDR Standard Mode (10% window)","value": 608,"unitText": "nits"},{"@type": "PropertyValue","name": "Sony Bravia 7 II – SDR Standard Mode (Fullscreen)","value": 476,"unitText": "nits"},{"@type": "PropertyValue","name": "LG C6 – SDR Standard Mode (10% window)","value": 391,"unitText": "nits"},{"@type": "PropertyValue","name": "LG C6 – SDR Standard Mode (Fullscreen)","value": 234,"unitText": "nits"},{"@type": "PropertyValue","name": "Samsung R95H – SDR Standard Mode (10% window)","value": 413,"unitText": "nits"},{"@type": "PropertyValue","name": "Samsung R95H – SDR Standard Mode (Fullscreen)","value": 187,"unitText": "nits"}]},{"@context": "https://schema.org","@type": "Dataset","name": "HDR color gamut","description": "Closer to 100% is better. Taken using a colorimeter and test pattern generator.","creator": {"@type": "Organization","name": "TechRadar","logo": "https://cdn.mos.cms.futurecdn.net/dAwPEozB9GMMhAngdFJTHb.png"},"isAccessibleForFree": true,"dateCreated": "2026-08-26T14:15:27.340Z","citation": "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized","keywords": ["Sony Bravia 7 II","LG C6","Samsung R95H","UHDA-P3","BT.2020","HDR Filmmaker","benchmark","comparison","performance","review","TechRadar"],"measurementTechnique": "Performance Benchmarking","variableMeasured": [{"@type": "PropertyValue","name": "Sony Bravia 7 II – UHDA-P3","value": 98.6,"unitText": ""},{"@type": "PropertyValue","name": "Sony Bravia 7 II – BT.2020","value": 89.6,"unitText": ""},{"@type": "PropertyValue","name": "LG C6 – UHDA-P3","value": 99.7,"unitText": ""},{"@type": "PropertyValue","name": "LG C6 – BT.2020","value": 75.9,"unitText": ""},{"@type": "PropertyValue","name": "Samsung R95H – UHDA-P3","value": 148,"unitText": ""},{"@type": "PropertyValue","name": "Samsung R95H – BT.2020","value": 94.1,"unitText": ""}]},{"@context": "https://schema.org","@type": "Dataset","name": "Picture accuracy","description": "A lower score is better. Taken using a colorimeter and test pattern generator.","creator": {"@type": "Organization","name": "TechRadar","logo": "https://cdn.mos.cms.futurecdn.net/dAwPEozB9GMMhAngdFJTHb.png"},"isAccessibleForFree": true,"dateCreated": "2026-08-26T14:15:27.340Z","citation": "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized","keywords": ["Sony Bravia 7 II","LG C6","Samsung R95H","Delta-E","SDR Delta-E","benchmark","comparison","performance","review","TechRadar"],"measurementTechnique": "Performance Benchmarking","variableMeasured": [{"@type": "PropertyValue","name": "Sony Bravia 7 II – Delta-E","value": 6.5,"unitText": ""},{"@type": "PropertyValue","name": "LG C6 – Delta-E","value": 1.3,"unitText": ""},{"@type": "PropertyValue","name": "Samsung R95H – Delta-E","value": 3.7,"unitText": ""}]},{"@context": "https://schema.org","@type": "Dataset","name": "Input lag","description": "Lower is better. Taken using a Leo Bodnar 4K HDMI Video Signal Lag Tester.","creator": {"@type": "Organization","name": "TechRadar","logo": "https://cdn.mos.cms.futurecdn.net/dAwPEozB9GMMhAngdFJTHb.png"},"isAccessibleForFree": true,"dateCreated": "2026-08-26T14:15:27.340Z","citation": "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized","keywords": ["Sony Bravia 7 II","LG C6","Samsung R95H","4K 60Hz","1080p 120Hz","HDR Filmmaker","benchmark","comparison","performance","review","TechRadar"],"measurementTechnique": "Performance Benchmarking","variableMeasured": [{"@type": "PropertyValue","name": "Sony Bravia 7 II – 4K 60Hz","value": 10.4,"unitText": "ms"},{"@type": "PropertyValue","name": "Sony Bravia 7 II – 1080p 120Hz","value": 5.7,"unitText": "ms"},{"@type": "PropertyValue","name": "LG C6 – 4K 60Hz","value": 9.2,"unitText": "ms"},{"@type": "PropertyValue","name": "LG C6 – 1080p 120Hz","value": 4.7,"unitText": "ms"},{"@type": "PropertyValue","name": "Samsung R95H – 4K 60Hz","value": 11.7,"unitText": "ms"},{"@type": "PropertyValue","name": "Samsung R95H – 1080p 120Hz","value": 9.4,"unitText": "ms"}]}]Previous1 / 4NextBrightness MeasurementsTaken using a colorimeter and test pattern generator. Click the test name for measurements and select the chosen test from the dropdown menu.
HDR FilmmakerHDR StandardSDR FilmmakerSDR StandardSony Bravia 7 IIHDR Filmmaker Mode (10% window)1114HDR Filmmaker Mode (Fullscreen)829LG C6HDR Filmmaker Mode (10% window)1427HDR Filmmaker Mode (Fullscreen)247Samsung R95HHDR Filmmaker Mode (10% window)1977HDR Filmmaker Mode (Fullscreen)61205001,0001,5002,000nitsHDR Filmmaker DataProductHDR Filmmaker Mode (10% window) (nits)HDR Filmmaker Mode (Fullscreen) (nits)Sony Bravia 7 II1114829LG C61427247Samsung R95H1977612Sony Bravia 7 IIHDR Standard Mode (10% window)1295HDR Standard Mode (Fullscreen)788LG C6HDR Standard Mode (10% window)1364HDR Standard Mode (Fullscreen)243Samsung R95HHDR Standard Mode (10% window)2066HDR Standard Mode (Fullscreen)64707501,5002,2503,000nitsHDR Standard DataProductHDR Standard Mode (10% window) (nits)HDR Standard Mode (Fullscreen) (nits)Sony Bravia 7 II1295788LG C61364243Samsung R95H2066647Sony Bravia 7 IISDR Filmmaker Mode (10% window)90SDR Filmmaker Mode (Fullscreen)94LG C6SDR Filmmaker Mode (10% window)333SDR Filmmaker Mode (Fullscreen)237Samsung R95HSDR Filmmaker Mode (10% window)115SDR Filmmaker Mode (Fullscreen)1850100200300400nitsSDR Filmmaker DataProductSDR Filmmaker Mode (10% window) (nits)SDR Filmmaker Mode (Fullscreen) (nits)Sony Bravia 7 II9094LG C6333237Samsung R95H115185Sony Bravia 7 IISDR Standard Mode (10% window)608SDR Standard Mode (Fullscreen)476LG C6SDR Standard Mode (10% window)391SDR Standard Mode (Fullscreen)234Samsung R95HSDR Standard Mode (10% window)413SDR Standard Mode (Fullscreen)1870200400600800nitsSDR Standard DataProductSDR Standard Mode (10% window) (nits)SDR Standard Mode (Fullscreen) (nits)Sony Bravia 7 II608476LG C6391234Samsung R95H413187HDR color gamutCloser to 100% is better. Taken using a colorimeter and test pattern generator.
Sony Bravia 7 IIUHDA-P398.6BT.202089.6LG C6UHDA-P399.7BT.202075.9Samsung R95HUHDA-P3148BT.202094.1037.575112.5150HDR Filmmaker DataProductUHDA-P3 ()BT.2020 ()Sony Bravia 7 II98.689.6LG C699.775.9Samsung R95H14894.1Picture accuracyA lower score is better. Taken using a colorimeter and test pattern generator.
SDR Delta-ESony Bravia 7 II6.5LG C61.3Samsung R95H3.701234567SDR Delta-E DataProductValueSony Bravia 7 II6.5LG C61.3Samsung R95H3.7Input lagLower is better. Taken using a Leo Bodnar 4K HDMI Video Signal Lag Tester.
Sony Bravia 7 II4K 60Hz10.41080p 120Hz5.7LG C64K 60Hz9.21080p 120Hz4.7Samsung R95H4K 60Hz11.71080p 120Hz9.403.757.511.2515msHDR Filmmaker DataProduct4K 60Hz (ms)1080p 120Hz (ms)Sony Bravia 7 II10.45.7LG C69.24.7Samsung R95H11.79.4window.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 (true) {var slideshowContainer = document.getElementById(uniqueId + '-slideshow');if (slideshowContainer) {var slides = slideshowContainer.querySelectorAll('.fv-slide');slides.forEach(function(slide) {setupWrapper(slide.querySelector('.fv-chart-wrapper'));});}var slideshowContainer = document.getElementById(uniqueId + '-slideshow');if (slideshowContainer) {var currentSlideIndex = 0;var slides = slideshowContainer.querySelectorAll('.fv-slide');var counter = slideshowContainer.querySelector('.fv-slide-counter');var prevBtn = slideshowContainer.querySelector('.fv-nav-btn.prev');var nextBtn = slideshowContainer.querySelector('.fv-nav-btn.next');var dropdown = slideshowContainer.querySelector('.fv-slideshow-select');function updateControls(index) {if (counter) counter.textContent = (index + 1) + ' / ' + slides.length;if (dropdown) dropdown.value = index;if (prevBtn) {if (index === 0) prevBtn.classList.add('disabled');else prevBtn.classList.remove('disabled');}if (nextBtn) {if (index === slides.length - 1) nextBtn.classList.add('disabled');else nextBtn.classList.remove('disabled');}}function showSlide(index) {if (index < 0) return;if (index >= slides.length) return;currentSlideIndex = index;slides.forEach(function(slide, i) {slide.style.display = i === index ? 'block' : 'none';if (i === index) {var chartEl = slide.querySelector('.fv-chart-wrapper');if (chartEl && window.fvAnimateCharts) {window.fvAnimateCharts(chartEl);}}});updateControls(currentSlideIndex);}if (prevBtn) {prevBtn.addEventListener('click', function() { showSlide(currentSlideIndex - 1); });}if (nextBtn) {nextBtn.addEventListener('click', function() { showSlide(currentSlideIndex + 1); });}if (dropdown) {dropdown.addEventListener('change', function(e) { showSlide(parseInt(e.target.value)); });}updateControls(currentSlideIndex);if (slides.length > 0) {var firstChart = slides[0].querySelector('.fv-chart-wrapper');if (firstChart && window.fvAnimateCharts) {setTimeout(function() { window.fvAnimateCharts(firstChart); }, 100);}}}} else {setupWrapper(root);}}if (document.readyState === 'loading') {document.addEventListener('DOMContentLoaded', function() { initialize('fv-chart-1787753727339-neqc22kvk', true); });} else {initialize('fv-chart-1787753727339-neqc22kvk', true);}})();The above EOTF graphs show the accuracy of the Sony Bravia 7 II in hitting different HDR brightness levels in grayscale. The closer to the yellow line, the more accurate a TV is. As with all our tests, these results are out of the box, without calibration, to demonstrate the performance most people will get. As you can see, the UR8 did very well on all three target tests, showing little deviation from the reference line. (Image credit: Future)Spectral power distribution refers to the intensity of light that a source will display at various wavelengths of color. It can reveal how accurately a source shows color at different light levels and be instructive in understanding how a TV is handling color (Image credit: Future)Sony Bravia 7 II review: FeaturesThe Bravia 7 II has a good number of connections, but only two HDMI 2.1 ports. (Image credit: Future)The Bravia 7 II is one of Sony’s True RGB TVs and features an RGB mini-LED backlight. This introduces red, green and blue LEDs instead of the normal white you’ll find in a standard LED/mini-LED panel for greater color volume and (generally) higher brightness. Along with the RGB backlight, there are numerous named RGB features, including RGB Backlight Master Drive Pro and RGB Triluminous Max
The Bravia 7 II is equipped with Sony’s own XR Processor, which supports picture features such as XR Clear Image (for better motion clarity), XR Motion Clarity (for smoother motion) and XR Contrast Booster (for enhanced contrast).
Dolby Vision HDR is supported but not HDR10+ (which isn’t unusual for Sony). There's also support for IMAX Enhanced content.
The Bravia 7 II supports an X-Wide Angle Pro feature for better viewing angles, something RGB TVs from most brands say is one of the advantages of the new technology, as standard mini-LED, when viewed from an angle, can often result in backlight blooming.
As for audio, the 65-, 75- and 85-inch models have a 40W speaker system consisting of two full-range speakers and two subwoofers. The 50- and 55-inch models use two full-range speakers and two tweeters. The Bravia 7 II supports AI Voice upscaling and room calibration audio features, and both Dolby Atmos and DTS:X (as well as DTS-HD) audio formats.
For gaming, the Bravia 7 II has two HDMI 2.1 ports that support 4K 120Hz, ALLM and VRR gaming. The other two ports are standard HDMI 2.0. There are also Perfect for PS5 features, including Auto HDR Tone Mapping, Auto Genre Picture Mode (where the TV will automatically switch to game picture mode when a PS5 is detected), and support for the PS Remote Play app, where you can control your PS5, PS5 Pro or PS4 from another location via the TV.
The Bravia 7 II uses Google TV as its smart TV platform and supports the usual streaming apps such as Netflix and Prime Video, as well as Sony’s own Bravia Pictures Core streaming service. In the UK, there is support for BBC iPlayer, ITVX, Channel 4 and Channel 5 streaming apps. In the US, the Bravia 7 II features an ATSC 3.0 tuner.
Starting with brightness measurements, the 65-inch Bravia 7 II registered 1,114 nits peak HDR brightness in its Professional picture mode (its equivalent to Filmmaker), 1,295 nits in Standard mode, and 1,163 nits in Cinema mode. This makes it one of the dimmer RGB TVs I’ve tested out of the box, with the Hisense UR8 hitting 2,097 nits and the Samsung R95H hitting 1,977 nits, both in HDR Filmmaker Mode.
As for HDR fullscreen brightness, the Bravia 7 II registered 829 nits in Professional mode, a solid number that beats both the UR8, which hit 771 nits, and the R95H, which hit 612 nits: again, both in Filmmaker Mode.
The Bravia 7 II also registered promising peak SDR brightness in Standard mode, hitting 608 nits, and in Cinema mode, hitting 663 nits, making it a good TV for standard daytime and broadcast TV and other non-HDR sources.
One of the first things I noted about the Bravia 7 II while testing it in our lab is that it has a reflective screen. Any dark scenes viewed in bright lighting showed mirror-like reflections on the screen, especially when there was a lot of black. If you’re watching a darker movie or TV show, it’s definitely worth watching in ambient conditions.
Colors also look accurate and punchy in equal measure in real-world movies like Speed Racer (pictured) (Image credit: Future)Moving to 4K, HDR content, the Bravia showcases excellent color reproduction: some of the best I’ve seen on an RGB TV so far. Watching The Super Mario Galaxy Movie, colors really pop on-screen with superb vibrancy. As the Lumas all gather in the room for story time, the Lumas themselves are vibrant, showing off the Bravia 7 II’s fantastic color volume. Other bright colors throughout the movie, such as the green of Yoshi’s skin, are bold and rich, too.
In a real-world movie, namely Speed Racer, the Bravia 7 II renders the gaudy interior of the Racer home and their outfits with real accuracy and some impressive clarity. The purple of Royalton Industries is another highlight, where the Bravia 7 II shows excellent highlights and great color luminance.
It’s not surprising the Bravia 7 II delivered brilliant colors as it scored highly in the HDR color gamut coverage tests. It registered 87.7% of the BT.2020 color space and 99.2% of the UHDA-P3 color space: both excellent results that are up there with QD-OLED TVs. While other RGB TVs I’ve tested have broken the scale of the UHDA-P3 coverage, with both the Hisense UR8 and Samsung R95H hitting over 145%, this didn’t stop the Bravia 7 II colors from looking fantastic. In fact, in my Bravia 7 II vs R95H comparison, I often preferred the Bravia 7 II’s color profile. It even gave the C6 a run for its money in my LG C6 vs Bravia 7 II comparison.
The Bravia 7 II even handles challenging dark movies like The Batman (pictured) well, showing good backlight control and strong contrast (Image credit: Warner Bros / Future)The Bravia 7 II’s contrast is strong. In The Batman, the dark walls and floors of the Batcave balance well with the bright tones from the overhead lights and monitors Bruce uses when reviewing video footage. There’s also great shadow detail, where textures such as the back wall of a subway platform Batman stands on are legible while still maintaining rich dark tones.
In Dark City, blacks are deep and inky, and again there’s powerful contrast at work. I did notice some occasional black crush in some scenes. When John is talking to the hotel clerk, the texture of his curly hair isn’t as clear, but black tones are still rich. In my Bravia 7 II vs Samsung R95H comparison, the R95H proved to have better black detail in this scene.
The Bravia 7 II's detail is again one of its strong suits, as it delivers 3D-like textures that give the picture real depth (Image credit: Future)The Bravia 7 II showed superb detail and crisp textures throughout my testing. In footage of a snow-covered deer from the Spears & Munsil UHD Benchmark 4K Blu-ray, the deer has a near-3D-like look, showing some nice depth that really made the image come to life. This is true in other reference scenes I used too, such as how people look in Speed Racer. Skin looks lifelike, and other textures, like the detail of the Mach 5 car, were delivered with gorgeous clarity.
It also demonstrates excellent motion handling, even with motion settings turned off. As cars glided around the track in the opening race of Speed Racer, there were very minimal signs of judder or blur. The Bravia 7 even effectively handled the commentators moving across the screen, something I’ve seen produce serious judder on other TVs.
Viewed head on (1) the Bravia 7 II delivers deep black tones and contrastFutureWhen viewed from an angle, signs of blooming appear, though it is still better than standard mini-LEDFutureWhile I did find that viewing angles of the Bravia 7 II were better than a standard mini-LED, I noted that when viewed from an extreme angle, some backlight blooming was visible, especially in dark scenes. As white text appears against a black background, there's a halo effect around the writing. This is an area where OLED, which RGB aims to rival, is still superior, as OLED has self-dimming pixels for better control. However, the Bravia 7 II did mostly deliver very good backlight control when viewed head-on.
The 65-inch Bravia 7 II has a 40W speaker system, consisting of two full-range speakers and two subwoofers. Rather than the conventional sound modes of other TVs, it focuses on a much more manual approach, with an equalizer and processing settings for users to experiment with.
During the opening race of Speed Racer, the Bravia 7 II delivered accurate sound with clear dynamics. As cars swerved around the track, the sound was accurately mapped to the picture on screen. In one section, as Speed grinds his car on a rail, the subtle grinding noise was audible amongst the chaos of the race. There was some solid, punchy bass capturing the sound of the engines, but I couldn’t help but feel it lacked the ‘oomph’ I’ve come to expect from Sony’s TVs.
Activating Acoustic Room Calibration added some much-needed edge to the sound. The soundstage widened, creating a more immersive sound, and bass was heftier, rendering the roar of the engines more accurately. Voices were clear with and without the calibration, but they were clearer with the calibration active. Atmos effects such as cars flying overhead as they cleared the track’s jumps were also more audible.
Still, the sound could be harsh at times, especially when in the ‘compressed’ dynamic range. I opted for ‘standard’ for a quieter, warmer sound profile. The sound again felt artificial at times, and still felt contained to the rear of the TV. While the overall sound is decent, it won’t beat a good soundbar.
The Bravia 7 II has a central pedestal stand. Made of tough, sturdy metal, the Bravia 7 II feels secure on a tabletop stand, and against the right background (I use a dark-wood stand), the stand can blend in to create a more ‘floating’ look.
The Bravia 7 II itself is on the weightier side, mainly due to its bulkier frame. Compared to many other TVs in today’s market, the Bravia 7 II is much deeper and thicker, probably to handle its built-in speakers. The TV's bezel is trim, allowing plenty of room for the pictures on screen.
There are two remotes included with the Bravia 7 II (one mainly for UK users, as it has numbered buttons), but the main one is the Bravia Voice Remote. The button layout is functional and easy enough to understand, but it feels on the cheap side, being made of light plastic. For a TV at this price, I’d have liked a more premium remote.
Like most Sony TVs, the Bravia 7 II uses Google TV as its smart TV platform. Once logged in with your Google account, there will be recommendations from various apps based on your viewing history, which is useful for finding new content. However, the home page is beset with large banner ads that sometimes fill half the screen, which can be very distracting. Google TV supports all major streaming apps, including UK-based platforms such as BBC iPlayer and ITVX.
In terms of settings, the Bravia 7 II has plenty of picture settings and modes for users to get stuck into. There are tons of ways to customize picture settings, with AI-based tools and more traditional brightness, color, contrast and motion settings. The aforementioned sound settings (in the Sound Quality section) also allow for some freedom, but can be daunting for those looking for easy set-up.
I did find that while navigating through some apps and menus, the Bravia 7 II’s performance could stutter at times. This was also true when using the UB-820 4K Blu-ray player, with some stutters here and there. Performance for the most part was solid; just not as slick as on LG’s TVs, say.
The Bravia 7 II supports 4K 120Hz, VRR, Dolby Vision gaming and ALLM, featured on two HDMI 2.1 ports. Using a Leo Bodnar 4K HDMI Input Lag Tester, I measured the Bravia 7 II’s input lag at 10.4ms at 4K 60Hz, which is a big improvement over other Sony TVs we’ve tested at TechRadar, such as the Bravia 8 II OLED, which clocked in at 16.3ms (4K 60Hz). The Bravia 7 II also registered 5.7ms at 1080p 120Hz: a solid time compared to other TVs I’ve tested this year.
These strong input lag times translate to actual gaming. Playing Battlefield V on Xbox Series X, the Bravia 7 II demonstrated responsive performance, which felt smooth even during chaotic battle sequences with a lot of free-flowing movement. Locking onto targets felt snappy with almost no signs of judder.
The Bravia 7 II’s picture quality while gaming was strong for the most part, showing excellent detail with 3D-like textures, as well as bold brightness, rich contrast and punchy colors. I did notice that during faster-paced moments, a dirt screen effect could occur, where textures became a bit muddied, but this didn’t happen all the time.
The Bravia 7 II is a mid-range model, and while its 65-inch model, which currently costs $1,799 / £1,899 / AU$3,295, is a premium price tag for this price bracket, it performs well for the money, giving both the LG C6 and Samsung R95H (Samsung’s flagship RGB TV) a run for their money when I tested them side-by-side: and it’s cheaper than both.
The Bravia 7 II’s closest OLED competitor is the LG C6, which costs $1,799 / £2,099 / AU$3,295 for a 65-inch, meaning it’s the same price in both the US and Australia. While the Bravia 7 II doesn’t quite top the C6 in terms of value for money, as it's missing some features, like four HDMI 2.1 ports, which the C6 has, the Bravia 7 II is good overall value for money in the new RGB world.
Attributes
Notes
Rating
Features
Good gaming features, smart features and performance
4.5/5
Picture quality
Stunning colors, detail and great backlight control overall, but blooming appears when viewed off-center. Its screen is quite reflective too.
4.5/5
Sound quality
Solid sound quality overall when set up correctly, with good detail and accuracy. Sound does feel contained to the screen and can be harsh at times.
4/5
Design
Solid overall build quality, but is on the denser, deeper side in terms of scale.
4.5/5
Smart TV and menus
Google TV has good app access and content recommendations, but banner ads are distracting. Great picture and sound settings.
4/5
Gaming
Great gaming performance with low input-lag times. Solid picture, but some dirty screen effect can happen. Only two HDMI 2.1 ports could be a problem for some gamers.
5/5
Value
Consistent price with other RGB TVs and good performance and features for the money. LG C6 is available for the same price, however.
4/5
Buy it if...You want great overall picture quality
The Bravia 7 II shows what RGB TVs can be capable of, with excellent color reproduction, strong contrast and black tones and better-than-mini-LED backlight control.
You want a gaming RGB TV
With 4K 120Hz, Dolby Vision gaming, VRR and ALLM supported, plus a 10.4ms input lag time, the Bravia 7 II is a strong gaming TV.
You want to see what RGB LED can do
While some RGB TVs I've tested so far haven't quite lived up to the hype, the Bravia 7 II shows what the new tech is capable of at a more 'affordable' price point.
You'll be watching from an angle
While off-center viewing is still decent, backlight blooming and faded contrast can appear when watching the Bravia 7 II from an angle.
You have a very bright room
The Bravia 7 II does have a reflective screen, which can make watching darker scenes difficult in brighter viewing conditions.
You need multiple HDMI 2.1 ports for gaming
The Bravia 7 II only has two HDMI 2.1 ports (one of which is eARC), so if you have multiple consoles and a soundbar, you'll struggle for space.
Sony Bravia 7 II
LG C6
Samsung R95H
Price (65-inch)
$2,599 / £2,299 / AU$3,299
$2,699 / £2,599 / AU$3,995
$2,999 / £3,099 / AU$4,999
Screen type
RGB LED
OLED
Micro RGB
Refresh rate
120Hz
165Hz
165Hz
HDR support
Dolby Vision, HDR10, HLG
Dolby Vision, HDR10, HLG
HDR10+, HDR10, HLG
Smart TV
Google TV
webOS 26
Samsung Vision AI (Tizen)
HDMI ports
4 (2 x HDMI 2.1)
4x HDMI 2.1
4x HDMI 2.1
LG C6
The main OLED rival of the Bravia 7 II, the LG C6 is one of 2026's best TVs, delivering excellent picture quality and performance. While the C6 offers better contrast, colors, and black tones, along with a full suite of gaming features, the Bravia 7 II went toe-to-toe with the C6 when I tested them side-by-side. They're both in a similar price bracket, so it comes down to panel tech preference.
Read our full LG C6 review
Samsung R95H
Samsung's flagship Micro RGB TV is brighter than the Bravia 7 II and has more gaming features, while also delivering the same strong contrast and backlight performance. In my head-to-head test of the two, the Bravia 7 II's colors and detail were stronger overall, however. The Bravia 7 II is also significantly cheaper.
Read our Bravia 7 II vs R95H comparison
Hisense UR8
Hisense's affordable RGB mini-LED, the UR8, delivers good picture quality and features at a very competitive price in the US and Australia. While it delivers similar contrast and backlight control to the Bravia 7 II, the latter delivers stronger colors and detail that give it better picture quality.
Read our Hisense UR8 review
How I tested the Sony Bravia 7 II (Image credit: Future)Before conducting my full testing of the Sony Bravia 7 II, I first did some casual viewing to establish its best picture modes, opting for Professional mode in darker conditions and Cinema mode for brighter conditions and brighter movies.
I next moved on to critical viewing, using reference scenes from 4K Blu-ray to test color, contrast, detail, motion, upscaling and backlight performance. I also used SDR sources such as DVD, broadcast TV, and lower-resolution streaming.
I also used reference scenes from movies such as Speed Racer and The Batman to test the Bravia 7 II's built-in speakers.
Once these subjective tests were complete, I took testing measurements using Portrait Displays Calman Color Calibration software and specialized equipment, including a Murideo Six G 8K Metal test pattern generator and a Klein 10-A colorimeter, which was profiled with a Jeti Spectral 15VA spectroradiometer.
The first measurements I took were of the Bravia 7 II's brightness. Using 1-100% white window patterns, in both HDR and SDR, I focused primarily on the 10% (for peak brightness) and 100% (for full-screen brightness) window patterns, which are featured in the graphs above.
Next, I measured its HDR color gamut coverage, using both the UHDA-P3 and BT.2020 color spaces.
I also measured its grayscale and color accuracy in SDR using Delta-E values (the margin of error between the test pattern signal and what the screen shows) to determine its accuracy, hoping for a score below 3.
Finally, I measured its input lag using a Leo Bodnar 4K HDMI Input Lag Tester, measuring both 4K 60Hz and 1080p 120Hz in milliseconds.
Read our in-depth overview of how we test TVs at TechRadar.
The Terra Kaffe Aero does what it does well. There are four settings: Cold Foam, Hot Froth, Hot Milk, and Matcha. Just spin the dial and press it to make your selection. In just a few minutes, your beverage will be ready to drink. Cleaning it is super easy, just remove the whisk and hand-wash it, the pitcher, and the lid.
I found that all of the settings worked well. I tested each of the milk settings with skim milk which worked great. I also tested them all with a barista-style pistachio milk which came highly recommended in my research, and that also worked really well. I did try a low-calorie almond milk (not specifically made for frothing, and not recommended, but I had it in the house) and that was a fail, though I can't blame the Aero for that.
I made matcha in the Aero several different ways. Though I'm new to matcha, I thought it turned out just as yummy as the $7 matcha latte I got at my local coffee and tea shop.
Just for kicks, I also made a simple salad dressing. I just put together some olive oil and balsamic vinegar and used the Cold Foam setting. The Terra Kaffe Aero emulsified the dressing beautifully.
If you're looking for a dedicated pitcher-style frother, I don't know how you could really do better than the Terra Kaffe Aero.
Terra Kaffe Aero: price and availabilityThe Terra Kaffe Aero milk frother is currently available on Amazon and on Terra Kaffe's own website. The retail price is $149.95 (£110.73 GBP/$210.85 AUD). It comes in two different colorways, Matte Black or Stainless Steel, though both color options refer only to the pitcher itself. The base is matte black on both models.
Terra Kaffe Aero: specsTerra Kaffe Aero specsName
Terra Kaffe Aero
Heated temperature range
140°F–160°F
Dimensions
Carafe: 4.3” (H) x 3.8” (Diameter)
Base: 4.2” (W) x 2.4” (H) x 4.2” (Diameter)
Carafe material
Stainless steel, glass, silicone, and plastic
Settings
Cold Foam, Hot Froth, Hot Milk, Matcha
Volume
6.7 oz (Hot Froth), 13.5 oz (Hot Milk)
Compatible milk types
Dairy, oat, almond, soy, and more (ideally, choose a "Barista" style)
Terra Kaffe Aero: designThe Terra Kaffe Aero is an elegantly designed multi-use milk frother. It's nice-looking and it's something you won't mind having out on your kitchen counter.
The Aero comes with two different whisks, one for milk and one for matcha. Place your whisk of choice in the bottom of the pitcher until it clicks into place. Add your liquid, the minimum and maximum fill lines are clearly printed on the inside. Place the lid on top and the pitcher on the base. Spin the dial on the base until you get to the one you want and then press it. The base is magnetized, which is how it controls the whisk from inside the pitcher. Progress lights show you how your beverage is coming along and a series of beeps let you know it's complete.
(Image credit: Karen Freeman / Future)There is a "hidden" settings menu on the Terra Kaffe Aero. To access it, turn the dial to select the drink setting you wish to adjust. Double click the dial (press twice within .7 seconds) to enter that drink's settings menu. The selected drink will flash and the current setting will be indicated by the number of LED lights. For the Hot Milk and Matcha settings, turn the dial to adjust the temperature. For the Cold Foam and Hot Froth settings, turning the dial will adjust the amount of froth.
I put the Terra Kaffe Aero through its paces, and overall I think it did a great job. The foams held up nicely, even after stirring. I tested each of the settings, Cold Foam, Hot Froth, Hot Milk, and Matcha several times. I tried out both dairy milk and plant milk, and learned some things along the way.
(Image credit: Karen Freeman / Future)Hot froth (dairy milk)I prefer skim milk, so that's what I used. A dairy milk with a bit of fat in it will likely foam up even better, but I was happy with the results I got using skim. Surprisingly, whole milk and cream are not the best milks for frothing, as they have too much fat. Two percent is the ideal frothing milk.
I started with the Hot Froth setting, pouring in skim milk up to the minimum fill line. I thought the foam was just lovely, as you can see in my series of photos below. The foam held up fine to stirring.
Karen Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureCold foam (dairy milk)The Cold Foam setting with skim milk also came out great. It's perfect for iced coffee and other cold beverages.
Karen Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureHot milk (dairy milk)The Hot Milk setting with skim milk turned out fine, though it perhaps produced more foam than I was expecting. If you hate foam and just want the milk hot, you're better off using a different method of heating your milk. If you don't mind a bit of foam, this will work for you.
Karen Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FuturePlant-based milksFirst I tried frothing a random low-calorie almond milk I had in the house. Don't bother with this. After that complete fail, I did some research about the best plant-based milks for frothing, and the one I had just tried was at the bottom of the barrel.
There are a few exceptions, but the easiest way to choose a plant milk that will froth properly is to pick one that says "barista" right on the label. The barista milks are made for frothing and they have enough fat (or gums or other additives) to do so. I chose a barista-labeled pistachio milk without gums but with a good amount of fat in it. I picked this one for its mild, milky flavor, but you could also use other nut milks or soy, oat, or pea milk. As long as it says barista on the label, you're good to go. If you can't find one with the barista labeling, at least look for a full-fat plant milk. Oat and soy are supposed to be particularly good for this.
I used the barista-style plant milk to make both hot froth and cold foam several times. It worked really well, in fact it was just about the same as the dairy milk.
Karen Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureMatchaI had never actually had matcha before, so my son suggested that I try one a coffee/tea shop before reviewing the Terra Kaffe Aero. That way I'd know what it's "supposed" to taste like before making it myself. I did so and was pleasantly surprised to find that I liked it. I don't really like green tea or even black tea all that much, but matcha has more of a mild taste in my opinion.
Matcha is traditionally made with a fair amount of equipment, including a sieve and a bamboo whisk. Enthusiasts will also use a scale to measure out the amount of matcha powder and water with precision.
I made matcha in the Terra Kaffe Aero a bunch of times, using instructions I found online specifically for using a milk frother as opposed to using all of the "proper" equipment. I purchased some ceremonial-grade (which is a higher grade than culinary) matcha powder, which came with a measuring scoop. I used that for measuring the powder rather than a scale. I did not sift the powder through a sieve, though my results might have been better if I had: I usually had a bit of powder at the bottom of my cup.
At any rate, I found two different basic recommended methods in my research: make the matcha in water and then add milk, or make the matcha directly in the milk. I found I preferred the former method, because the latter resulted in a too-milky beverage for my taste. However, both methods worked just fine in the Terra Kaffe Auto.
I will note that I did get a bit of powder left at the bottom of my matcha drinks. So it's not a perfect system, but it's a heck of a lot easier than doing it the traditional way.
Karen Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureAnd moreJust for fun, I decided to make a simple salad dressing. I don't know about you, but I hate salad dressings where the oil and vinegar elements are separated. I prefer my dressings totally emulsified. So, I poured a bit of olive oil and balsamic vinegar into the Aero and started the Cold Foam cycle. Not that I was looking for foam, but I definitely didn't want it hot. The results: a perfectly emulsified and delicious salad dressing. There was a tiny bit of foam but it disappeared when I poured it onto my salad.
Karen Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureAttribute
Notes
Score
Value
It's probably better than a hand-held battery-operated whisk, but it's also far more expensive
4/5
Design
The Aero is aesthetically pleasing and cleverly designed.
4.5/5
Performance
It performed well with both plant and dairy milk, matcha, and more.
4.5/5
Buy it ifYou want a one-touch frother
You don't want to put in the extra effort to froth your milk with a frothing wand or hand frother. Just dial and press.
You want to make matcha without all the accoutrements
No need to buy (and often replace) a bamboo whisk and the other matcha tools. Just scoop your matcha powder into water or milk, select the Matcha setting, and press.
You want something attractive you can leave on the counter
Beautify your coffee station at home with the Terra Kaffe Aero. You won't want to hide it away.
Don't buy it ifIt's out of budget
You're paying for the convenience, functionality, and aesthetics here. While a hand-held battery-operated whisk frother is a bit more hit-or-miss, it's exponentially cheaper.
You're a matcha-making expert
If you already have the whole matcha setup at home and the routine (or should I say ritual) down pat, the Aero version of matcha may not do it for you.
You just don't want another appliance
While this isn't a large machine, it is another appliance you'll need to devote space (and an outlet) to in your kitchen.View Deal
Terra Kaffe Aero: also considerSmeg Mini Milk Frother
This little beauty come in a number of colors. It makes hot froth, cold foam, and hot milk. It does take up less space on the counter than the Terra Kaffe Aero.
Read our Smeg Mini Milk Frother review
Philips Baristina Milk Frother
It's a bit cheaper and smaller than the Terra Kaffe Aero. It makes hot milk, hot foam, and cold foam. Choose from two colors, black or white.
Check out our Philips Baristina Milk Frother reviewView Deal
How I tested the Terra Kaffe AeroI tested all of the settings: Hot Froth, Hot Milk, Cold Foam, and Matcha multiple times. I tested skim dairy milk and two different plant-based milks. I made matcha in water and tried it straight, added frothed milk to it, and made the matcha directly in milk. I tested it both hot and iced. I also made a simple salad dressing on the Cold Foam setting.
First reviewed August 2026