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.
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).
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:
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.
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 compromisesStepping 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 optionsIf 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.
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 ActionOsmo 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 ProsOsmo 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 ProsFinally, 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 ProsEufy’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 availabilityJust 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.
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: designThe 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.
FutureFutureFutureFutureShort 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.
FutureFutureFutureFutureI 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.
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.
FutureFutureFutureI 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.
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.
FutureFutureAnother 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.
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 ifYou 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 ifYou'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 S2I 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
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 availabilityJust 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.
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: designThe 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.
FutureFutureFutureFutureShort 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.
FutureFutureFutureFutureI 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.
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.
FutureFutureFutureI 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.
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.
FutureFutureAnother 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.
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 ifYou 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 ifYou'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 S2I 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
Ukraine says its drone manufacturing capacity has expanded to 10 million units annually, with plans already underway to double production to 20 million.
President Volodymyr Zelensky confirmed the report, claiming that Ukraine has already surpassed its earlier objective of producing one million drones annually, despite widespread skepticism.
"I remember when I first publicly announced the state's plan: 1 million drones per year," Zelensky said. "There was a lot of skepticism everywhere — both inside and outside... We make 10 million drones a year. Ten, and it will be 20."
Production ambitions expand alongside European supportZelensky said achieving this next production milestone would depend upon continued cooperation with international partners supporting Ukraine's expanding defense manufacturing sector.
The announcement coincided with a new defense cooperation arrangement between Ukraine and the European Union valued at $1.1 billion, placing drone production at the center of Kyiv's long-term military planning.
European Commission President Ursula von der Leyen also confirmed the new defense-industrial arrangement known as the Drone Deal
The agreement builds upon earlier efforts already underway between Ukraine and its European partners in the defense sector.
Ukraine's National Security and Defense Council Secretary Rustem Umerov said six separate agreements have already been completed under the Drone Deal framework.
He also claims that more than 20 countries are working toward joining the same cooperation model, potentially expanding financial backing and industrial participation beyond current European partners.
Drone warfare drives industrial expansionUkraine's growing production goals follow extensive battlefield reliance on unmanned systems throughout the conflict, where drones have increasingly supported surveillance, reconnaissance, and precision strike operations.
Defense Minister Mykhailo Fedorov said Ukrainian forces struck more than 800,000 verified Russian targets during 2026 using drones alone.
Those targets included personnel, artillery, air defense systems, multiple-launch rocket systems, headquarters, transport assets, depots, electronic warfare equipment, and ground robotic systems.
Fedorov also stated those operations contributed to about 167,000 Russian troops being killed or seriously wounded during the same period.
However, such battlefield figures remain difficult to verify independently during active conflict.
Beyond immediate military requirements, Ukrainian officials have repeatedly described much broader ambitions for domestic manufacturing.
They argue that the country could eventually become the world's largest producer of drones and robotic systems.
Ukraine’s drone production output could exceed that of China, Russia, and the United States put together, surpassing 30 million units annually within several years.
Whether Ukraine achieves these production goals will depend on financing, manufacturing capacity, component access, and continued international support.
However, recent announcements suggest Ukrainian officials believe drone output has already surpassed expectations set only a few years ago.
Via Interfax (originally in Ukrainian)
Tech companies large and small — including the likes of Meta, Samsung, and Google (and perhaps even Apple) — are betting that smart glasses become one of the leading device form factors of the future. But this week it became clear that they're facing an increasingly strong backlash against the technology.
There's one problem in particular: cameras. These tiny, embedded recording devices make it easier to record your kids' cute mishaps, your latest mountain bike ride, and a first-person view of anything without needing to get your phone out, but they also enable a certain level of surreptitious photo and video capturing that isn't possible with a phone.
And there's no doubt that bad actors are using these smart glasses for unwholesome purposes: some glasses owners have been paying modders to disable the warning light that should appear whenever recording is actively happening.
We're now at the stage where smart glasses owners are worried about wearing them in public, such is the growing negativity around them. Here's what we've learned in the last few days, and what might happen next.
An inevitable 'collapse into surveillance tech'Smart glasses with cameras are nothing new of course, but stories around these devices being modded to operate without recording lights (something Meta has now moved to block), as well as reports that future Meta Ray-Bans could be recording all the time, seems to have prompted a new wave of anti-smart glasses sentiment.
Even the celebrities are weighing in: pop icon Lorde was less than complimentary about smart specs on stage recently, leaving her audience in no doubt about her feelings about the tech, while rapper and producer Tyler, the Creator has declared that "anyone who uses these glasses is a real weirdo".
lorde saying fuck meta glasses in a festival that was sponsored by rayban meta AI glasses how can you not love her pic.twitter.com/HWsHZHP9AEJuly 10, 2026
Some of the rich and famous are still on board — you can actually buy Kylie Jenner-branded Meta Glasses, if you want — but most of the online reaction is critical of the technology. A quick peek at Reddit reveals comments like "all internet and computer tech seems to inevitably collapse into surveillance tech" and "people are choosing to be a walking Flock camera" (if you don't get the reference, read this).
Users are referencing Black Mirror and calling for the technology to be banned outright, and using terms like "creep goggles" to describe the devices. While a ban is unlikely at this point, there are some legal changes happening: Illinois looks set to be the first US state to ban smart glasses while driving, not because of any sneaky recording capabilities, but because they might prove to be a distraction to drivers.
Over in South Korea, meanwhile, a man is facing criminal charges after admitting to using smart glasses to cheat on a test. The camera captures the questions, on-board AI figures out what the answers are, and the person sitting the exam writes down the answers. There's more than one way to misuse the camera technology.
However, lawmakers don't yet seem convinced that these AI-powered glasses represent a privacy threat. Regulators in the European Union have reportedly bowed to US pressure in deciding that wearables were exempt from having to include removable batteries, like some other gadget types are when sold in the EU.
What happens next?While there are some limited efforts to curb the use of smart glasses then, at this stage they're small scale and localized. To try and nudge things along, activists in London have been busy putting up fake Meta Glasses ads on bus stops (below), making a point about surveillance. One of the ads uses an optical illusion to turn the face of Kylie Jenner into a creepy skeleton, with the tagline "we're always watching".
Recording everything we see and do constantly? It’s giving fascism, not fashion It’s just been revealed Meta is planning to make the glasses “continuously record audio while taking photos every few seconds” without any warning light*Literally NO ONE asked for this#noncegoggles*Source: the FT
— @everyonehateselon.bsky.social (@everyonehateselon.bsky.social.bsky.social) 2026-07-17T18:40:05.934ZCast your mind back to 2012 when Google Glass launched, and you'll remember that we've been debating these issues for years. There are clearly benefits to wearable specs that can give you hands-free directions, translations, and information without you having to take your phone out, but it seems the concerns over covert surveillance are outweighing the positives in the public's mind.
Remember Google Glass? (Image credit: Future)Given the growing influence of AI tech and how well-suited these wearables are to taking in and processing information, it doesn't seem likely that the tech will be restricted any time soon. For several years now we've been seeing demos of smart glasses that can see and understand the world around them, and those capabilities are on the way whether we like it or not.
If, as rumored, Apple does make its own version of smart glasses, it's going to be interesting to see how this famously privacy-focused company deals with the issues of surveillance. A recording light that cannot be switched off is a good start, but as we've already mentioned, existing users are already cautious of wearing their smart specs around other people.
Glasses from Samsung and Google are on the way (Image credit: Google )Later this year we're going to see more smart glasses from Google and Samsung, with Gemini AI ready and waiting to tell you everything you need to know about what you're looking at — which of course requires a camera. As per Google, the company is aware that people won't wear these specs if the privacy concerns are too great, and its solution is mostly to make sure the recording light is noticeable and cannot be tampered with.
"If people don't feel comfortable wearing these glasses, and privacy is part of this, they just won't wear the glasses," Google's Juston Payne told Tom's Guide this week. "It’s as simple as that." The new Google and Samsung wearables are scheduled to arrive later this year, but the companies involved still have a way to go when it comes to shifting user opinion.
Nursing homes and assisted living facilities can be fertile ground for violence between residents with dementia, including fatal assaults. Court records and inspecitions how safeguards fall short.
(Image credit: Marco Cecchetto)
The TCL NXTPAPER 70 Pro is an affordable smartphone at $379.99 / £269 for the 256GB device. The US market also gets a cheaper 128GB model.
Its design is sleek and attractive, giving the air of a phone that costs a far more. The biggest selling point is the NXTPAPER 70 Pro's large 6.9in screen with epaper-like NXTPAPER 4.0 display technology.
The tech gives the screen a matte finish that minimises reflections and glare, and makes the TCL NXTPAPER 70 Pro extremely comfortable to read and work on. It features a variety of options for reducing eye-strain, and you can turn on various display modes with just a quick flick of a switch. These include Color Paper mode, which is perfect for reading digital comics, and Ink Paper mode, a black-and-white paper-like setting that’s great for ebooks and text-heavy websites.
(Image credit: Future)As an avid reader of both books and comics, I was a huge fan of the TCL NXTPAPER 70 Pro's screen — but there are a few compromises which meant it wasn't a device I'd be happy to switch to full-time. Performance is fine, but multitasking with lots of different apps open at once isn’t as smooth as it is on devices with more RAM (the TCL NXTPAPER 70 Pro comes with 8GB, although that can be expanded later). In addition, taking photos at the main camera's maximum 50MP resolution introduces a slight pause as the phone processes your images.
Speaking of the camera, it does a decent job of taking high-resolution shots by default, but the digital zoom quickly displays its limits when you try zooming in too much. For day-to-day shots, though, it's fine; but anyone wanting to be more ambitious with their photography should look elsewhere.
(Image credit: Future)TCL has made quite a big deal of the TCL NXTPAPER 70 Pro's AI features, and while it’s good to see the tech included in a budget device, I didn’t have much cause to use features such as live transcription, or AI-assisted note-taking. However, I can imagine they'll be useful for some, especially for accessibility — and on a positive note, they're not obnoxiously pushed onto you like they can be by other brands.
Overall, the TCL NXTPAPER 70 Pro is a stylish and dependable budget smartphone that offers plenty for the price, but its performance compromises can niggle. Nevertheless, its NXTPAPER 4.0 screen really is a standout feature, so for voracious readers, it could be their dream phone.
Meanwhile, I’m looking forward to seeing NXTPAPER 4.0 come to more powerful phones from TCL.
TCL NXTPAPER 70 Pro review: Price & release dateIt might be because I’ve become used to the ever-increasing price of flagship phones from the likes of Apple and Samsung, but when I was told the price of the TCL NXTPAPER 70 Pro, I was genuinely impressed. For a smartphone with the word "Pro" in its name, a price of less than $400 is pleasing.
In the US and UK, the TCL NXTPAPER 70 Pro model with 256GB storage costs $379.99 / £269, which is a fair bit less than our current best cheap phone pick – the Samsung Galaxy A56 at $499 / £499. It actually undercuts pretty much all of the phones in that list, including the Poco X8 Pro Max, which starts at $469 / £469.
While a rock-bottom price isn’t the only measure of a good budget, in these financially uncertain times it’s certainly a major selling poin. If the TCL NXTPAPER 70 Pro can also match this with stellar performance, we could see a new budget champion.
In the UK, you can pick up the TCL NXTPAPER 70 Pro with a protective slipcase and stylus from Amazon for £369.98.
And for US customers, there's an even cheaper 128GB option that sells for $329.99. People in other markets might be disappointed to learn this isn't an option in their territory, but personally, I wouldn’t recommend opting for less than 256GB storage these days, especially if you take a lot of photos. Having said that, the TCL NXTPAPER 70 Pro supports microSD cards, so you can expand the storage up to 2TB.
Currently, if you’re in the US and buy the TCL NXTPAPER 70 Pro from TCL’s official store, you also get a free pair of TCL CrystalClip earbuds worth $95.99, making this already great-value handset even better value for money.
Storage
US Price
UK Price
256GB
$379.99
£269
512GB
$429.99
£319
Dimensions:
169.4 x 80.05 x 7.98mm
Weight:
208g
Internal screen
6.9-inch NXTPAPER 4.0 display
Resolution:
1080 x 2340
Refresh rate:
120Hz
Peak brightness:
900 nits
CPU:
MediaTek Dimensity 7300
RAM:
8GB
Storage:
128GB / 256GB / 512GB
OS:
Android 16
Main cameras:
50MP 1.0UM OIS+8MP main
Selfie camera:
32MP
Battery:
5,200mAh
Charging:
33W
Colors:
Stellar Blue, Nebula Gold
(Image credit: Future)TCL NXTPAPER 70 Pro review: Design
Design-wise, the TCL NXTPAPER 70 Pro certainly doesn’t feel budget. Available in two colors, Stellar Blue (the model I was sent) and Nebula Gold, the large 6.9-inch screen, thin bezels and modern design give the TCL NXTPAPER 70 Pro the appearance of a much more expensive phone at first glance.
The thin bezels keep the focus where it belongs: on the display. That's no bad thing, thanks to TCL's innovative NXTPAPER 4.0 technology, which gives the screen a matte, e-reader-like finish (more on that shortly). They also help prevent the TCL NXTPAPER 70 Pro from feeling even larger than it is — but make no mistake, this is a big phone, and it will stick out of plenty of pockets.
On the bottom of the TCL NXTPAPER 70 Pro is a USB-C port for charging, as well as a slot for your SIM card and SD card for expanding storage. On the right-hand side of the phone are the standard volume rocker, a power button with built-in fingerprint reader, and a unique NXTPAPER key. The latter is actually a physical switch, similar to the one found on older iPhones, to put the device into "Do not disturb" mode. Here, though, the NXTPAPER key switches been display modes: Color Paper mode, Ink Paper mode and Max Ink mode.
(Image credit: Future)You can choose the mode each time, or set a default mode to turn on instantly when you flick the switch. A ripple transition effect plays as the screen switches to the mode you’ve chosen – I quite like it, but if you switch mode regularly, I can see how the animation might get a bit annoying.
I’ll go into each mode in a moment, but the default setting’s matte effect and vibrant colors makes the TCL NXTPAPER 70 Pro stand out from rivals, especially those that sell for a similar price — and the default wallpaper, which is a painting of flowers, looks fantastic.
(Image credit: Future)Overall, the TCL NXTPAPER 70 Pro's design — aside from its standout display — isn't revolutionary, but it doesn’t need to be. It's a well-built, attractive phone that looks and feels more premium than its affordable price suggests.
The TCL NXTPAPER 70 Pro’s design does a decent job of making you forget that this is a budget phone, then — but the specs don’t do such a good job. Don’t get me wrong: it works fine, but when you're coming from a flagship handset — even one that’s now a few years old — it's a bit of a wake-up call to keep your expectations in check.
Android 16 runs smoothly, and even when using the various screen modes, the phone is responsive, with no annoying full-screen refreshes of the type that happen with some ebook readers. The display's matte finish keeps images looking crisp, even at extreme viewing angles, with vibrant colors and no distracting reflections.
Turning the screen to Color Paper mode mutes the colors and drops the background wallpaper. It makes the TCL NXTPAPER 70 Pro more comfortable to use in low-light conditions, and preserves battery life, too.
(Image credit: Future)It works particularly well when reading comics (I tried it with Marvel Unlimited), as well as browsing the internet at night. The muted colors, paper-like display and lack of blue light mean a quick doomscroll before bed won't disrupt your sleep too much (although it doesn’t do anything for my general anxiety about the state of the world).
Impressively, the screen remains responsive, although rapidly scrolling through long passages of text causes the text to shift in colour slightly as it moves. You can watch videos, too, but you’ll want to switch back to normal mode for the best picture quality.
There’s also Ink Paper mode, which reduces colors to just black and white, removes the background wallpaper, and simplifies icons. This more basic mode is great for reading ebooks and websites; the interface is clean, easy to read, and free from distractions. It helps prolong battery life as well, yet still feels responsive.
Finally, there’s Max Ink mode, which limits the apps that can be run, futher extending battery life (with just 21% of battery life, the TCL NXTPAPER 70 Pro claimed to have around 46 hours left).
(Image credit: Future)The screen really is a treat, and if you don’t mind the impact on image quality, switching between modes is a great way to boost the battery life if you’re away from a power supply. I found reading websites particularly comfortable in Ink Paper mode — although for image- and video-heavy websites, you’ll probably want to switch to a color mode.
Color Paper mode is also excellent for reading digital comics. As an X-Men fan, I found the TCL NXTPAPER 70 Pro’s large paper-like display ideal for reading on Marvel Unlimited and Kindle. The matte finish dramatically reduces glare, and. unlike some early color e-readers I’ve tested, both apps remain as fast and responsive as they do on other smartphones.
So, Color Paper mode is great for those who wish to get through their large digital comic libraries while on long trips. Personally, I prefer reading the comics in the default display mode, as colors are more vibrant.
The TCL NXTPAPER 70 Pro overall performance is solid, and about what you’d expect for the price. I didn’t have any issues using any of my regular daily driver apps, and the games I tested ran perfectly fine as well — although, if you’re looking for a smartphone on which to mainly play games, you might want to look for a device with a standard display and more graphical power.
Powering the TCL NXTPAPER 70 Pro is a MediaTek Dimensity 7300, an octa-core processor with four performance and four efficiency cores. It can't match Qualcomm’s latest Snapdragon chips, but at this price it's hard to fault, delivering smooth everyday performance. The 8GB of RAM comfortably handles multitasking, although it doesn't feel quite as snappy as more expensive handsets with more memory. TCL does let you allocate up to 16GB of virtual RAM from the phone's storage, increasing the total to a very healthy 24GB, and proving a little more headroom for the future.
(Image credit: Future)The phone features two SIM card slots, and supports eSIM, and network speeds up to 5G. However, the TCL NXTPAPER 70 Pro only supports Wi-Fi 5, which is now quite outdated. It meant I couldn't take full advantage of my home router’s Wi-Fi 7 connectivity, and this led to a noticeable reduction in speed when using Wi-Fi.
To be fair to the TCL NXTPAPER 70 Pro, this was the only time its budget roots really showed.
The screen is definitely a standout feature for anyone who spends a lot of time reading on their phone. However, if you spend more time watching movies or playing games, a device with a more traditional display will be a better choice.
The TCL NXTPAPER 70 Pro features a 50MP rear camera with OIS (Optical Image Stabilization) and a 32MP front-facing camera. It also uses TCL’s own MuseFilm imaging technology, which the manufacturer says combines hardware and software enhancements to deliver more visually impressive photos.
I didn’t really notice much difference when comparing photos taken on similar phones. Having said that, images taken with the 50MP camera are bright, vibrant and full of detail.
While zooming in reveals some loss of sharpness, photos look impressive at full resolution, with even busy scenes retaining plenty of detail. If you’ve previously dismissed budget smartphones because of their lack of photo-taking prowess, then the TCL NXTPAPER 70 Pro proves that affordable handsets can deliver.
However, note that taking photos at the full 50MP resolution (which at the default 4:3 aspect ratio leads to image resolutions of 8192 × 6144) does put pressure on the TCL NXTPAPER 70 Pro’s hardware: there's a slight pause between pressing the shutter button and image capture (a message pops up asking you to hold the phone still while the image is being processed). It’s another reminder about the TCL NXTPAPER 70 Pro’s budget price, and while it didn’t appear to make any of the photos I took with moving subjects blurry, if you want to take a series of fast images, you’ll need to lower the resolution — or buy a more powerful phone.
Reducing the resolution speeds up the whole process, and when images are viewed on the phone’s screen they still look sharp. Viewing them on a larger screen, or printing them out, makes the reduced resolution more noticeable, though.
FutureFutureWhen shooting below the full 50MP resolution, the TCL offers up to 2x optical zoom and 10x digital zoom. However, pushing the digital zoom too far reveals the limitations of the hardware, with considerable loss in detail and the addition of image artefacts.
You can also switch to the ultra-wide lens, which produces some nice results, although it does occasionally introduce distortion around the edges. There’s also a macro setting for taking close-up shots, and while the results are fine, they lack detail.
(Image credit: Future)For best results, then, you’ll want to stick to the standard settings without zooming in.
(Image credit: Future)The front-facing camera captures good-quality selfies with plenty of detail, and there are plenty of settings to experiment with, including the often questionable "beauty" modes found on many smartphones.
Overall, photography isn't the TCL NXTPAPER 70 Pro's main strength, so it isn't for you if camera performance is a priority. However, for day-to-day snaps, it does the job.
The TCL NXTPAPER 70 Pro doesn’t have the largest battery, nor does it charge as quickly as other budget rivals, with its fast charging capped at 33W (the Xiaomi Redmi Note 15 Pro 5G can charge at 45W). Still, it powered up to 56% (from empty) after just 30 minutes.
During tests, the TCL NXTPAPER 70 Pro lasted well over a day of standard use with a single charge, and in our benchmark tests, it hit 10 hours and 55 minutes of continuous video playback. Turning on the Max Ink mode boosted battery life in the same tests by around 50 minutes.
Considering the limitations of Max Ink mode, I was expecting a bigger difference in battery life, but that could be a testament to how efficient the default screen mode is at prolonging battery life.
As with other phones around this price point, there’s no wireless charging support, which was a blow coming from a handset that has the ability to charge over wireless. If you’re not bothered about the tech, this won’t be an issue, but for people like myself who have wireless charging accessories (including in my car), it does limit the appeal of the TCL NXTPAPER 70 Pro.
Attribute
Notes
Score
Value
Starting at $379.99 / £269 for 256GB model, this is a great-value smartphone — although compromises have been made to keep the price low.
4.5/5
Design
A smart, minimalist design makes the TCL NXTPAPER 70 Pro look more expensive than it is. The matte display is easily the highlight.
4.5/5
Performance
The TCL NXTPAPER 70 Pro offers solid performance for its price, but keep your expectations in check — this is a budget phone, after all. Reading on the TCL NXTPAPER 70 Pro’s unique screen is an absolute joy, however.
3.5/5
Battery life
The TCL NXTPAPER 70 Pro's battery life is good, and with careful use you could get two days of use on a single charge. The slower charge speed and lack of wireless charging is disappointing, however; but considering the price, it's understandable.
3.5/5
Buy it if…
You read a lot on your phone
The TCL NXTPAPER 70 Pro's screen is ideal for reading, with its paper-like display making it comfortable to read everything from ebooks and digital comics, to websites and apps.View Deal
You don’t want to spend a lot of money
Starting at just $379.99 / £269 for the 256GB model, the TCL NXTPAPER 70 Pro is a great alternative for people who don’t want to shell out the high prices for flagship smartphones.View Deal
You only take the odd photo
The 50MP camera offers a decent amount of detail and vibrancy for day-to-day snaps, but if photography is a passion, then you won’t be that impressed by the TCL NXTPAPER 70 Pro's camera performance .View Deal
You want a phone for mainly watching films and playing games on
The TCL NXTPAPER 70 Pro paper-like screen is fine for watching films, TV shows and playing games, but for the best image quality you’ll want a more traditional smartphone.View Deal
Photography is important to you
The camera on the TCL NXTPAPER 70 Pro is fine for basic snaps, but will quickly show its limitations to those who are more ambitious with their photography.View Deal
You like the convenience of wireless charging
The TCL NXTPAPER 70 Pro doesn't support wireless charging, and it was very much missed during the testing period. If you have wireless chargers dotted around your home (and vehicle), then you’ll want to pay a bit more for a phone that can make use of them.View Deal
Xiaomi Redmi Note 15 Pro 5G
This is another budget phone for around the same price, with a bright display and surprisingly impressive cameras. If you want a cheap phone for watching films, the more traditional (yet still bright and vibrant) screen of the Xiaomi Redmi Note 15 Pro 5G is better suited.
Read our full Xiaomi Redmi Note 15 Pro 5G reviewView Deal
Google Pixel 10a
Starting at $499 / £499 / AU$849, the Google Pixel 10a is slightly more expensive than the TCL NXTPAPER 70 Pro, but you get longer battery life and better photo quality, so if those are two important priorities for you, then it’s worth the extra investment. As a Pixel handset from Google, Android comes with very little extra bloat, which is another strong selling point.
Read our full Google Pixel 10a reviewView Deal
(Image credit: Future)How I tested the TCL NXTPAPER 70 ProDue to a busy few months, I’ve been using the TCL NXTPAPER 70 Pro on and off as my main phone during the time I’ve had it. This is longer than our usual testing process, and meant I got a good idea of overall performance of the handset.
I used the TCL NXTPAPER 70 Pro not just to make calls and browse the internet, but also loaded several ebooks to read using the handset’s variety of screen modes. I also read digital comics via the Android versions of the Marvel Unlimited and Kindle apps. I also took photos and watched videos.
The TCL NXTPAPER 70 Pro is an affordable smartphone at $379.99 / £269 for the 256GB device. The US market also gets a cheaper 128GB model.
Its design is sleek and attractive, giving the air of a phone that costs a far more. The biggest selling point is the NXTPAPER 70 Pro's large 6.9in screen with epaper-like NXTPAPER 4.0 display technology.
The tech gives the screen a matte finish that minimises reflections and glare, and makes the TCL NXTPAPER 70 Pro extremely comfortable to read and work on. It features a variety of options for reducing eye-strain, and you can turn on various display modes with just a quick flick of a switch. These include Color Paper mode, which is perfect for reading digital comics, and Ink Paper mode, a black-and-white paper-like setting that’s great for ebooks and text-heavy websites.
(Image credit: Future)As an avid reader of both books and comics, I was a huge fan of the TCL NXTPAPER 70 Pro's screen — but there are a few compromises which meant it wasn't a device I'd be happy to switch to full-time. Performance is fine, but multitasking with lots of different apps open at once isn’t as smooth as it is on devices with more RAM (the TCL NXTPAPER 70 Pro comes with 8GB, although that can be expanded later). In addition, taking photos at the main camera's maximum 50MP resolution introduces a slight pause as the phone processes your images.
Speaking of the camera, it does a decent job of taking high-resolution shots by default, but the digital zoom quickly displays its limits when you try zooming in too much. For day-to-day shots, though, it's fine; but anyone wanting to be more ambitious with their photography should look elsewhere.
(Image credit: Future)TCL has made quite a big deal of the TCL NXTPAPER 70 Pro's AI features, and while it’s good to see the tech included in a budget device, I didn’t have much cause to use features such as live transcription, or AI-assisted note-taking. However, I can imagine they'll be useful for some, especially for accessibility — and on a positive note, they're not obnoxiously pushed onto you like they can be by other brands.
Overall, the TCL NXTPAPER 70 Pro is a stylish and dependable budget smartphone that offers plenty for the price, but its performance compromises can niggle. Nevertheless, its NXTPAPER 4.0 screen really is a standout feature, so for voracious readers, it could be their dream phone.
Meanwhile, I’m looking forward to seeing NXTPAPER 4.0 come to more powerful phones from TCL.
TCL NXTPAPER 70 Pro review: Price & release dateIt might be because I’ve become used to the ever-increasing price of flagship phones from the likes of Apple and Samsung, but when I was told the price of the TCL NXTPAPER 70 Pro, I was genuinely impressed. For a smartphone with the word "Pro" in its name, a price of less than $400 is pleasing.
In the US and UK, the TCL NXTPAPER 70 Pro model with 256GB storage costs $379.99 / £269, which is a fair bit less than our current best cheap phone pick – the Samsung Galaxy A56 at $499 / £499. It actually undercuts pretty much all of the phones in that list, including the Poco X8 Pro Max, which starts at $469 / £469.
While a rock-bottom price isn’t the only measure of a good budget, in these financially uncertain times it’s certainly a major selling poin. If the TCL NXTPAPER 70 Pro can also match this with stellar performance, we could see a new budget champion.
In the UK, you can pick up the TCL NXTPAPER 70 Pro with a protective slipcase and stylus from Amazon for £369.98.
And for US customers, there's an even cheaper 128GB option that sells for $329.99. People in other markets might be disappointed to learn this isn't an option in their territory, but personally, I wouldn’t recommend opting for less than 256GB storage these days, especially if you take a lot of photos. Having said that, the TCL NXTPAPER 70 Pro supports microSD cards, so you can expand the storage up to 2TB.
Currently, if you’re in the US and buy the TCL NXTPAPER 70 Pro from TCL’s official store, you also get a free pair of TCL CrystalClip earbuds worth $95.99, making this already great-value handset even better value for money.
Storage
US Price
UK Price
256GB
$379.99
£269
512GB
$429.99
£319
Dimensions:
169.4 x 80.05 x 7.98mm
Weight:
208g
Internal screen
6.9-inch NXTPAPER 4.0 display
Resolution:
1080 x 2340
Refresh rate:
120Hz
Peak brightness:
900 nits
CPU:
MediaTek Dimensity 7300
RAM:
8GB
Storage:
128GB / 256GB / 512GB
OS:
Android 16
Main cameras:
50MP 1.0UM OIS+8MP main
Selfie camera:
32MP
Battery:
5,200mAh
Charging:
33W
Colors:
Stellar Blue, Nebula Gold
(Image credit: Future)TCL NXTPAPER 70 Pro review: Design
Design-wise, the TCL NXTPAPER 70 Pro certainly doesn’t feel budget. Available in two colors, Stellar Blue (the model I was sent) and Nebula Gold, the large 6.9-inch screen, thin bezels and modern design give the TCL NXTPAPER 70 Pro the appearance of a much more expensive phone at first glance.
The thin bezels keep the focus where it belongs: on the display. That's no bad thing, thanks to TCL's innovative NXTPAPER 4.0 technology, which gives the screen a matte, e-reader-like finish (more on that shortly). They also help prevent the TCL NXTPAPER 70 Pro from feeling even larger than it is — but make no mistake, this is a big phone, and it will stick out of plenty of pockets.
On the bottom of the TCL NXTPAPER 70 Pro is a USB-C port for charging, as well as a slot for your SIM card and SD card for expanding storage. On the right-hand side of the phone are the standard volume rocker, a power button with built-in fingerprint reader, and a unique NXTPAPER key. The latter is actually a physical switch, similar to the one found on older iPhones, to put the device into "Do not disturb" mode. Here, though, the NXTPAPER key switches been display modes: Color Paper mode, Ink Paper mode and Max Ink mode.
(Image credit: Future)You can choose the mode each time, or set a default mode to turn on instantly when you flick the switch. A ripple transition effect plays as the screen switches to the mode you’ve chosen – I quite like it, but if you switch mode regularly, I can see how the animation might get a bit annoying.
I’ll go into each mode in a moment, but the default setting’s matte effect and vibrant colors makes the TCL NXTPAPER 70 Pro stand out from rivals, especially those that sell for a similar price — and the default wallpaper, which is a painting of flowers, looks fantastic.
(Image credit: Future)Overall, the TCL NXTPAPER 70 Pro's design — aside from its standout display — isn't revolutionary, but it doesn’t need to be. It's a well-built, attractive phone that looks and feels more premium than its affordable price suggests.
The TCL NXTPAPER 70 Pro’s design does a decent job of making you forget that this is a budget phone, then — but the specs don’t do such a good job. Don’t get me wrong: it works fine, but when you're coming from a flagship handset — even one that’s now a few years old — it's a bit of a wake-up call to keep your expectations in check.
Android 16 runs smoothly, and even when using the various screen modes, the phone is responsive, with no annoying full-screen refreshes of the type that happen with some ebook readers. The display's matte finish keeps images looking crisp, even at extreme viewing angles, with vibrant colors and no distracting reflections.
Turning the screen to Color Paper mode mutes the colors and drops the background wallpaper. It makes the TCL NXTPAPER 70 Pro more comfortable to use in low-light conditions, and preserves battery life, too.
(Image credit: Future)It works particularly well when reading comics (I tried it with Marvel Unlimited), as well as browsing the internet at night. The muted colors, paper-like display and lack of blue light mean a quick doomscroll before bed won't disrupt your sleep too much (although it doesn’t do anything for my general anxiety about the state of the world).
Impressively, the screen remains responsive, although rapidly scrolling through long passages of text causes the text to shift in colour slightly as it moves. You can watch videos, too, but you’ll want to switch back to normal mode for the best picture quality.
There’s also Ink Paper mode, which reduces colors to just black and white, removes the background wallpaper, and simplifies icons. This more basic mode is great for reading ebooks and websites; the interface is clean, easy to read, and free from distractions. It helps prolong battery life as well, yet still feels responsive.
Finally, there’s Max Ink mode, which limits the apps that can be run, futher extending battery life (with just 21% of battery life, the TCL NXTPAPER 70 Pro claimed to have around 46 hours left).
(Image credit: Future)The screen really is a treat, and if you don’t mind the impact on image quality, switching between modes is a great way to boost the battery life if you’re away from a power supply. I found reading websites particularly comfortable in Ink Paper mode — although for image- and video-heavy websites, you’ll probably want to switch to a color mode.
Color Paper mode is also excellent for reading digital comics. As an X-Men fan, I found the TCL NXTPAPER 70 Pro’s large paper-like display ideal for reading on Marvel Unlimited and Kindle. The matte finish dramatically reduces glare, and. unlike some early color e-readers I’ve tested, both apps remain as fast and responsive as they do on other smartphones.
So, Color Paper mode is great for those who wish to get through their large digital comic libraries while on long trips. Personally, I prefer reading the comics in the default display mode, as colors are more vibrant.
The TCL NXTPAPER 70 Pro overall performance is solid, and about what you’d expect for the price. I didn’t have any issues using any of my regular daily driver apps, and the games I tested ran perfectly fine as well — although, if you’re looking for a smartphone on which to mainly play games, you might want to look for a device with a standard display and more graphical power.
Powering the TCL NXTPAPER 70 Pro is a MediaTek Dimensity 7300, an octa-core processor with four performance and four efficiency cores. It can't match Qualcomm’s latest Snapdragon chips, but at this price it's hard to fault, delivering smooth everyday performance. The 8GB of RAM comfortably handles multitasking, although it doesn't feel quite as snappy as more expensive handsets with more memory. TCL does let you allocate up to 16GB of virtual RAM from the phone's storage, increasing the total to a very healthy 24GB, and proving a little more headroom for the future.
(Image credit: Future)The phone features two SIM card slots, and supports eSIM, and network speeds up to 5G. However, the TCL NXTPAPER 70 Pro only supports Wi-Fi 5, which is now quite outdated. It meant I couldn't take full advantage of my home router’s Wi-Fi 7 connectivity, and this led to a noticeable reduction in speed when using Wi-Fi.
To be fair to the TCL NXTPAPER 70 Pro, this was the only time its budget roots really showed.
The screen is definitely a standout feature for anyone who spends a lot of time reading on their phone. However, if you spend more time watching movies or playing games, a device with a more traditional display will be a better choice.
The TCL NXTPAPER 70 Pro features a 50MP rear camera with OIS (Optical Image Stabilization) and a 32MP front-facing camera. It also uses TCL’s own MuseFilm imaging technology, which the manufacturer says combines hardware and software enhancements to deliver more visually impressive photos.
I didn’t really notice much difference when comparing photos taken on similar phones. Having said that, images taken with the 50MP camera are bright, vibrant and full of detail.
While zooming in reveals some loss of sharpness, photos look impressive at full resolution, with even busy scenes retaining plenty of detail. If you’ve previously dismissed budget smartphones because of their lack of photo-taking prowess, then the TCL NXTPAPER 70 Pro proves that affordable handsets can deliver.
However, note that taking photos at the full 50MP resolution (which at the default 4:3 aspect ratio leads to image resolutions of 8192 × 6144) does put pressure on the TCL NXTPAPER 70 Pro’s hardware: there's a slight pause between pressing the shutter button and image capture (a message pops up asking you to hold the phone still while the image is being processed). It’s another reminder about the TCL NXTPAPER 70 Pro’s budget price, and while it didn’t appear to make any of the photos I took with moving subjects blurry, if you want to take a series of fast images, you’ll need to lower the resolution — or buy a more powerful phone.
Reducing the resolution speeds up the whole process, and when images are viewed on the phone’s screen they still look sharp. Viewing them on a larger screen, or printing them out, makes the reduced resolution more noticeable, though.
FutureFutureWhen shooting below the full 50MP resolution, the TCL offers up to 2x optical zoom and 10x digital zoom. However, pushing the digital zoom too far reveals the limitations of the hardware, with considerable loss in detail and the addition of image artefacts.
You can also switch to the ultra-wide lens, which produces some nice results, although it does occasionally introduce distortion around the edges. There’s also a macro setting for taking close-up shots, and while the results are fine, they lack detail.
(Image credit: Future)For best results, then, you’ll want to stick to the standard settings without zooming in.
(Image credit: Future)The front-facing camera captures good-quality selfies with plenty of detail, and there are plenty of settings to experiment with, including the often questionable "beauty" modes found on many smartphones.
Overall, photography isn't the TCL NXTPAPER 70 Pro's main strength, so it isn't for you if camera performance is a priority. However, for day-to-day snaps, it does the job.
The TCL NXTPAPER 70 Pro doesn’t have the largest battery, nor does it charge as quickly as other budget rivals, with its fast charging capped at 33W (the Xiaomi Redmi Note 15 Pro 5G can charge at 45W). Still, it powered up to 56% (from empty) after just 30 minutes.
During tests, the TCL NXTPAPER 70 Pro lasted well over a day of standard use with a single charge, and in our benchmark tests, it hit 10 hours and 55 minutes of continuous video playback. Turning on the Max Ink mode boosted battery life in the same tests by around 50 minutes.
Considering the limitations of Max Ink mode, I was expecting a bigger difference in battery life, but that could be a testament to how efficient the default screen mode is at prolonging battery life.
As with other phones around this price point, there’s no wireless charging support, which was a blow coming from a handset that has the ability to charge over wireless. If you’re not bothered about the tech, this won’t be an issue, but for people like myself who have wireless charging accessories (including in my car), it does limit the appeal of the TCL NXTPAPER 70 Pro.
Attribute
Notes
Score
Value
Starting at $379.99 / £269 for 256GB model, this is a great-value smartphone — although compromises have been made to keep the price low.
4.5/5
Design
A smart, minimalist design makes the TCL NXTPAPER 70 Pro look more expensive than it is. The matte display is easily the highlight.
4.5/5
Performance
The TCL NXTPAPER 70 Pro offers solid performance for its price, but keep your expectations in check — this is a budget phone, after all. Reading on the TCL NXTPAPER 70 Pro’s unique screen is an absolute joy, however.
3.5/5
Battery life
The TCL NXTPAPER 70 Pro's battery life is good, and with careful use you could get two days of use on a single charge. The slower charge speed and lack of wireless charging is disappointing, however; but considering the price, it's understandable.
3.5/5
Buy it if…
You read a lot on your phone
The TCL NXTPAPER 70 Pro's screen is ideal for reading, with its paper-like display making it comfortable to read everything from ebooks and digital comics, to websites and apps.View Deal
You don’t want to spend a lot of money
Starting at just $379.99 / £269 for the 256GB model, the TCL NXTPAPER 70 Pro is a great alternative for people who don’t want to shell out the high prices for flagship smartphones.View Deal
You only take the odd photo
The 50MP camera offers a decent amount of detail and vibrancy for day-to-day snaps, but if photography is a passion, then you won’t be that impressed by the TCL NXTPAPER 70 Pro's camera performance .View Deal
You want a phone for mainly watching films and playing games on
The TCL NXTPAPER 70 Pro paper-like screen is fine for watching films, TV shows and playing games, but for the best image quality you’ll want a more traditional smartphone.View Deal
Photography is important to you
The camera on the TCL NXTPAPER 70 Pro is fine for basic snaps, but will quickly show its limitations to those who are more ambitious with their photography.View Deal
You like the convenience of wireless charging
The TCL NXTPAPER 70 Pro doesn't support wireless charging, and it was very much missed during the testing period. If you have wireless chargers dotted around your home (and vehicle), then you’ll want to pay a bit more for a phone that can make use of them.View Deal
Xiaomi Redmi Note 15 Pro 5G
This is another budget phone for around the same price, with a bright display and surprisingly impressive cameras. If you want a cheap phone for watching films, the more traditional (yet still bright and vibrant) screen of the Xiaomi Redmi Note 15 Pro 5G is better suited.
Read our full Xiaomi Redmi Note 15 Pro 5G reviewView Deal
Google Pixel 10a
Starting at $499 / £499 / AU$849, the Google Pixel 10a is slightly more expensive than the TCL NXTPAPER 70 Pro, but you get longer battery life and better photo quality, so if those are two important priorities for you, then it’s worth the extra investment. As a Pixel handset from Google, Android comes with very little extra bloat, which is another strong selling point.
Read our full Google Pixel 10a reviewView Deal
(Image credit: Future)How I tested the TCL NXTPAPER 70 ProDue to a busy few months, I’ve been using the TCL NXTPAPER 70 Pro on and off as my main phone during the time I’ve had it. This is longer than our usual testing process, and meant I got a good idea of overall performance of the handset.
I used the TCL NXTPAPER 70 Pro not just to make calls and browse the internet, but also loaded several ebooks to read using the handset’s variety of screen modes. I also read digital comics via the Android versions of the Marvel Unlimited and Kindle apps. I also took photos and watched videos.
Swifts have nested in Jerusalem's Western Wall since biblical times. Now one Israeli paraglider is trying to save them.
(Image credit: Ruth Sherlock)
We're seeing brain-computer interfaces (BCI) continue to get more advanced and more practical, and Chinese company BrainCo has now announced another first: a BCI that enables robots to be controlled by thoughts.
As reported by the South China Morning Post, BrainCo says the system works through EEG (electroencephalogram) headsets worn by human operators, which translate neural activity into instructions for robots to follow.
Like other similar 'mind reading' devices, it's based on vast amounts of training data that associate specific neuron activity with specific commands as they're imagined in the brain. AI algorithms then manage the job of finding the right action for the right thought.
It's called the Brain-Controlled Robot AI Platform, and it was unveiled at the World Artificial Intelligence Conference (WAIC) in Shanghai —the biggest and most important AI tech event on the calendar in China.
Think it into realityYou might soon not even need to talk to a robot to get it working (Image credit: Shutterstock)BrainCo says that as well as being used to control robots, the system can also act as an interface to connect to robotic arms and other devices. A robotic arm could be instructed to pick up a cup through thoughts alone, for example.
As the Brain-Controlled Robot AI Platform becomes more widely used, it will also be collecting data — data that can then be applied to refine the underlying algorithms further. High-quality training data is currently one of the major bottlenecks in the industry.
"The embodied AI industry has made remarkable progress on what robots can do on their own," said Nyx He, a partner and senior vice-president at BrainCo. "We believe the next decisive frontier is about how robots understand the humans they work with."
With AI models continuing to get smarter and more sophisticated, this is going to feed into the 'physical AI' of robotics — giving these machines greater flexibility, more dexterity, and as we've seen here, thought-controlled inputs.
Russia launched 41 missiles and 125 attack drones across Ukraine overnight, according to the Ukrainian air force.
(Image credit: Efrem Lukatsky)
Just because you live in a small place doesn't mean it has to look or feel cramped. Interior designers share creative strategies to create the illusion of space that work for renters and small budgets.
(Image credit: Andee Tagle/NPR)
A famous Cuban dissident artist and musician, Luis Manuel Otero Alcántara, arrived in Miami on Saturday after being released from a five-year prison sentence on the condition that he leave his country.
(Image credit: David Santiago)
Type: Tower
Speeds: 5
Oscillation: horizontal 30, 60, or 90 degrees
Vertical tilt: each blade can rotate 180 degrees
Dimensions (H x W x D): 32.6 x 27.9 x 14.6 inches / 82.8 x 70.8 x 37cm (blades horizontal), 43.1 x 12.6 x 14.6 inches / 109.5 x 32 x 37cm (blades vertical)
Controls: power, speed, timer, plus remote control
Noise level: 36dB to 58dB
The Dimplex FlexBlade isn't your traditional tower fan, although you can use it as one. It's bladeless, Dyson-style, so it delivers smooth airflow without the buffeting of a bladed fan.
The design is very flexible, enabling you to use it as a T-shaped floor fan, a vertical pedestal fan, or any angle in between. Air comes out of two wide vents, and those vents can be rotated 90 degrees in either direction so that you can have wider airflow or cool two areas simultaneously. That could be useful in shared spaces such as offices, although as the fan's stand isn't telescopic, one of you will get a cool back while the other gets cool legs.
The FlexBlade looks like it'll be extremely powerful but the strength of airflow drops off quickly with distance, so at full power with both blades pointing forward it felt like a breeze at three meters. It's fairly quiet, though, and delivers similar airflow and noise levels to our trusty Dyson Hot+Cool fan.
This isn't the most powerful floor fan we've tested by any means but it does move a decent amount of air and that flexible design makes it useful for multiple applications, such as the bedroom at night and home office or living room during the day.
The FlexBlade is very wide in horizontal mode but you can angle it through 90 degrees. (Image credit: Future)Dimplex FlexBlade fan review: price and availabilityWith fortunate timing, the FlexBlade launched during a month of record-breaking heat in the UK. The Dimplex FlexBlade Multi-Directional Bladeless Fan launched in the UK in June 2026 with a recommended retail price of £199.99 (about $160 / AU$230). It isn't currently available in Australia, and Dimplex doesn't sell its home cooling products in the US.
I'm writing this as more really hot weather is toasting the UK, so I need to temper my usual buying advice with the fact that for many people the only criteria for a fan right now are 'will it cool me down?' and 'is it in stock?', to which the answers are yes and at the time of writing, yes. But I would point out that Dimplex dropped the price to just £123 for Amazon Prime Day 2026, so if you're not reading this in sweltering temperatures you can expect similar discounts in the cooler months when demand sags.
Value for money: 4/5
The two vent arms can be manually rotated independently to blow air in two directions (Image credit: Future)Dimplex FlexBlade fan review: designI can't talk about the design of the Dimplex FlexBlade without addressing the elephant in the room, or rather the Shark: the Shark TurboBlade cooling fan, which seems to have inspired Dimplex's designers. Both have a propeller-esque T-shaped design with two independent, rotatable bladeless vents. Both can pivot from horizontal to vertical mode. Both project air up to 20 meters. Both have a magnetic remote control. Both have a quiet sleep mode. And both have multiple speed settings: 10 for the Shark and five for the Dimplex. I think the Shark is a little nicer looking, more flexible thanks to its telescopic pole and less top-heavy — the Dimplex wobbles a bit when you touch it — but it's also £50 (about $70 / AU$100) more expensive when it's not in the sales.
The FlexBlade arrives in six parts: the main motor unit, a two-part riser with a heavy base, and the two vents. It's simple and quick to put together – the only tool required is the provided Allen key for securing the base — and the remote attaches magnetically to the top of the unit so it's always handy.
The FlexBlade can be angled horizontally, vertically or in between, and it oscillates up to 90 degrees. (Image credit: Future)Controls are kept to a minimum on the fan itself: power/speed, oscillation and timer. The remote is simple too, with the addition of dedicated speed up/down buttons, a full speed button and a sleep mode button to put the fan into its lowest power state overnight.
The T-shaped, two-vent design delivers a lot of flexibility. You can't adjust the 1.1m height of the main motor unit but you can position the two blades vertically, horizontally or in between, and you can rotate them independently up to 180 degrees to push air in two opposite directions at once. The rotating blades are a little stiff but not awkwardly so. The blade adjustments are manual but the fan itself can oscillate automatically, delivering horizontal oscillation of 30, 60 or 90 degrees.
Design: 4/5
The on-board controls are simple: timer, power/speed and oscillation.FutureThe illuminated dots on the front show the current fan speed. There are five settings.FutureDimplex FlexBlade fan review: performanceThe Dimplex promises airflow in excess of 6m/s with a 20-meter range and 90-degree sweep, but at full power with both blades pointed directly at me from three meters away it felt like a very mild breeze. At that distance and with the blades arranged vertically the remote control was very hit and miss.
The FlexBlade comes with a straightforward remote control. (Image credit: Future)The Dimplex is a bit quieter than the Shark – Dimplex's figures say it's 36dB at its lowest setting and 58dB at full pelt, compared to the Shark's 40dB to 66dB – but it still gets loud at higher fan speeds with the telltale whoosh we've come to expect from bladeless fans. It's not Dyson hand dryer loud at full power, though; it's more like a hair dryer on a very low setting.
I compared the Dimplex's airflow to two other room fans: a Dyson Pure Hot + Cool and a Meaco Sefte 10-inch air circulator. Both the Dimplex and the Dyson are bladeless and moved air a similar distance with similar noise levels, although the Dyson's wider diffusion mode made its output quieter at the expense of focused air. But the Meaco was quieter than both and delivered significantly stronger airflow across a large living room.
Performance: 3/5
The FlexBlade has a magnetic perch to keep the remote handy. (Image credit: Future)Dimplex FlexBlade fan review: should you buy it?Value
Previous Prime Day pricing suggests that the list price is a little high.
3/5
Design
It looks very like a Shark, but it's well made and feels solid; controls are straightforward and the flexible airflow is clever.
4/5
Performance
Not as powerful as it looks, and venting in two directions reduces airflow in each direction.
3/5
Buy it if...You like to share
Unlike traditional fans the FlexBlade can cool in two directions simultaneously with or without oscillation.
You like planes
The twin-blade design resembles a propellor or wings, and arranged vertically it looks like something from a space programme.
You need flexibility
It's easy to direct air exactly where you need it to go.View Deal
Don't buy it if...You want all the airflow
Bi-directional venting inevitably mean splitting the output in two.
Your space is big
An air circulator is likely to do a better job cooling large rooms and similarly big spaces.
You like a bargain
The Dimplex FlexBlade was much cheaper during Prime Day 2026.
Dimplex FlexBlade fan review: also considerMeaco Sefte 8in Portable Air Circulator
The Shark TurboBlade is the closest rival in terms of this kind of design. But if you don't need the bi-directional air of the Dimplex or Shark I'm an evangelist for Meaco's Sefte table and pedestal air circulators, of which I've bought three so far for my family. They're astonishingly quiet, very powerful and oscillate both vertically and horizontally to really move air around the room.
Unfortunately the big ones are sold out and apparently won't be back in stock until October 2026. However, there is an eight-inch rechargeable model with a list price of £79.99 (about $110 / AU$150) that's in stock at the time of writing. It pushes air up to 17 meters and runs as quietly as 27dB.View Deal
Dimplex FlexBlade fan review: how we testedI tested the FlexBlade for a week at my home in Scotland during July 2026's UK heatwave. Scotland escaped the worst, because while England boiled the temperatures here were milder, peaking at 27ºC / 80.6ºF. That's hot enough to need a powerful fan but not so hot that I was crawling into my freezer or taking cold showers fully clothed.
I work from home in a long downstairs room that gets sunshine from both directions during the day, and that means it's often warmer inside than out – especially in the evening, as UK homes are typically made to retain heat rather than reflect it. I tested the FlexBlade as a daytime fan in my living room/office and as a bedroom fan overnight to see if it could keep me cool during the day, cool my family in the evening and help me sleep better at night.
First tested July 2026