Error message

  • Deprecated function: Methods with the same name as their class will not be constructors in a future version of PHP; views_display has a deprecated constructor in require_once() (line 3080 of /home/ewg56ffgqu3p/public_html/includes/bootstrap.inc).
  • Deprecated function: Methods with the same name as their class will not be constructors in a future version of PHP; views_many_to_one_helper has a deprecated constructor in require_once() (line 113 of /home/ewg56ffgqu3p/public_html/modules/ctools/ctools.module).
  • Notice: Undefined offset: 5 in user_node_load() (line 3604 of /home/ewg56ffgqu3p/public_html/modules/user/user.module).
  • Notice: Trying to get property 'name' of non-object in user_node_load() (line 3604 of /home/ewg56ffgqu3p/public_html/modules/user/user.module).
  • Notice: Undefined offset: 5 in user_node_load() (line 3605 of /home/ewg56ffgqu3p/public_html/modules/user/user.module).
  • Notice: Trying to get property 'picture' of non-object in user_node_load() (line 3605 of /home/ewg56ffgqu3p/public_html/modules/user/user.module).
  • Notice: Undefined offset: 5 in user_node_load() (line 3606 of /home/ewg56ffgqu3p/public_html/modules/user/user.module).
  • Notice: Trying to get property 'data' of non-object in user_node_load() (line 3606 of /home/ewg56ffgqu3p/public_html/modules/user/user.module).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6401 of /home/ewg56ffgqu3p/public_html/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6401 of /home/ewg56ffgqu3p/public_html/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6401 of /home/ewg56ffgqu3p/public_html/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6401 of /home/ewg56ffgqu3p/public_html/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6401 of /home/ewg56ffgqu3p/public_html/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6401 of /home/ewg56ffgqu3p/public_html/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6401 of /home/ewg56ffgqu3p/public_html/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6401 of /home/ewg56ffgqu3p/public_html/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6401 of /home/ewg56ffgqu3p/public_html/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6401 of /home/ewg56ffgqu3p/public_html/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6401 of /home/ewg56ffgqu3p/public_html/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6401 of /home/ewg56ffgqu3p/public_html/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6401 of /home/ewg56ffgqu3p/public_html/includes/common.inc).
  • Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in drupal_get_feeds() (line 394 of /home/ewg56ffgqu3p/public_html/includes/common.inc).
  • Deprecated function: The each() function is deprecated. This message will be suppressed on further calls in menu_set_active_trail() (line 2386 of /home/ewg56ffgqu3p/public_html/includes/menu.inc).

News

Belgian Grand Prix: How to Watch the F1 Race Today - Sunday, July 19, 2026 - 04:30
Can George Russell gain further ground in the title race in Stavelot?
They Trained Robots on 100 Million Videos. Here's What Happened video - Sunday, July 19, 2026 - 05:00
Rhoda AI is betting the future of robotics starts with internet video, not lab data. We visited the company's headquarters to see how its Direct Video Action model learns physics from hundreds of millions of clips.
Argentina vs. Spain: Stream FIFA World Cup 2026 Final Live for Free - Sunday, July 19, 2026 - 05:00
Lionel Messi and Argentina face off against Lamine Yamal and Spain for soccer's biggest prize.
This iPhone Trick Can Eliminate Spam Calls for Good - Sunday, July 19, 2026 - 05:00
You don't have to put up with spam calls any longer.
ThinkPad X1 Carbon Gen 14 Review: Lenovo's Flagship Ultraportable Is Now More Repairable - Sunday, July 19, 2026 - 05:01
The new Space Frame design should extend the life of the laptop, but doesn't alter the familiar X1 Carbon look and feel.
The 4-Pile Closet Cleanout Method That Actually Gets the Job Done - Sunday, July 19, 2026 - 15:00
Four clearly defined piles turn an overwhelming closet cleanout into a decision-making process anyone can get through in an afternoon.
Wildfire Smoke Is Affecting Millions Right Now. Here's What Experts Say to Do - Sunday, July 19, 2026 - 15:30
Air quality experts from Columbia and UMass Amherst explain what wildfire smoke actually does to your body and the steps worth taking right now.
Today's NYT Strands Hints, Answers and Help for July 20 #869 - Sunday, July 19, 2026 - 16:00
Here are hints and answers for the NYT Strands puzzle for July 20 No. 869.
Today's Wordle Hints, Answer and Help for July 20, #1857 - Sunday, July 19, 2026 - 16:01
Here are hints and the answer for today's Wordle for July 20, No. 1,857.
Today's NYT Connections Hints, Answers and Help for July 20, #1135 - Sunday, July 19, 2026 - 16:01
Here are some hints and the answers for the NYT Connections puzzle for July 20, No. 1,135.
How to Stop Google Maps From Displaying Your Home to Strangers - Sunday, July 19, 2026 - 17:30
A straightforward privacy request to Google can remove your home from Street View entirely. Here's the step-by-step process.
Tubi Has Better Horror Picks Than Netflix. Here's What to Watch - Sunday, July 19, 2026 - 17:55
Free, ad-supported and surprisingly well-stocked: Tubi's horror library is worth taking seriously.
I tested the Eufy Omni S2 robotic vacuum — and it's expensive and impressive in equal measure - Sunday, July 19, 2026 - 08:00
Eufy Omni S2: two-minute review

Eufy’s latest flagship robotic vacuum and mop, the Omni S2 is a hugely impressive appliance that combines excellent mopping with brilliant vacuuming to create one of the best home cleaning systems you can buy. It also self-cleans so thoroughly that, after several weeks of daily use, the dust bin, rollers and mop still looked like new.

The Omni S2 uses warm water to clean its spinning mop as it goes, while also scraping away dirt and using cyclone technology to whisk dust more efficiently into the onboard bin, instead of leaving it to clog up the filters. Water is ozonated in the base station to further improve cleaning performance, and there’s an integrated detergent system too.

The robot itself can even be fitted with a fragrance diffuser, which makes your room smell nice after every clean; three different scents are included in the box and, along with the detergent, and can be replenished from Eufy’s website.

(Image credit: Future)

It navigates well, mostly avoiding contact with walls and doors while driving very closely to all manner of obstacles without pushing them around, driving over them or ingesting them. The S2 is good at climbing over raised carpets, rugs and door thresholds — something the Omni S1 struggled with – and the app does a great job of quickly mapping your home, with a simple editing system for labeling every room correctly, and even adding virtual furniture.

I was impressed by how quiet the Omni S2 is, even with its powerful Cyclone mode engaged, and how the base station doesn’t sound like an Airbus when emptying the robot. It’s a very expensive product, but one that looks good and performs extremely well.

Eufy Omni S2: price and availability
  • List price: $1,599 / £1,599 / AU$2,299
  • Launched: March 2026

Just two years on from the launch of the Omni S1 Pro, Eufy now has the Omni S2. This is now the company’s flagship robotic vacuum and mop, with a price, performance and feature set to match.

It carries a recommended retail price of $1,599 / £1,599 / AU$2,299, making it £300 more expensive than the S1 pro, which remains on sale. That’s an awful lot of money for a vacuum cleaner — especially when

Eufy’s own range of robovacs starts under the £150 mark, and one of my favourites — the X10 Pro Omni vacuum and mop — is a comparative snip at £599.

What does the extra £1,000 get you with the S2? More power, of course, with greater suction thanks to Eufy’s new AeroTurbo 2.0 tech, improved intelligence, greater threshold clearance, a more powerful mop, better computer vision, a self-cleaning mop, electrolysed water, integrated detergent and even a built-in fragrance system with three included scents to pick from.

An additional cost to bear in mind is Eufy’s replacement parts kit. The brushes, bags, mops and rollers of all vacuum cleaners need replacing, so ongoing costs aren’t unusual, but Eufy likes to charge plenty. A complete kit for the S2 is £79.99. Premium parts for a premium robovac, I suppose. More welcome is Eufy’s new two-year warranty, which applies to all robot vacuums launched in 2026 and doubles the previous coverage.

  • Value score: 3.5/5
Eufy Omni S2: specifications

Specification

Detail

Max suction

30,000 Pa

Robot diameter

350 mm

Robot height

3.4 in / 85 mm

Dock dimensions

15.0 x 17.7 x 26.4 in / 380 x 450 x 670 mm

Dust bin volume (base)

2.5 litres

Water tank volume (base)

3L (clean) 2L (dirty)

Base type

Charge, auto-empty, hot water mop wash, hot air mop dry, clean water refill, self-clean

Max threshold clearance

Up to 1.7 in / 42mm

Mop type

Self-cleaner roller

Mop pad lifting

1.10 in / 28 mm

Max runtime

180 minutes

Eufy Omni S2: design
  • Docking station with charger, dust bag, water tanks and mop drying
  • Rotating, self-cleaning mop
  • Integrated detergent and fragrance supply

The S2 has a similar but more refined look than its S1 predecessor. The subtle bronze tint to sections of the robot and docking station give it a premium aesthetic that blends nicely with the futuristic lighting in both the clean water tank of the dock, and the robot’s onboard dust bin.

Taller than many docking stations, but significantly more elegant than most, the Omni S2’s appearance helps to justify its lofty price tag — and that’s further aided by the display and touch controls on top of the dock. These are handily located to press without stooping down to the robot itself, while the screen is useful for checking on the robot’s status and spotting error messages.

FutureFutureFutureFuture

Short of making you a cup of tea while the robot cleans up, the S2’s docking station does absolutely everything. It charges the robot, empties its dust bin, replenishes its water supply (and even ozonates fresh water before it’s fed to the mop), cleans the mop with water heated to 70 degrees centigrade, dries it with hot air, refills the detergent tank, and has enough dust bin capacity for up to a claimed 68 days between bag replacements.

The robot itself is almost circular, with a central roller that’s claimed to be 100 percent tangle free, a pair of spinning side brushes, and a roller mop that self-cleans, slides outwards by 1.5cm to reach into corners and even an onboard fragrance supply to make your home smell nice. The S2 includes three different fragrances in the box, but these are a bespoke design so replacements can only be bought from Eufy itself. The same goes for the detergent bottle too, while thankfully the 2.5-litre dust bags are generic.

FutureFutureFutureFuture

I like how the Omni S2 looks. Its design is more sophisticated than that of the S1, and I can imagine it neatly complementing the lavish houses of its deep-pocketed buyers. And while tall, at 670mm (26.4 inches), the docking station is relatively slim.

The robot is also relatively short, at 85mm. This compares favorably against taller, bulkier robovacs like the Dyson Spot+Scrub AI, which towers over the Eufy at 110mm and is less capable of cleaning beneath low furniture.

A welcome design upgrade for the Eufy Omni S2 is its ability to now clear door thresholds up to 4.2cm tall, up from just 2cm for the Omni S1. I was often left frustrated by that robot’s inability to drive up from exposed floorboards to a carpeted neighboring room, but have had no such issues with the S2.

  • Design score: 5/5
Eufy Omni S2: performance
  • Impressive vacuuming
  • Excellent mopping
  • Strong improvement over the S1

From the setup process and mapping, to vacuuming, mopping, navigation and self-cleaning, the Omni S2 is a triumph. You might say it should well be for the massive price tag, but even in 2026 it’s rare for such a complex new product to impress so universally. Where the Eufy Omni S1 struggled in some key areas — navigation, threshold clearance and sometimes even vacuuming — the S2’s performance is close to perfect.

Yes, it’s an ultra-premium product with a price to match. This is right up there with your Leica camera, Rimowa suitcase and five-figure turntable. I imagine the typical Omni S2 owner is the sort of person who wouldn't blink at splashing out on a pair of Apple AirPods Max 2 at the airport because they forgot their first-gens at home. They’d probably deal with a flight delay by picking up a new Swiss watch, too.

(Image credit: Future)

And that’s absolutely fine. Whatever the product, there’s always something that happens to sell the most expensive one, and for robotic vacuums that just so happens to be Eufy with the Omni S2. That doesn’t inherently count against it, because there are always customers happy to pay a premium for the one they like, or not really care about the cost because the S2’s spec sheet, design and feature set already put it at the top of the market.

What matters is how it performs in the real world, and how that compares to user expectations. Naturally, mine were at an all-time high and the S2 mostly delivered. The vacuuming performance is noticeably better than with the S1, and after a month of testing I still smile at the neat stripes vacuumed into my lounge carpet — and at how pleasant the S2’s fragrance system makes every room smell.

(Image credit: Future)

Eufy has improved navigation since the S1, and now the S2 is smart enough to not vacuum over the tasselled ends of a rug. It also automatically detects rug and carpet thickness, then raises itself by up to 50mm (1.97 inches) to prevent getting stuck in deep-pile fabric. In my testing, the S2 flagged a potentially tricky bit of carpet — which was actually an integrated but deeply contoured door mat — so I could tell it to ignore the concern or permanently avoid it.

Navigation and map creation is generally good. The robot only once got stuck and called for help, and I was impressed by how quickly the S2 mapped the ground floor of my home and did a decent job of detecting room boundaries. I used the app to fine-tune these, and was pleased to see how the S2 had added 3D cupboards, sofas, tables, chairs and other bits of furniture to the map. This isn’t strictly necessary, but it’s nice to see how the S2 correctly understands its environment.

(Image credit: Future)

Eufy claims a maximum suction of 30,000Pa, which is a huge upgrade over the 8,000Pa of the Omni S1 and other Eufy robots like the X10. There are four suction modes — Quiet, Standard, Turbo and Max — three options of cleaning intensity, three water levels, and the option of performing each cleaning task once or twice. As with the S1, the S2 returns to base whenever it needs to empty its bin, clean the mop, replenish its water supply or charge the battery. A mode called AI Automation promises to adjust cleaning strategy based on room type, floor material and cleaning frequency.

The Omni S2 deeply impressed during the first few weeks of general use, keeping hard floors and carpets clean — even after a cockapoo puppy joined our household, and his insistence on helping with garden projects brought a lot of dirt into the house. It was a joy, quite frankly, to have the S2 on hand, ready to clean up after every chaotic evening of dog zoomies.

(Image credit: Future)

I also loved how the S2 kept itself clean. Not only is the mop cleaned and dried with every use, but the cyclone-style dust collection ensures the onboard bin is practically spotless after each empty, and the filters don’t get clogged up. The rollers also looked like new after many hours of use, thanks to an anti-tangle design that actually works.

The mopping system works as well as the S1’s — evidenced by the absolutely filthy water collected in the waste tank of the docking station. I’d recommend owners empty this frequently, because if you wait a couple of weeks or so until it’s full, pouring it away is a seriously stinky process.

(Image credit: Future)

During TechRadar’s standardized robovac tests the Omni S2 continued to perform very well. These tests include two rounds of vacuuming on both carpets and hard floors, plus an obstacle avoidance test and a mopping test.

Pleasingly, the Omni S2’s vacuum performance is better than its predecessor, the two-year-old Omni S1. Vacuuming up oats from carpet was particularly impressive, with not a single piece being missed (except where I set the target zone in slightly the wrong place).

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

During these tests I found the quickest, least powerful mode, called Quiet, was indeed very quiet (just 55 decibels on carpet), but the S2 performs best when suction is upped to the Standard or Turbo modes, cleaning intensity is increased from Fast to Standard, and the S2 is asked to perform two passes of the target zone or room, instead of one.

A crumb mix made of flour and crushed biscuit was completely lifted from a wooden kitchen floor using the S2’s standard intensity and suction settings, while on carpet I found Turbo or Cyclone (the most powerful suction mode) was best.

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

With that enabled, plus the intensity increased to Deep and the number of passes upped to two, the robot did a superb job.

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

The oat test is usually tougher, because robovacs tend to flick larger debris across hard floors with their spinning side brushes. The Omni S2 fell foul of this too, but as ever my advice is to set the robot to vacuum the entire room twice, instead of aiming for a target and kicking it everywhere.

With the right settings applied, the S2 picked up every single piece – and passed the same test with flying colors on carpet too, where flicking debris is less of an issue.

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

I tested the mopping system with a dried smear of ketchup, which was promptly removed from the wooden floor. The cylindrical mop spins and pivots outwards to reach into the edges of the room, while the robot scrapes it clean and washes it while driving. The mop is then dried with hot air at the base station, which takes several hours but is very quiet.

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

Meanwhile, the S2’s obstacle avoidance saw it drive neatly around a shoe, a sock and a USB cable strewn across the floor. I was impressed by how close it got to each, with moving or ingesting anything.

Overall, the Eufy Omni S2 performed brilliantly. I would recommend using Standard intensity and Standard suction with two passes most of the time, then up the suction to Turbo or Cyclone for a deeper clean. The latter hitting just 70 decibels was also impressive — for context, my Dyson V10 stick vacuum is 90 dB at medium power.

FutureFutureFuture

I only encountered one serious problem with the S2, and unfortunately it led to a replacement unit being provided by Eufy. The first S2 performed perfectly for a month, but developed a fault where the robot and docking station lost their connection. Several reboots and lots of advice from customer services failed to find a solution, so a second S2 was delivered and the original went back to Eufy for an inspection.

Naturally, this is disappointing for such an expensive product. But I was impressed by Eufy’s customer service department — which I approached as a customer and not a journalist — and how quickly the problem was resolved. The second unit performed perfectly throughout the rest of my test.

  • Performance score: 4.5/5
Eufy Omni S2: app
  • Easy to use
  • Lots of configurability
  • Also handles Eufy security products
  • Option to charge at night — great if you have an EV tariff

The Eufy app gets better with every revision, and today it’s one of the best robovac apps I’ve ever used. Everything is logically laid out, with just the right amount of adjustability on offer to keep both newcomers and power users happy. The app is quick, responsive and presents everything in a way that’s easy to understand.

I especially like how it adds virtual furniture to your floor maps, which makes it easier to understand the layout and visualize where the robot is. Editing floor plans also works well, with simple tools for splitting, combining and renaming rooms after the robot has created an initial (but not always accurate) map of your home. Multiple floormaps can also be created, making it easy to save a second map for your bedrooms upstairs, for example.

FutureFuture

Another feature I like is how pre-defined tasks can be created. I have one called “After dinner”, which tells the S2 to vacuum and mop my kitchen a certain way. A single tap of this from the Eufy app home screen, and the robot gets to work.

Since getting a puppy I’ve come to value Eufy’s child lock function, which disables the buttons on top of the robot – handy for both inquisitive children and dogs alike. I also like the off-peak charging function, where you can configure the S2 to only charge its battery at certain times of day. Since I have an electric car and an EV tariff, I’ve set the robovac to only charge at night, when my electricity is much cheaper.

  • App score: 4.5/5
Should you buy the Eufy Omni S2?Eufy Omni S2 score card

Attribute

Notes

Score

Value

The Eufy Omni S2 really is very expensive indeed. It isn’t the most expensive robovac of all time, but it’s right up there. And while its lofty price makes alternatives look like excellent value, the S2 doesn’t necessarily feel like a rip-off. It’s a high-quality appliance that performs brilliantly and looks good too.

3.5/5

Design

Eufy knocked it out of the park with the S2’s design. It’s aesthetically pleasing, has a smaller footprint than some rivals, and the robot slips beneath most furniture. It also drives over raised rugs and thresholds better than before and keeps itself incredibly clean. All I wish is for a way to prevent the waste water tank from getting quite so pungent — frequent empties are a must!

5/5

Performance

The Omni S2 is much better at vacuuming than the S1 was, while being just as good at mopping and navigation. All of these attributes are now top-notch, while the onboard fragrance system is a lovely extra touch and the improved ability to clamber over raised thresholds is very welcome

4.5/5

App

Eufy’s app is great. Its robovac section is simpler to navigate than the slightly cluttered security section, with an excellent mapping system, handy shortcuts for frequently used cleaning chores, and some little features that are massively useful — like off-peak charging and the child/pet lock.

5/5

Buy it if

You want the best, regardless of price

Yes, it’s very expensive. But if you want the best this might well be it. Everything about the Omni S2 contributes to a premium ownership experience, from the app and the hardware, to the fragrance, cleaning performance and self-cleaning.

Mopping and vacuuming are equally important

Many robovacs are better at one task than the other — Eufy’s own Omni S1 mopped far better than it vacuumed — but with the S2 excellent mopping is paired with powerful vacuuming.

Self-cleaning is a must

The S2’s self-cleaning abilities are the best I’ve seen. Even after weeks of use in a busy home with a puppy, the robot’s dust bin, brushes, rollers and mop are like new. My only advice is to empty the waste water tank frequently, since older dirty water really does stink when poured away.

Don't buy it if

You're on a budget

There are a lot of very good robovacs that cost significantly less than the Omni S2. They don’t perform quite as well, but if you value vacuuming oliver mopping, for example, your money could be better spent (and saved!) elsewhere. If you have a lot of stairs, consider spending the same on a robovac and a conventional stick vacuum instead of splurging it all on the S2.

You don't want ongoing costs

This is a factor for all robovacs, since they mostly use dust bags and their brushes and rollers eventually need replacing. But the S2’s running costs are greater than most because Eufy sells its own mopping detergent in a specially-shaped bottle, and you’ll have to buy fragrance refills from Eufy too. Eufy’s official replacement parts kit is £80, three fragrance refills are £25 and the detergent is £20.

How I tested the Eufy Omni S2

I lived with the Eufy Omni S2 for several weeks before writing this review. During that time it was used exclusively to vacuum the carpets and mop the floors of my house. I tested its cleaning abilities, tried some of the included fragrance diffusers, and noted how its self-cleaning systems fared after many hours of use.

I then carried out a number of specific tests to understand how well it cleans different types of debris from carpet and hard floors, how effective its mopping system is, how good it is at avoiding obstacles, and how loud it is.

First reviewed July 2026

Which DJI camera should I buy? Here's our essential guide to your options, including the results of our in-depth testing - Sunday, July 19, 2026 - 09:00

Historically, the DJI brand has been all about drones. It remains an undisputed leader in that category, but in recent years its also solidified a name in compact cameras for content capture.

The two key ranges are the Osmo Action and the Osmo Pocket. The Action is DJI's classic action camera, with a rugged build designed to happily capture high-quality content no matter how much you bump, drop, submerge, freeze, or generally throw it about. The Pocket is a compact, image-stabilizing gimbal camera designed for vloggers. It can easily switch between vertical and horizontal shooting, and is set up to make selfie capture easy. There are also a couple of outliers: the Osmo 360 360-degree camera and the tiny, wearable Osmo Nano.

Most of these cams are leaders in their respective categories — this brand crops up in numerous best-of lists, including the best action camera, best 360 camera and best vlogging camera. If you're thinking of buying one but aren't quite sure of your options, or which to pick, you've come to the right place.

Our camera review team has tested every single one of the DJI cameras currently available to buy, and below you'll find a quick guide to the different models, plus summaries of our main testing takeaways, and links to read the full review for each (hit the More details button).

Note: You will only see cards for the products available to buy in your region. Due to FCC fun and games, not all new models are available in the US.

DJI Osmo Action

Osmo Actions are traditional action cameras — DJI's answer to a GoPro. They sport an all-in-one design, with all the hallmarks you'd expect from a good action cam: a robust, waterproof, compact design, front and back screens, mics, and features like time-lapse, slow-mo and (on newer models) subject tracking.

The current generation is the Osmo Action 6, but the Osmo Action 5 Pro (there's no not-Pro version, so treat this like a naming quirk) and the Osmo Action 4 are widely available too, including direct from DJI. It's also quite easy to get hold of an Osmo Action 3.

The specs and features differ slightly from model to model — you can see our review of each one by hitting the 'More details' button, and this DJI Osmo Action comparison page is useful for highlighting the differences.

You'll struggle to find either now, but the two previous models are the Action 2 and the original Osmo Action. The Action 2 was a particularly interesting swerve from DJI — it looked completely different from the rest of the range, with a modular build. For the third gen, DJI pivoted straight back to a more traditional all-in-one design, and that's what it's stuck with ever since.

DJI Osmo Action 6

Read our full review

Pros
  • Larger 1/1.1-inch sensor
  • Great image quality
  • Impressive battery life
  • Expanding modular system
Cons
  • Aggressive in-camera processing
  • Fiddly accessory attachment point
DJI Osmo Action 5 Pro

Read our full review

Pros
  • Good dynamic range and detail
  • Dual OLED screens
  • Waterproof to 20m without case
  • Long battery life
  • Works superbly with DJI Mic 2
Cons
  • No 5.3K+ video option
  • SuperNight mode is merely okay
DJI Action 4

Read our full review

Pros
  • Much improved image quality
  • Wider FOV than the main competition
  • Excellent stabilization
  • Incredibly convenient mounting
Cons
  • Minimum 0.4m focus distance
  • Middling battery life
  • Old-school microSD card limits potential
DJI Osmo Action 3

Read our full review

Pros
  • Incredibly convenient mounting
  • Best-in-class diving depths
  • Wider FOV than the main competition
  • Excellent battery performance
  • Handy front touchscreen
Cons
  • Poor lowlight performance
  • 360-degree horizon leveling caps at 2.7K
  • Worse video quality than the best GoPros
  • Photography modes aren’t competitive
DJI Action 2

Pros
  • Premium, smart modular design
  • Smaller than rival action cams
  • Class-leading horizon leveling
  • Wider FOV than Hero 10 Black
  • Punchy AMOLED display
Cons
  • Overheating limits clip length
  • Muted default color profile
  • Uninspiring low-light performance
  • Extra modules aren’t waterproof
  • No external audio source recording
DJI Osmo Pocket

Osmo pockets are compact, gimbal-stabilized 4K cameras designed specifically for vlogging. The current model is the DJI Osmo Pocket 4 — although it's not yet sold in the US. The Osmo Pocket 3 is still widely available to buy, as (to a certain extent) is the DJI Pocket 2.

Both the 3 and 4 boast a compact design, excellent video stabilization, crisp 4K video, the ability to swap easily between vertical and horizontal shooting. The 4th gen version polishes things up a bit, improving the slow-mo mode, bumping up the video specs, tightening up the subject tracking and making it available in more modes, boosting battery life and increasing the internal memory. It also adds a magnetic gimbal arm, onto which accessories such as fill lights can be snapped.

If you're not quite sure about the Pocket range, another option for content creators is to stick with your phone for recording, but add in a DJI Osmo Mobile — a smartphone gimbal with advanced tracking capabilities.

DJI Osmo Pocket 4

Read our full review

Pros
  • Very sticky subject tracking
  • More headline features available in more shooting modes
  • Built-in storage added
  • Attractive color profiles
Cons
  • Feels like a 'playing it safe' upgrade
  • Just 4K video, just a single camera
  • Can get warm when using the power-hungry features
DJI OSMO Pocket 3

Read our full review

Pros
  • 1-inch sensor
  • Bigger and better screen
  • Portrait recording option
  • Slow-mo mode now up to 4k at 120fps
Cons
  • Usability of touchscreen needs improvement
  • Can get hot when filming
  • No built-in storage
DJI Pocket 2

Read our full review

Pros
  • The most pocketable, stable camera around
  • Creator Combo perfect for vloggers
  • Very useful tracking feature
Cons
  • Poor low light performance
  • Struggles with high-contrast scenes
  • Can get hot while filming 4K
Outliers

Finally, there are a couple of (as-yet) standalone DJI cameras. The DJI Osmo Nano is a shrunk-down and stripped back version of its Action series. Small enough to be mounted on a pendant or hat, it's designed for on-the-go content capture. The magnetic, modular design makes it nice and versatile.

The Osmo 360 is a DJI's first 360-degree camera, and we thought it was "undeniably extremely compelling" first effort. We were impressed with the pricing too, which is very competitive within that particular market.

DJI Osmo Nano

Read our full review

Pros
  • Superb value
  • Onboard storage (64GB or 128GB)
  • Package is lighter than Insta360 Go Ultra
  • Good dynamic range and deep colors
Cons
  • Dock is only splashproof
  • Non-removable batteries
  • Interface is less intuitive than rivals
DJI Osmo 360

Read our full review

Pros
  • Affordable price for premium performance
  • Works with DJI microphones
  • Built-in storage
Cons
  • Non-replaceable lenses
  • Not suitable for underwater video at launch
Don’t let unreliable free VPNs ruin your World Cup Final watch party – here’s the cheapest way to watch securely - Sunday, July 19, 2026 - 09:00

It’s finally here – at 3pm ET / 8pm BST, Spain and Argentina step onto the pitch at the MetLife Stadium in New Jersey for the 2026 World Cup Final.

Arguably, today’s match is the sporting event of the year – and as such, fans will be tuning in from every corner of the globe.

If you’re hoping to catch the match but want to keep your connection secure, or want to access streams from your home region while travelling abroad, a VPN is a great way to establish a fast, safe connection to your streaming service of choice.

It can be tempting to pick up one of the best free VPNs for your World Cup watch party, but these aren’t always as reliable as their paid counterparts. PrivadoVPN is one of the more cost effective options on the market for a reliable, fast, and secure paid VPN, offering real upgrades over its free counterpart.

PrivadoVPN: from $1.11/month or $10.99 for one month

PrivadoVPN is our pick for the best value VPN for the 2026 World Cup Final. In our testing, it offered fantastic top speeds of up to 2,334Mbps, offers a variety of server locations, and comes with useful features like a powerful ad-blocker and content controls. What’s more, PrivadoVPN is one of the cheapest paid VPNs on the market when you opt for a long-term plan, with an equivalent price of as little as $1.11 per month. Its pay-monthly rate of $10.99 per month is pretty competitive, too. View Deal

Free VPNs come with compromises

Stepping up to PrivadoVPN's paid tier removes restrictive data caps (Image credit: PrivadoVPN)

Free VPNs include restrictions that aren’t present on their paid counterparts. These might not be an issue for everyday browsing, but can be a real problem for video streaming.

Issues with free VPNs can include restrictive data usage limits, limited server locations or connection to a random location, and slower network speeds.

For crucial sports events like the World Cup Final, the last thing you want to deal with is buffering, a blurry, low-resolution picture, or a connection to the wrong country.

Luckily, upgrading to a paid VPN doesn’t have to be expensive. For a competitive price, PrivadoVPN’s paid edition does away with its free version’s 10GB data cap and ups its single connection limit to 10 devices at once.

Other options

If PrivadoVPN isn’t for you, there are other options on the market. TechRadar’s VPN Editor Rob Dunne has made his pick for the World Cup Final with NordVPN, which tops our list of the best VPNs overall.

If you’re looking to save money, our pick for the best cheap VPN is Surfshark VPN, which offers a comprehensive feature set but isn’t quite as cheap as Privado VPN.

Think you're the ultimate Tom Holland Spider-Man fan? Put your knowledge to the test against our Marvel mastermind in this tricky MCU quiz - Sunday, July 19, 2026 - 09:00

2026 is a big year for Tom Holland. The popular actor has already appeared in one of this year's most anticipated new movies in Christopher Nolan's The Odyssey, and he'll soon be wearing his iconic superhero spandex once more when Spider-Man: Brand New Day releases later this month.

Starring in two of 2026's biggest films would be worth cheering about in itself. However, this year also sees Holland celebrate the 10th anniversary of his debut in the Marvel Cinematic Universe (MCU), which happened in 2016's Captain America: Civil War. Hey, I wasn't lying when I said 2026 was a big year for the A-lister.

With six MCU apperances already under his belt, Holland is now a certifiable stalwart of Marvel's cinematic juggernaut — so much so, in fact, that I believe some of you consider yourselves to be the biggest Tom Holland Spider-Man superfan.

Well, now is the time to put your superhero skills to the test. Below, I've rounded up 35 questions — some are way tougher than others — about Holland's wallcrawling career so far, including a query or five about Spider-Man 4.

So, what are you waiting for? Load up your web shooters and swing on over to the forthcoming quiz, and see if you have what it takes to be crowned the ultimate Holland Spider-Fan. Good luck!

For more on the forthcoming Marvel Phase 6 film, find out everything we know so far about Spider-Man: Brand New Day. Keep your eyes fixed on TechRadar later in July, too, for even more coverage of the hotly-anticipated movie.

Spider-Man: Brand New Day thwips its way into theaters on July 29 (UK) and July 31 (everywhere else).

What is the release date for Avatar Aang: The Last Airbender on Paramount+? - Sunday, July 19, 2026 - 09:00

2026 is giving us Aang squared. Not only did Netflix give us Avatar: The Last Airbender season 2 in late June, but now Paramount+ returns to its popular animated franchise with Avatar Aang: The Last Airbender.

The title is only slightly changed, but the difference between the two stories is huge. In the latter, it's been 13 years since the gang defeated Lord Ozai and the Fire Nation, and attentions have turned to a new airbender called Tagah.

Together, Aang and Tagah embark on a global quest to find the relic before a group called The Denied. But, will they succeed — and when does Avatar Aang: The Last Airbender arrive on Paramount+?

What time can I watch Avatar Aang: The Last Airbender on Paramount+?

If you avoided seeing Avatar Aang: The Last Airbender when it was leaked in full earlier this year, you'll be able to catch it on one of the world's best streaming services on July 25, 2026.

Like the streamer's other releases, such as The Madison and Landman, we can expect this Paramount movie to arrive at 12am PT. Here's when it will be released in other nations globally:

  • US – 12am PT / 3am ET
  • Canada – 12am PT / 3am ET
  • UK – 8am BST
  • India – 1:30pm IST
  • Singapore – 4pm SGT
  • Australia – 7pm AEDT
  • New Zealand – 9pm NZDT
When do new episodes of Avatar Aang: The Last Airbender come out?

(Image credit: Paramount+)

Unlike the original series, Avatar Aang: The Last Airbender is actually a feature-length film. Clocking in with a runtime of 99 minutes, that's roughly the equivalent of four episodes of the original series.

For those who want to watch it on the big screen, it's also getting a theatrical release. However, only select theaters in New York and Los Angeles will be showing it between July 24 and 30. You'll need to be quick, then, to secure your tickets to experience it during its limited run in cinemas.

I'm worried about the future of MacBooks — and these M7 chip rumors are to blame - Sunday, July 19, 2026 - 10:00

Apple's MacBooks seemingly have some big changes on the horizon. One of the biggest is the rumored MacBook Ultra packing that OLED screen, and this is something to be excited about, don't get me wrong. Well, worries about the price aside, and wider issues around Mac pricing overall, but there's something I'm more concerned about now.

Namely the direction in which Apple is heading with its M-series silicon, following the latest rumor dump from prolific leaker Mark Gurman. In last weekend's Power On newsletter for Bloomberg, Gurman dropped a whole lot of fresh info about Apple's CPU roadmap and the incoming M6, M7 and M8 chips.

The leaker tells us — and bear in mind, this is all just rumors, but eye-opening speculation nonetheless — that Apple is doing something very different with the next range of M silicon. The M6 will consist of just a vanilla chip, with no more powerful variants, which isn't something Apple has ever done before — there's always been a Pro and Max version (if not an Ultra, too).

This is because Apple apparently wants to usher in the M7 series more swiftly, with the M6 debuting late this year and the M7 following in the first half of 2027, just six months (or so) later. The M7 will have a full complement of Pro, Max and Ultra chips, the former two following at the end of 2027, with the Ultra in 2028. Gurman believes this is Apple's current plan and the reason for rushing to get to the M7 is AI.

Cue multiple groans, no doubt. Gurman theorizes: "The reason for this break with tradition: AI. Apple had been planning major neural-processing upgrades for the M7 family and ultimately decided those improvements were important enough to justify accelerating the next generation rather than completing the M6 lineup."

We're further told that beyond this, Apple is "already developing M8 chips with even greater AI capabilities" to land in 2028.

Gurman concludes: "The takeaway is that AI is no longer just another feature Apple's chips need to support. It is now shaping how those products are designed and when they are shipped."

A wise path to follow?

(Image credit: Lance Ulanoff / Future)

So, what am I worried about here exactly? Obviously there's a strong suggestion that AI is taking much more of a center stage role with Mac chips, and given what's currently going on with MacBooks, I've got to wonder about the wisdom of this — and how it might affect Apple's PC sales.

Currently Mac sales are strong and considerably buoyed by the launch of the MacBook Neo in March 2026, a budget laptop that has undoubtedly flown off the shelves. However, Apple's recent price hikes have poured cold water on those sales prospects to an extent, even hitting the MacBook Neo, which went up by $100 in the US (£100 in the UK, and AU$150 in Australia).

Granted, while it's odd for a device to get a price rise like this so soon after launch, given the demand around the Neo, it's not going to be sidelined with this increase (although the upper-tier model with 512GB storage now looks shakier and out of budget territory, frankly). The harder pill to swallow is the harsher MacBook Air price hikes, and as we pointed out a few weeks back, some wallet-friendly Windows 11 laptops now look a lot more tempting after Apple's price increases.

Looking on Reddit, it's not hard to find a lot of unhappiness about the MacBook price hikes. There's considerable angst from some people who were thinking of pulling the trigger on a new Apple laptop, and then watched those price increases swoop in, and are now feeling the opposite of buyer's remorse (holdout's regret?). Some of those folks are acting with their wallets, closing them and vowing to wait for a better buying opportunity now that they've missed the boat, as it were.

That could be a long wait, though. Of late, we're hearing a lot of gloomy news about the RAM crisis getting worse later this year, and in 2027 — maybe a lot worse. The memory supply situation is what caused Apple to jack up Mac prices, of course, and it's difficult to see how the MacBook maker will continue to weather this storm if it worsens next year, given that its resources in terms of built-up inventory of RAM (or SSDs) are clearly running dry (or have run dry).

Rumors have continued to persist about Apple potentially tapping Chinese memory chip makers for its RAM needs, as an alternative to the big three mainstream suppliers (Micron, Samsung, SK Hynix). That's a worrying development in itself, and it's doubtful whether even Tim Cook can pull off navigating that kind of negotiation before he leaves his Apple CEO role (there are various possible hurdles to clear and governmental complications, put it that way).

Diving into AI headfirst

(Image credit: Apple)

I don't think any of this bodes particularly well for next year's Mac sales given the prospect of pressure around more price hikes (although yes, other PC makers face the exact same unfavorable conditions). And then we come back to this apparent renewed focus on AI, which hasn't gone down well on Reddit and other social media.

Here's one Redditor who sums all this up neatly: "I was about to buy a new MacBook to replace my M1 Pro with an ailing battery and small storage. But then Apple jacked up the prices by almost 20%. And now they are diving into AI headfirst. It might be time for me to look at Framework laptops."

There's a strong backlash against AI right now, whether that's about sprawling data centers and them chugging huge amounts of power, or Copilot in Windows 11 and indeed Apple Intelligence. So, it's no surprise that the idea of "diving into AI headfirst" has been greeted by a lot of skepticism.

What exactly is Apple Intelligence going to serve up in terms of compelling features in the next year or two? The trouble is that this feels very much up in the air, yet Apple is supposedly building its Mac strategy around this now. It seems like a bit of a leap into the unknown to say the least, and I'm not surprised that it's making Mac fans nervous.

Okay, so this AI focus is still just a rumor, although Gurman is one of the more reliable Apple sources out there, and it appears to be a well enough fleshed-out piece of speculation. Even if it's true, Apple may yet switch away from this course, but for now, I'm struggling to find the logic of shifting to a heavier AI focus so soon.

Maybe the reasons for this will become clearer as we see how Apple Intelligence develops in the near future. However, in the meantime, I think there are reasons to be concerned about Mac sales potentially flagging next year, between disgruntled MacBook holdouts, the continued RAM crisis, and cynicism around Apple's apparent new AI-led approach.

I've spent weeks testing the Razer Hammerhead V3 HyperSpeed gaming earbuds and it's left me desperate to go back to my SteelSeries Arctis GameBuds - Sunday, July 19, 2026 - 11:00
Razer Hammerhead V3 HyperSpeed: two-minute review

The first thing I thought when I pulled the Razer Hammerhead V3 HyperSpeed gaming earbuds out of their box was “Wow, these are ugly.”

Not exactly the strongest first impression, but it’s unavoidable when each bud has a weird, bulbous design that gives them an appearance like a pair of obese AirPods. The shiny black plastic material looks cheap, as does the printed Razer logo on the outside, which (despite all the Razer Chroma branding on the box) is just a decal that doesn't illuminate.

They’re thankfully not uncomfortable to wear, but even in your ears they’re nowhere near as stylish as similarly priced competitors like the SteelSeries Arctis GameBuds.

With much flatter sound, they’re significantly less versatile (especially if you’re after a pair of gaming earbuds that you can also use to listen to music) and offer fewer features than that model to boot, with inferior active noise cancellation (ANC) that fails to block out most background noise when you’re out and about.

(Image credit: Future)

The Razer buds’ biggest benefit is the use of the latest Bluetooth 6.0 standard, which allows for ultra-low-latency connectivity with compatible devices and is ideal if you’re a serious mobile gamer looking for something to use with the latest phones. The included 2.4GHz Razer HyperSpeed Wireless dongle is also impressively compact and offers similar low-latency performance on PC, PlayStation 5, and handhelds like the Nintendo Switch 2.

This alone might be worth the compromises elsewhere if you’re a really serious mobile gamer, though there are a few more things worthy of praise. The included case is well-designed and feels pretty high quality, with an attractive RGB strip that is illuminated to denote pairing or charging status. I also really like how you don’t have to take the dongle if you want to use it: simply plug the case into your machine, and you’re ready to go, which makes it basically impossible to leave behind.

Find the Razer Hammerhead V3 HyperSpeed gaming earbuds at the right price - and they could be a good pick.

Razer Hammerhead V3 HyperSpeed review: price & availability
  • Costs $129.99 / £129.99 / AU$229.95
  • Available via Razer right now
  • Availability at other retailers seems spotty

The Razer Hammer V3 HyperSpeed gaming earbuds cost $129.99 / £129.99 / AU$229.95 if you buy them directly from Razer, which is where I would recommend getting them, as stock at other retailers seems spotty.

If you do choose to buy from the likes of Amazon, be mindful not to accidentally purchase the cheaper Razer Hammerhead V3 X or older Razer Hammerhead True Wireless X model, as they look very similar.

At this price, the earbuds are going head to head with the likes of the SteelSeries Arctis GameBuds, which originally launched at $159.99 / £159.99 / AU$359 but are now regularly discounted to around $130 / £100 in the US and UK.

Even factoring in the added $30 / £30 at full price, I think the Arctis GameBuds are much better value. They offer a much more stylish design, versatile sound that you can easily customize with hundreds of selectable EQ profiles, in addition to slightly better overall battery life.

Razer Hammerhead V3 HyperSpeed review: specs

Razer Hammerhead True Wireless X

Price

$129.99 / £129.99 / AU$229.95

Weight

0.19oz / 5.6g (each bud); 2.22oz / 63g (case)

Compatibility

PC, PS5, mobile, Nintendo Switch, Nintendo Switch 2

Connection type

2.4GHz HyperSpeed Wireless / Bluetooth 6.0

Battery life

~40 hours

Features

THX Spatial Audio license included

Software

Razer Audio (mobile) / Razer Synapse (PC)

Razer Hammerhead V3 HyperSpeed review: design and features
  • Look bulky and dated
  • THX Spatial Audio support
  • Case is good

You should know by now that I’m not a big fan of how these earbuds look. They have a basic stemmed in-ear design with quite a bulbous body constructed from shiny black plastic and a cheap-looking green Razer decal on the back. They honestly look like something you’d buy on Amazon for under 50 bucks rather than a product from a premium gaming brand.

The case is much better, at least. It’s large, but still easily pocketable, and has a pleasant matte texture to its exterior and a very robust hinge with satisfyingly strong magnets. There’s a subtle strip of LED lighting on it as well, which lights up in an attractive rainbow pattern when the case is opened. It also illuminates different colors to denote charging or pairing status, battery level, and so on, which makes it surprisingly practical as well.

Inside the case, there’s plenty of space for the two earbuds and a little slot for the compact HyperSpeed Wireless dongle. When in the case, the dongle is nestled inside a Type-C port with passthrough connectivity. This means you can plug the entire case directly into your PC or console in order to pair the buds, which is pretty handy and helps keep everything in one place.

Aside from this, the Razer Hammerhead V3 HyperSpeed gaming earbuds don’t have a particularly expansive feature set compared to the offerings of other brands. The earbuds support ANC and a transparency mode, in addition to automatic pausing when removed from your ears. The compatible software offers three default EQ profiles (for gaming, music, and movies, respectively) plus the ability to create your own.

On PC, the buds come with a license key for THX Spatial Audio, which simulates 360-degree sound decently well and is a solid bonus.

(Image credit: Future)Razer Hammerhead V3 HyperSpeed review: performance
  • Sound is okay
  • ANC is poor
  • Decent battery life

Although it is impressively low-latency and thus suited for competitive gaming, I found the sound of the Razer Hammerhead V3 HyperSpeed to be so-so compared to similarly priced alternatives. In the default gaming preset, the bass is plenty punchy, but they lack clarity and sounds quite muffled in the high end. It’s good enough for the likes of PUBG: Battlegrounds or Counter-Strike 2, but would be an incredibly poor fit for more story-driven titles.

The music-listening experience is bad, and no amount of EQ tweaking could remedy the uninspiring sound. I would recommend swerving the default music EQ as well, as it’s absolutely rancid and tanks not only the bass but also the low mids, leading to sound that’s not dissimilar to that produced by the free earbuds you get on an airplane.

Alternating between the Razer Hammerhead V3 HyperSpeed and the SteelSeries Arctis GameBuds, there is simply no contest: the SteelSeries pair sounds better no matter what you throw at it, and the fact that it can handle music too means that you don’t need to buy a second pair to use with your phone.

The ANC also underperforms compared to alternatives, be they the GameBuds or others such as the Sony Inzone Buds. It fails to block out much background sound and even struggles to drown out the consistent, low noise from a desk fan. If you want to take these on a plane, just forget about it.

The microphones are okay, but not particularly reliable. With any kind of background noise, they can begin to struggle to pick up your voice - which had me relying on my desktop mic instead. Touch controls are quite awkward as well. They feel unresponsive and struggle to pick up inputs, leading to frequent accidental pauses or skips if you’re trying to use them for your tunes.

The battery life is at least one area where the Razer Hammerhead V3 HyperSpeed doesn't disappoint. I easily managed 7-8 hours per charge with the buds, and the case holds enough to fully top them up about four times when you're on the go.

(Image credit: Future)Should I buy the Razer Hammerhead V3 HyperSpeed?Buy it if…

You’re after low latency at all costs
These are some of the few gaming earbuds with Bluetooth 6.0 support, which might be a compelling reason to buy if that’s what you’re after.

Don’t buy it if…

You crave premium sound
The Razer Hammerhead V3 HyperSpeed gaming earbuds deliver unexceptional sound for the price. You can easily find alternatives that sound better for the same money.

You want more features
The Razer Hammerhead V3 HyperSpeed gaming earbuds also have fewer features than the competition, particularly the likes of the SteelSeries Arctis GameBuds with its many software options.View Deal

Razer Hammerhead V3 HyperSpeed review: also consider

Here are two more compelling options to weigh up.

Razer Hammerhead V3 HyperSpeed

SteelSeries Arctis GameBuds

PlayStation Pulse Explore earbuds

Price

$129.99 / £129.99 / AU$229.95

$159.99 / £159.99 / AU$359

$199.99 / £199.99 / AU$329

Weight

0.19oz / 5.6g (each bud); 2.22oz / 63g (case)

0.19oz / 5.3g (each bud); 1.7oz / 48.7g (case)

0.2oz / 6.5g (one earbud with medium tip)

Compatibility

PC, PS5, mobile, Nintendo Switch, Nintendo Switch 2

Xbox, PlayStation, Nintendo Switch, PC

PS5, PlayStation Portal, PC, mobile

Connection type

2.4GHz HyperSpeed Wireless / Bluetooth 6.0

2.4Ghz (via USB-C), Bluetooth 5.3 (mobile)

PlayStation Link wireless, Bluetooth (mobile)

Battery life

~40 hours

Up to 40 hours (buds 10 hours; case 30 hours)

5 hours with 10 hours from the charging case

Features

THX Spatial Audio license included

360° Spatial Audio, Qi Wireless Charging Case, 6mm neodymium drivers, four-mic ANC, transparency mode, in-ear detection/sensor, IP55 rating, fast charge, companion app with more than 100 presets

Planar Magnetic Drivers, AI-enhanced noise rejection, Dual Device connectivity, 3 sets of ear tips

Software

Razer Audio (mobile) / Razer Synapse (PC)

Arctis Companion App (mobile), SteelSeries Sonar (PC)

N/A

SteelSeries Arctis GameBuds
The SteelSeries Arctis GameBuds are the wireless gaming earbuds to beat right now. They offer great sound out of the box, plus hundreds of customizable EQ presets that make them perfect no matter what you are playing.

For more information, check out our full SteelSeries Arctis GameBuds review

PlayStation Pulse Explore earbuds
If you’re shopping for earbuds to use with a PS5, then the official PlayStation Pulse Explore earbuds are a decent pick. They sound far better than the Hammerhead V3 HyperSpeed pair thanks to their planar magnetic drivers.

For more information, check out our full PlayStation Pulse Explore earbuds review

How I tested the Razer Hammerhead V3 HyperSpeed
  • Tested for multiple weeks
  • Used with PC and mobile
  • Compared to other gaming earbuds

I tested the Razer Hammerhead V3 HyperSpeed gaming earbuds for multiple weeks across both PC and mobile, playing a range of different games.

This included plenty of Call of Duty: Black Ops 7, PUBG: Battlegrounds, Battlefield 6, Forza Horizon 6, Grand Theft Auto 5, and more, in addition to mobile titles like Neverness to Everness, and Call of Duty Mobile.

Throughout my time with the buds, I compared the experience to my hands-on testing of other gaming earbuds, including the SteelSeries Arctis GameBuds and other products featured on our best gaming earbuds guide.

Read more about how we test

First reviewed July 2026

The quiet comeback of boring computing: why ports, keyboards, and repairability matter again - Sunday, July 19, 2026 - 12:00

Up until fairly recently, laptop design followed a similar pattern, no matter whether you were picking a new Windows laptop or a MacBook.

Machines became thinner, many premium models shed ports, keyboards lost travel, and more components were soldered or glued into place.

Some companies presented these updates couched in the language of progress, even if they made computers less useful, less comfortable to use, and harder to keep alive over multiple years.

In 2026, the mood seems to be beginning to shift. HDMI and card slots have returned to premium laptops, and many manufacturers are paying closer attention to keyboards, batteries, and repair access.

Leading the way, Framework has turned replaceable hardware into its defining idea, and even Apple is showing signs that a modern laptop does not need to be an entirely sealed unit.

None of this is glamorous, which is part of the appeal: the next meaningful improvement in computing may be a machine that works well, connects to what you own, and can survive long enough to become boring.

(Image credit: Future)The laptop industry spent years mistaking subtraction for progress

Over the past 10 years, laptop design has been moving steadily towards the central tenets of thinner, lighter, and cleaner, while ports, removable batteries, and replaceable components disappeared.

The trade-offs were often presented as unavoidable – the price of owning something modern, sleek, portable.

Of course, some of these changes brought real benefits; today’s laptops are faster, quieter, and easier to carry than the bulky machines they replaced, and improvements in chip design mean they are more powerful than ever.

Problems arose though when minimalism became the goal rather than a means to an end. Removing an HDMI port saved a little space but left users carrying dongles; soldered storage reduced flexibility long after the initial purchase. The list goes on.

Several of those decisions have since been quietly reversed.

Apple returned to a more conventional keyboard after long-standing durability issues, then restored HDMI, MagSafe, and an SD card slot to the MacBook Pro.

Other manufacturers have also followed a similar path, adding ports and improving repair access without turning their laptops back into bulky desktop replacements.

Recent Surface devices have made batteries, displays, SSDs, and keyboards replaceable, while Dell and Lenovo now use modular USB-C ports in selected laptops so a damaged socket can be changed without replacing the motherboard.

These are still exceptions focusing on a few components, but they make this welcome comeback broader than a Framework-only experiment.

(Image credit: Framework)Framework designs laptops for their next owner – and their existing one

For anyone dispirited by the state of the modern laptop industry, Framework came to the rescue, building its laptops around many of the features the wider industry had abandoned.

Owners can replace the memory, storage, battery, keyboard, display, ports, and even the mainboard, while expansion cards make it possible to swap connections such as USB-C, HDMI, and an SD card reader.

Someone who bought a Framework Laptop 13 several years ago can install a newer mainboard or display without replacing the rest of the machine. A new generation does not automatically make the old one obsolete – owners can upgrade the part that matters and leave everything else alone.

It should also make buying second-hand less of a gamble, since a later owner can replace a tired battery or upgrade the mainboard rather than inheriting a sealed snapshot of the original specification.

Even the familiar design serves a purpose: Framework’s laptops may not look dramatically different with each release, but keeping the same basic chassis allows components made years apart to work together.

If we're being honest, that is far more useful than another cosmetic redesign.

Not everything is perfect with this strategy, of course. Framework machines can cost more than sealed rivals with similar specifications, and earlier models have not always matched the best laptops for battery life or overall polish.

Their long-term value also depends on a relatively small company continuing to support the platform. Even so, Framework has shown that repairability does not need to mean owning an awkward experiment rather than a normal laptop.

(Image credit: Apple)The MacBook Neo is Apple's concession, rather than a revolution

Apple’s new MacBook Neo takes a more cautious step in the same direction.

To start with, its battery is screwed into place and several ports sit on replaceable boards. Parts such as the display, speakers, and trackpad can also be removed without the level of adhesive found in many recent MacBooks.

Apple also published a repair manual from launch, a somewhat surprising move from the company, while iFixit awarded it 6 out of 10 – the best score for a MacBook in around 14 years.

The caveat – and sadly there is one – is that this makes the Neo more repairable, but not especially upgradeable.

Its memory and storage are soldered in place, so the specification chosen at checkout is the one owners will keep for the life of the machine. Given the crazy price hikes due to the AI memory boom, this can make things quite expensive.

One of its two USB-C ports is also limited to USB 2 speeds, and it lacks a backlit keyboard.

The result is that it's easier to restore or fix the original machine when something breaks, a small but meaningful achievement on an entry-level laptop, where a large repair bill can quickly make replacement look like the more economical option.

Perhaps the bigger win is that Apple has shown that a slim, polished MacBook does not need to be completely sealed shut.

(Image credit: iFixit)Repairability is useful even when you never hold a screwdriver

Most people will never replace a laptop battery or swap out a damaged port themselves, but they still benefit from a machine designed to make those jobs possible.

Accessible parts give places like independent repair shops, school technicians, and company IT teams a better chance of fixing a fault without replacing an entire assembly.

A commonplace issue like a worn battery becomes a simple routine repair, while a damaged charging socket is a small parts replacement rather than a motherboard-scale repair.

The same principle applies to ports and keyboards. These are among the most heavily used parts of any laptop, yet manufacturers have often treated them as secondary to thinness or appearance.

A useful selection of connections saves years of adapter clutter, while a comfortable, replaceable keyboard matters far more in daily use than a slightly slimmer lid.

(Image credit: Lance Ulanoff / Future)The right to forget about your computer

The most mature technologies tend to disappear into the background. We do not want to admire a laptop’s design "courage" every time we connect a monitor, replace a battery, or type for several hours.

Fundamentally, we want it to work without creating new problems – and work for as many years as possible.

Framework has pushed that idea further than anyone else, while the MacBook Neo shows that parts of it can survive inside a mainstream product.

Neither will reverse years of sealed design overnight. What they do is suggest a different measure of progress: not how quickly a computer looks old, but how long it remains useful enough to ignore.

Pages