The 8849 Tank Pad Ultra arrives as the company's most ambitious device to date. It builds on the original Tank Pad's projector concept and refines it considerably. Where the first Tank Pad offered a dim 100-lumen DLP unit running at sub-HD resolution, the Ultra steps up to 260 lumens and native 1920x1080 output. That is a 2.6x improvement in brightness in one generation, and it matters enormously in practice.
The hardware underneath is a MediaTek Dimensity 8200 paired with 16GB of LPDDR5 RAM and 512GB of storage. This is not the fastest platform available in 2026, but it is more than sufficient for field work, document management, and media playback. Android 15 ships out of the box, which is a refreshing improvement over the Android 14 found on many rivals.
The camera cluster is genuinely impressive for a rugged device. A Sony IMX766 50MP main sensor sits alongside a 64MP night-vision camera using an OmniVision OV64B sensor backed by four infrared LEDs. The 32MP front camera uses a Sony IMX616. This is a meaningful step beyond the dual-camera arrangements on most competing rugged tablets.
Battery capacity is the headline stat: 23,400mAh. 8849 claims this is 11% larger than its predecessor. Charging speed is 66W, which is serviceable but falls well short of the 120W found on the recently launched Ulefone Armor Pad 5 Ultra. At that battery capacity, 66W takes over two hours to fully recharge.
The body measures 268.3 x 170.3 x 24mm and weighs 1.345kg. It is a heavy device, though it sits below the Ulefone Armor Pad 5 Ultra's 1.6kg. The integrated handle doubles as a kickstand and is the most practical design element here for outdoor projection use.
IP68 and IP69K certification allows for both submersion and high-pressure water jets. That is the expected baseline for a device at this price and positioning. A 4-metre laser rangefinder and an 800-lumen camping light round out the utility toolkit.
In the annals of tablets that came with a projector, this is clearly one of the best rugged tablets so far.
(Image credit: Mark Pickavance)8849 TANK Pad Ultra: price and availabilityThe Tank Pad Ultra is available in a range of territories and regions via the official 8849tech website here.
At $689.99, this rugged tablet is priced way below the Ulefone Armor Pad 5 Ultra, which commands closer to $799. It sits significantly above the original Tank Pad's sub-$400 positioning. The price increase reflects genuine hardware improvements rather than marketing inflation, particularly in the projector and camera departments.
UK pricing is £525.84 and in the EU its €604.79. There is a summer sale for US, EU, UK and CA customers with a further $20 reduction until the 12th of June.
Currently, this machine isn't on Amazon.com, but given that everything else 8849-branded is, it's probably only a matter of time before it is. The hardware is also sold by AliExpress, but it was more expensive than buying it directly for whatever reason.
Given the specification, even if the TANK Pad Ultra isn't exactly cheap, it offers the best value for a tablet with a projector.
(Image credit: Mark Pickavance)Item
Spec
CPU:
MediaTek Dimensity 8200
GPU:
ARM Mali-G610 MC6
NPU:
MediaTek APU 580
RAM:
16GB LPDDR5
Storage:
512GB UFS 3.1 + dedicated microSD slot (up to 2TB)
Screen:
10.95-inch IPS LCD
Resolution:
1200 x 1920 (FHD+) pixels
SIM:
2x Nano SIM + TF (SD-XC)
Weight:
1345 g
Dimensions:
268.3 × 170.3 × 23.6 mm
Rugged Spec:
IP68 & IP69K rugged (water/dust/shock resistant)
Rear cameras:
50MP Sony IMX766 (primary) + 64MP OmniVision OV64B (night vision, 4x IR LEDs)
Front camera:
32 MP (Sony IMX616, fixed focus)
Networking:
5G NR, dual-band Wi-Fi, Bluetooth 5.3, NFC, FM radio, USB-C (OTG), 3.5mm headphone jack
Projector:
DLP, 260 lumens, 1920x1080, autofocus, 0.5-4m
Torch/Lamp:
800-lumen camping light, dual warning lights (red/blue) with sound simulation
OS:
Android 15
Biometrics:
Side-mounted fingerprint sensor
Battery:
23400 mAh (66W wired, 10W reverse charge)
Colours:
Black
8849 TANK Pad Ultra: designOn paper, the Tank Pad Ultra follows the established formula for rugged tablets. The body is thick and reinforced, with corner bumpers and rubberised edges. At 24mm deep it is not a device that slips into a jacket pocket unless you’re a friendly giant. The intention is clear: this is business equipment, not a lifestyle accessory.
The integrated handle on the rear is a practical touch. It locks flat against the body for carrying and swings out to serve as a kickstand for projection or media use. For a device this heavy, the handle is not an option, it is a functional necessity.
Which is why I was annoyed when I couldn’t get the one that came with my tablet to fit correctly. The stand is metal and is pinned to the TANK Pad Ultra by a single large bolt that has a straight slot that a ‘8849 coin’ is provided to tighten. On mine, it would never tighten enough to fully engage the stand, making it loose.
Initially, I thought this was because of an excessive amount of blue thread-locker on the bolt, but after I’d scraped that off and realised it didn’t fix the problem, I concluded the thread in the tablet was poorly manufactured.
I didn’t have the thread cutter to fix this handy, so I filed the bolt down a little to make it extend less, and it fitted much better. Not sure why 8849 quality assurance didn’t notice this, but they need to make sure that they do in the future.
(Image credit: Mark Pickavance)One oddity about the stand is that it has a square profile that engages, allowing for four possible ways to attach it. Except that only one direction works properly, because the others interfere either with the camera cluster or the camping light. Perhaps a polariser is needed to help users put it on correctly?
The top edge houses the volume keys and two PPT buttons in roughly the middle of that side, with the projector mounted to the left. The power button with an integrated fingerprint scanner is on the left side, where I kept accidentally hitting it while trying to take photos.
I tried to set that button up with fingerprint unlock and failed miserably. When you enter the fingerprint training mode, it tells you to firmly press the button, and when you do, the tablet turns off. Thankfully, the face unlock works much better, so it’s hardly a deal breaker.
The SIM tray is on the lower edge, and the USB-C and audio jack ports are under a rubber plug on the right side.
What’s missing here is any pogo pin pads or extra USB port that could be used to connect the tablet to a vehicle cradle. Which, when you have a tablet that’s 1345 g, you would reasonably expect to exist. There isn’t one, which explains why the designers never considered supporting that functionality.
Overall, the layout of this tablet isn’t the best I’ve seen, but most people could probably adapt to it.
(Image credit: Mark Pickavance)Design score: 3.5/5
8849 TANK Pad Ultra: hardwareThe Dimensity 8200 is a solid midrange to upper-midrange platform. Built on a 4nm process, it delivers capable performance for multitasking, Android gaming, and field software use. It is not the Dimensity 9000 series or a Snapdragon 8 Gen equivalent, and buyers with heavy sustained workloads should note the distinction. For the use cases this device targets, it is more than adequate and a step up from the Dimensity 7400X that Ulefone used in its most recent design.
For no logical reason, rugged tablet makers seem to think decent processors or camera sensors aren’t required, when they’re as critical as they are in phones.
Sixteen gigabytes of LPDDR5 RAM is generous. Combined with the expandable storage via microSD, the Tank Pad Ultra avoids the storage cliff that afflicts cheaper rugged tablets.
But it's the DLP projector that is the engineering centrepiece in this design. At 260 lumens, it is 2.6 times brighter than the original Tank Pad's 100-lumen unit. Auto-focus handles throw distances between 0.5 and 4 metres. A micro-ranging laser assists the focus calibration for precise image sharpness. The native output resolution of 1920x1080 is a substantial step up from the 854x480 of the original device, and better than the 960 x 540 projector on the Ulefone Armor Pad 5 Ultra.
My only issue with the projector is that 8849 didn’t implement a low-throw solution where the tablet could be flat on a desk and still project an image on the wall. With this design, you need to use the stand or a pile of books to elevate the tablet to a height where the projection will work.
(Image credit: Mark Pickavance)The 23,400mAh battery is enormous, even if some rugged tablets have even more. Runtime estimates in the field will depend heavily on whether the projector, camping light, and 5G radio are active simultaneously. With the projector running, expect significantly reduced endurance versus a typical standby or browsing scenario.
One last special feature of this tablet is the GPS solution. It uses dual frequencies L1+L5 GPS for more precise positioning, in theory. I've not seen this in a rugged tablet before, and it could be genuinely useful for those flying drones or doing surveys. In my testing, it did seem marginally more accurate than the GPS in a typical phone.
The 8849 Tank Pad Ultra has three cameras:
Rear cameras: 50MP Sony IMX766 , 64MP Omnivision OV64B1B Sensor (Night Vision)
Front camera: 32MP Sony IMX616
The camera configuration is one of the Tank Pad Ultra's stronger arguments over rivals. Most rugged tablets treat imaging as an afterthought. 8849 has invested meaningfully here.
The main camera uses a Sony IMX766 sensor at 50MP. This is the same sensor found in numerous premium Android smartphones, so expectations for image quality are reasonably well established. The large 1/1.56-inch format and all-pixel autofocus should deliver solid results in good light.
The night-vision camera is the headline differentiator. The 64MP OmniVision OV64B sensor is backed by four infrared LEDs and a dual-tone LED flash capable of 1.5A output. 8849 claims usable images in near-total darkness. This is genuinely useful for inspection work, security documentation, or field work in unlit environments.
The 32MP Sony IMX616 front camera is well specified for video calls and document scanning. For remote workers filing from a site office, the quality here matters more than it might for a consumer device.
Looking through my examples, the rear camera on this tablet produces some excellent results. The colour is accurate and not oversaturated, the edges of objects are crisp, and even the sky avoids being blown out. Using editing tools, it’s easy to get extra detail out of shadows and crop without making images appear blocky.
And, the 64MP Omnivision OV64B1B is one of the best choices for a night vision sensor, currently.
There are limited special photo modes, but you do get timelapse, super resolution, and QR codes, and there is a PRO mode. Video capture has scene modes and a full spectrum of resolutions from VGA up to 4K.
The only way this could get much better is if the optics had a proper zoom and not a digital one, but relatively few phones or tablets have that feature.
The only blot here is that 8849 wouldn’t pay for Widevine L1 encryption, so the best resolution you can stream from major providers is 480P, even if the screen would handle 1080p easily. Unfortunate, but a predictable limitation.
That point aside, this is one of the best camera solutions on a rugged tablet I’ve encountered, and for those doing surveys or wanting to capture property or vehicle damage, the provided tools are more than most will realistically need.
(Image credit: Mark Pickavance)8849 TANK Pad Ultra Camera samplesMark PickavanceMark PickavanceMark PickavanceMark PickavanceMark PickavanceMark PickavanceMark PickavanceMark PickavanceMark PickavanceMark PickavanceMark PickavanceMark PickavanceMark PickavanceMark PickavanceTablet
8849 Tank Pad Ultra
UleFone Armor Pad 5 Ultra
SoC
MediaTek Dimensity 8200
MediaTek Dimensity 7400X
GPU
ARM Mali-G610 MC6
ARM Mali-G615 MC2
Mem
16GB/512GB
12GB/512GB
Weight
1345 g
1,600g
Battery Capacity
mAh
23,400
24,200
Geekbench
Single
1254
1047
Multi
3885
2900
OpenCL
4094
3022
Vulkan
4632
3046
PCMark
3.0 Score
15276
12199
Battery
30h 43m
28h 27 min
Charge 30
%
25%
27%
Passmark
Score
16894
13661
CPU
8413
6788
3DMark
Slingshot OGL
7711
6578
Slingshot Ex. OGL
Maxed
5477
Slingshot Ex. Vulkan
Maxed
5156
Wildlife
6280
3555
The Dimensity 8200 platform performs comfortably in daily use. Android 15 runs without the stuttering or lag that can affect less powerful rugged tablets. Multitasking between field apps, maps, and documents is smooth.
Gaming performance is functional rather than flagship. The Mali-G610 MC6 GPU handles lighter titles well. Sustained gaming or graphics-intensive applications will cause throttling, as is typical for this class of chip under prolonged load.
The projector introduces a notable power draw. Thermal management under combined projector and processing load is an area worth monitoring in extended field scenarios. The device body will warm noticeably during sustained projection.
If we compare the 8200 with the 7400X that the Ulefone tablet uses, this SoC is roughly 25% quicker across the board, and better than that in graphics performance.
However, with great performance comes even greater power consumption. And, while the battery life of the machine looks good at 30 hours and 43 minutes, there is a caveat that the Ulefone device still had 27% of its battery unused when the benchmark aborted. Where the 8849 machine only had 5%, therefore the win should go to the Ulefone.
That said, this is more than enough capacity for most uses, and if curated, a running time of more than five days is easily within reach.
For field engineers, survey teams, and outdoor professionals who project content regularly and need the clearest image possible from an integrated device, the Tank Pad Ultra earns a confident recommendation. For everyone else, the 8849 Tank Pad Ultra is the current high-water mark for built-in pico projection in a rugged tablet.
The leap from 100 lumens and 854x480 to 260 lumens and native 1080p is a generational step, not an incremental one. Add a Sony sensor main camera, a 64MP night-vision unit, a laser rangefinder, and a 23,400mAh battery at $690, and the value proposition is difficult to argue against.
The shortcomings are real but predictable. Sixty-six watts of charging is slow for a battery this large, even if it can manage a complete cycle in two hours. The device is heavy and thick by any standard other than the rugged-tablet category it occupies. The Dimensity 8200, while capable, is not a premium 2026 platform, even if it’s the exception to the rule that rugged tablets are typically underpowered.
Against the Ulefone Armor Pad 5 Ultra, its most direct rival, the Tank Pad Ultra wins on projector brightness, projector resolution, SoC power, weight and price. It loses on charging speed and the dual-floodlight provision. Which device wins depends entirely on which compromises suit your workflow, and how tight your budget is.
Should I buy a 8849 TANK Pad Ultra?8849 TANK Pad Ultra Score CardAttributes
Notes
Rating
Value
Reasonable cost for an exceptional feature set
4/5
Design
Heavy and thick, with an awkward stand
3.5/5
Hardware
Modern SoC, lots of RAM and storage, and a bright projector
4.5/5
Camera
Decent sensor delivers good results
4/5
Performance
Powerful, power efficient and excellent battery life
4.5/5
Overall
Not cheap or light, but excellent value
4.5/5
Buy it if...You need a projector on a tablet
At 260 lumens with native 1080p output, nothing else in this class comes close.
You work in low light or complete darkness
If night-vision imaging is part of your workflow, then the 64MP infrared camera is a genuine professional tool for inspections, security, and low-light documentation.
Weight and portability are priorities
At 1.345kg and 24mm thick, this is field equipment rather than a general-purpose tablet.
Charging speed is critical
The 66W limit is slow for a battery this size. The opposition's 120W system is a substantial real-world advantage if you need to charge and go. View Deal
Ulefone Armor Pad 5 Ultra
A 200-lumen DLP projector, 120W charging, heavier at 1.6kg, but with dual 1000-lumen floodlights and auto-keystone correction. The issue here is that this tablet is more expensive, while in other respects having a lower specification than the 8849 TANK Pad Ultra.
Read my full review of the Ulefone Armor Pad 5 Ultra here.
For more ruggedized devices, we've reviewed the best rugged phones, the best rugged laptops and the best rugged hard drives
Size: 102.7 × 64.0 × 7.85 mm (excluding button height)
Weight: 96.0 g
Battery: 2100 mAh
Formats: Up to PCM 768 kHz/32 bit, DSD512 (USB-C)
Max Output @16.5 Ω: 180 mW (balanced)
The Khadas Tea Pro headphone amplifier is a slim and lightweight external DAC/amp that works across most devices — iOS, Android, Mac, Windows and Linux — and is particularly good for smartphones with MagSafe or magnetic cases.
The Tea Pro connects via USB-C and delivers both 4.4mm balanced and 3.5mm stereo outputs, with support for up to 768kHz PCM and DSD512 audio. It also has Bluetooth 5.4 input with aptX HD, aptX Adaptive and LDAC as well as the obligatory SBC and AAC. The integrated battery promises up to 8 hours of CD quality listening over USB-C and 11 hours using AAC on Bluetooth.
Although there's Bluetooth on board at up to 96kHz PCM, for best results you want to use this device as a wired DAC/amp. The Bluetooth performance isn't bad by any means, but the Tea Pro delivers higher resolution audio via USB-C.
FiiO TT13 review: price and release dateThe Khadas Tea Pro was launched in August 2025 with a recommended price tag of $199 / £199 (about AU$375) and is available with a choice of two cables: USB-C to USB-C, or Lightning to USB-C for older iPhones and iPads. Although it's twice the price of the original and well-received Tea it's a very significant upgrade with significantly higher sound quality, better Bluetooth, an integrated display and more headphone options.
Khadas Tea Pro review: featuresThe Tea Pro has both 4.4mm balanced and 3.5mm headphone outputs. (Image credit: Future)Although it's compatible with almost anything with a USB port, the Tea Pro is clearly intended for MagSafe iPhones (iPhone 12 onwards) or phones in magnetic cases. That enables it to clip securely to the back of your phone, and it's a strong connection both directly and through a compatible phone case.
There are two headphone jacks here: a 4.4mm balanced output delivering up to 180mW at 16.5 Ω, and a 3.5mm jack putting out up to 100mW at 16.5 Ω. There's also a built-in microphone for voice calling. If you have headphones with their own mic connected to the 3.5mm jack, the headphone mic will take precedence over the Tea Pro's mic.
The ESS ES9039Q2M DAC supports sample rates of up to 768kHz PCM and DSD512, with a signal to noise ratio of up to 122dB. A Qualcomm QCC5181 takes care of the wireless features, with support for SBC / AAC / aptX / aptX Adaptive / aptX HD / LDAC over Bluetooth 5.4.
There are seven EQ presets for different musical genres, and you can also set your own EQ via the 10-band custom EQ. That delivers adjustable gain from -12dB to +12dB.
The internal battery is 2,100mAh and promises up to 11 hours of listening depending on the audio format you're using: 11 hours with AAC over Bluetooth and 8 hours of CD audio over USB-C. The Tea Pro can also recharge from your phone when its battery is low if you enable Device Charging in its settings menu.
Features score: 5 / 5
Khadas Tea Pro review: sound quality Don't let that huge glass area fool you: the Tea Pro's display is tiny. (Image credit: Future)The Tea Pro delivers a neutral sound, and with high gain on it delivered an impressively propulsive performance on my open-back BeyerDynamics; I'd have liked to drive them a little louder but there's more than enough power for sensible listening levels. Bass is generally clear and well defined and highs are airy without being harsh, and things only started to get uncomfortable when both iPhone and Tea Pro were at their highest volume levels on very bright or bassy tracks.
As fun as the Tea Pro is over Bluetooth, it's better still with a USB-C connection. It's louder, more defined and more spacious, with the likes of Robyn's Dopamine delivering more punch than over wireless. There's a nice wide soundstage, with tracks like U2's remastered Zoo Station sounding suitably widescreen and Talk Talk's New Grass delivering impressive airiness.
The Tea Pro is very good for a portable DAC/amp, although I did notice a difference on tracks such as Little Simz and Obongjayar's Point and Kill that showed up the relative lack of headroom compared to a desktop device: on my desktop DAC/amp the serpentine bass is noticeably clearer and more distinct, the whole track feeling much more airy, whereas on the Tea Pro the low end was less defined and the track a little boxy. I found that the on-board EQ presets made that more apparent, dulling the sound. I much preferred leaving the EQ off altogether on my better headphones, although I did need to cut the highs for IEM listening to reduce the harshness they're prone to.
Sound quality: 4 / 5
Khadas Tea Pro review: designThe Tea Pro looks and feels expensive thanks to a mix of aluminum and black glass. (Image credit: Future)The Tea Pro is a good-looking thing. It looks decidedly Apple-esque, with a very slim 7.85mm machined aluminium casing, curved edges and two large black glass sections: the status display area, which looks big but contains a fairly small 0.95-inch AMOLED screen, and a smaller lozenge displaying the Tea logo. That lower lozenge is functional as well as decorative, as it ensures your phone won't wobble when you put it on a desktop or other flat surface.
Buttons are kept to a minimum. On the left there's a power button and a menu/confirm button, and on the right there are volume up and down controls. The slim size of the Tea Pro makes them a little fiddly to access when the device is attached to your phone, but not impossibly so. That's not an issue if you're connecting with the supplied 10cm USB-C cable.
Inevitably adding a magnetic item to your phone adds weight, but the Tea Pro isn't too bad: at 96g it's lighter than Apple's own similarly sized MagSafe power bank.
Design score: 4 / 5
Khadas Tea Pro review: ease of use and setupPairing over Bluetooth is effortless and the menu system is simple: it gives you access to filters, EQ, high and low gain options, device settings, headphone options and so on. The text is exceptionally small, however, so it's handy that you can also access settings via the companion iOS/Android app.
Usability and setup score: 4 / 5
Khadas Tea Pro review: valueIt's clear that some of the price tag here is for that aluminum body and extensive use of glass: rival headphone DAC/amps cost a lot less but look and feel a lot less special. If you're happy to pay a premium for solid build and stylish looks then this is a good choice with excellent iPhone attachment and good compatibility with other devices too.
Value score: 3 / 5
Should I buy the Khadas Tea Pro?Attributes
Notes
Rating
Features
Superb hi-res support and choice of cabled or wireless phone/device connections.
5/5
Design
Premium look and feel and solid magnetic attachment, but the screen text is microscopic.
4/5
Sound quality
Good on Bluetooth, better still on USB-C. Punchy, neutral and detailed sound.
4.5/5
Value
Good looks and solid build up the price; rivals can be a lot cheaper.
3/5
Buy it if...You're totally wired
The Tea Pro is a great, convenient and stylish way to run wired headphones or IEMs from your phone when you're out and about.
You've got an iPhone 12 or later
It's widely compatible but the Tea Pro was clearly designed with MagSafe iPhones in mind.
You appreciate good looks
Phone-focused DACs don't usually look or feel this premium.
You have high impedance headphones
The Tea Pro is fairly powerful but portability and battery considerations limit the available output power.
You're on a tight budget
Rival mobile DACs are much cheaper and sound pretty great.View Deal
You want a desktop DAC
The Tea Pro sounds pretty great but desktop DACs don't have to compromise to save power.View Deal
The cassette-themed FiiO KA15 is cute, fun, sounds good and comes in at half the price of the Tea Pro, delivering both 3.5mm and balanced 4.4mm outputs with a desktop mode that puts out much higher power than the Tea Pro can deliver. The iFi Go Link 2 is cheaper still and particularly good if all you want to do is add wired headphones to a USB-C device such as a phone or tablet.
How I tested the Khadas Tea ProI spent a week listening to the Tea Pro via my usual headphones: BeyerDynamic DT990 Pro open-back and DT770 closed-back headphones at home and work, and SoundMagic E11C IEMs outdoors and on public transport. I listened to lossy and lossless streaming and uncompressed FLACs on my iPhone 16 Pro.
The GameSir Pocket Taco is a novel mobile controller that clips to the bottom of your phone. It’s honestly unique enough that if you’ve seen it once, you’ll definitely remember it. With it, GameSir is attempting to cater to a niche audience of retro gamers that love old 4:3 titles but hate the pillar-boxing they cause on modern screens. Sadly, this is also its biggest weakness — if it fails to 100% nail this use case, it doesn’t have the broad appeal that will encourage other gamers to grab it instead.
When it comes to its design, I’ll admit I’m totally picking up what the GameSir Pocket Taco is throwing down. The Game-Boy-aping styling — upgraded with additional X and Y buttons for later generation games — is perfectly pitched to milk my nostalgia gland. And the clickiness of the buttons and D-pad certainly feels close enough in my mind’s eye to those halcyon days bopping ants on the head in Super Mario Land 2 almost 35 years ago.
Okay, I get that clamshell form factor is not going to be everyone’s cup of tea, but it seems like a neat idea that’s not been covered by any of the best mobile controllers yet, allowing you to play retro games in the 4:3 format they were designed in.
Clasping your phone with just enough force that it won’t slide out, I was happy trusting my premium phone to this little clip, while the gap at the bottom allows you to charge your phone while gaming, which is a nice touch. On paper, it seems like a fun way to play your old retro titles in a format that feels more familiar — a vertical 4:3 handheld.
(Image credit: Future)Unfortunately, the issue is that things in the real world often don’t work out how they do on paper. And using the Pocket Taco, I was quickly forced to confront the gap between GameSir’s ambitions for the device and the reality of what it was able to achieve.
First off, the overall user experience of the Pocket Taco is a hollow shell that quickly disintegrates when you bite into it. Pairing the device gives me flashbacks to the bad old days of Bluetooth connectivity. Adding new connections became a painful process of triggering pairing mode over and over and wondering why the device wouldn’t appear in my potential connections.
This isn’t helped by the fact that it has four different pairing modes for different operating systems — I assume this is to make switching between multiple devices quicker, but in reality makes it more of a chore than a single Bluetooth connection that pairs and unpairs smoothly.
Using the GameSir app is also a mixed experience. Even when I finally paired the Pocket Taco with my iPhone 16 Pro, the app often would claim that it was connected with a nondescript third-party controller, blocking me from accessing the Pocket Taco’s unique functions. Once I’d finally gotten it to recognize the device in the app, I was allowed to test the controls and set the screen ratio, allowing me to resize the screen to take into account the section covered by the device.
(Image credit: Future)Except I have no idea what the purpose of this is. It doesn’t impact anything outside of the app — your phone screen’s aspect ratio is set at the device level, meaning the second you navigate away from this app, the screen ratio resets to its default and is once again half covered by the controller.
There’s simply no way to get native games on iOS and Android to crop to the top half of the screen or even, with many of them, play in portrait mode, which really limits the controller's utility. You can still play native games using the Pocket Taco undocked, but for a lot of people, the appeal is going to be turning their phone into an all-in-one gaming device.
Now I know some people are going to roll their eyes and say that this controller is obviously intended for emulation, not running native games. Even setting aside the ethics of emulation — we're not advocates here at TechRadar, and are all for owning your own games, and I’m not going to endorse you doing anything that could land you in legal trouble — the Pocket Taco itself seems unsure of this fact.
In the iOS app, pressing the home button takes you straight to the Games app, while on Android, you can directly link games you’ve downloaded from the Play Store to the app. So there’s clearly a bit of an identity crisis going on here.
And the added wrinkle here is that many emulators aren’t able to change the aspect ratio and positioning of the screen. While I didn’t open or play any ROMs for this review, I did try out a couple of emulator apps to test the Pocket Taco’s compatibility with them. Using one of the most popular options on Android, I found it was impossible to reposition the screen to fit the remaining portion of the display.
Fortunately, I had better luck with one iOS option, using a controller skin to nudge the display into the right position, even if it left a pretty ugly black bar between the controller and the screen. Even if it is sometimes possible, it’s not exactly elegant.
(Image credit: Future)Honestly, by the time I’d been through this process of getting the Pocket Taco working, my enthusiasm had almost entirely ebbed away. And that’s a shame because, underneath it all, there’s a decent controller struggling to get out.
When I finally caved and started using the Pocket Taco undocked, it plays like a dream. I booted up the iOS version of Secret of Mana and found the Pocket Taco was pleasantly tactile to use. It’s also pretty responsive — despite a few claims I’ve read online complaining about lag, I couldn’t perceive any noticeable delay between tapping a button and Randi spanking a rabbite or mushboom with his sword. But the issue is that propping your phone up and using a separate controller is just a bit clunky — many better mobile controllers like the Backbone One 2nd Gen exist that allow you to play native games docked.
I get the feeling that the Pocket Taco dwells in a state of existential crisis, unsure exactly who it is for. Because it’s an awkward fit for native gaming, forcing you to use it undocked. And for those who are looking for a way to emulate games in 4:3, there are plenty of pocket-sized handhelds that already cater to this market without the awkward screen resizing issues you’ll encounter here. Fundamentally, that means its niche is largely going to comprise those wooed by its nostalgia-drenched concept or emulator enthusiasts that can’t quite stretch to a standalone console. Others should look elsewhere.
(Image credit: Future)GameSir Pocket Taco review: price and availabilityHaving started shipping on March 15, the GameSir Pocket Taco is available now. You can pick it up for a list price of $34.99 / £34.99 / AU$59, which is seriously cheap, even compared to other mobile controllers. By comparison, our pick for best budget mobile, the GameSir X2s Type-C, costs $44.99 / £39.99 / AU$59, so this is a very affordable device.
While some mobile controllers will give you different colorways that mimic various consoles across the ages, the Pocket Taco only comes in this GameBoy-style color palette. That’s pure catnip for someone of my age but if you're more of an OG PlayStation or GameCube fanboi, you’re not going to be catered to here.
(Image credit: Future)Should I buy the GameSir Pocket Taco?Buy it if…You want to play 4:3 emulated games
While I’m not for playing emulated games, and neither is TechRadar Gaming as a whole, the Pocket Taco offers a cheap way to control them. Bear in mind that not every emulator will display in the correct way, though.
You want a cute controller that will happily sit in your back pocket
The Pocket Taco is an adorable, compact package and, with the included case, it’s the kind of thing you can absolutely just carry around with you in case the mood ever strikes.
You just want to play native phone games
As you can’t easily change the aspect ratio of most native phone screens, you’ll have to play iOS and Android games undocked — and at that point, why not just buy one of the best mobile controllers instead?
You’re expecting a polished user experience
Given its budget price, I wasn’t expecting a seamless app experience. But Bluetooth pairing and app behavior can be quite frustrating, so bear this in mind when deciding to buy.
GameSir X2s Type-C
If you’re looking for a mobile controller better suited to mobile apps, the GameSir X2s Type-C is a great choice. It’s super comfortable in your hands, its micro-switch buttons and D-pad have a wonderfully tactile feel, and it comes with Hall-effect thumbsticks and triggers. But our two favorite features are that its USB-C connector pivots to make it easier to insert your phone — and the fact that it also comes in at a really reasonable $44.99 / £39.99 / AU$59.
Read our full GameSir X2s Type-C review
Backbone One 2nd Gen
If you have a little bit more money to invest, the Backbone One 2nd Gen is an easy choice. Its buttons feel great, while its D-pad is super smooth to use and both are really responsive, making rapid taps in twitch gaming much easier. And the neat magnetic adapters included allow it to comfortably fit most phones in their cases, meaning your phone is no longer unprotected when gaming on the go.
Read our full Backbone One 2nd Gen review
(Image credit: Future)How I tested the GameSir Pocket TacoI used the GameSir Pocket Taco over the course of a week. Not only did I download the GameSir app and try out all of its features and settings, but I also paired the device with both an iOS and an Android-powered handset: the iPhone 16 Pro and the Nothing Phone (4a) Pro.
When it comes to software, I used the GameSir Pocket Taco with multiple native games on iOS and Android. I also set it up with several highly rated emulators to see how compatible they were with the Pocket Taco’s screen coverage.
In terms of my own experience, I’ve been testing and reviewing gadgets for many years. I’m an avid handheld gamer, regularly playing on my Steam Deck, Switch 2, and iPhone 16 Pro. I’m also a keen retro gamer — I’ve completed games like Chrono Trigger and The Legend of Zelda: The Minish Cap more times than is strictly good for me.
The SteelSeries Nimbus Cloud positions itself as the “world's first true dual-mode cloud controller”. It starts out as a generic-looking Bluetooth gamepad before doing its best Autobot impersonation and extending out to become a mobile grip that connects to your phone via USB-C, too.
It’s a clever idea and it’s backed up by an impressive spec sheet that ticks all the usual premium controller boxes. Hall Effect thumbsticks and triggers, mechanical face buttons, programmable rear buttons, and compatibility with Mac, PC, iOS, and Android.
That all sounds great, but after a week of using the Nimbus Cloud, it sadly lived up to its name. Cumulonimbus clouds are the type that bring heavy rain and thunderstorms, and my parade has been well and truly rained on.
(Image credit: Future)When it works, it’s not a bad controller and falls neatly in line with the likes of the stock Xbox Wireless Controller. However, for a $149.99 / £129.99 / AU$359.99 controller, the Nimbus Cloud simply has too many flaws that spoil the day-to-day experience. There’s a list of buts coming here and it doesn’t make for particularly pleasant reading.
Build quality is fine, but it’s generic rather than carrying any kind of premium vibe. The triggers use Hall Effect sensors, which is good, but they feel mushy and throttle control in racing games proved a frustrating experience. The mechanical face buttons are crisp, but over both Bluetooth and USB-C I encountered missed inputs when pressing them more than once.
My iPhone 17 Pro fit, but it was far from a secure hold and it required the removal of the rubber inserts, leaving the phone resting and rubbing against bare plastic. SteelSeries lists Mac as a compatible platform, but my testing on a MacBook Air was a mess, with inverted sticks, wrongly mapped inputs, and Steam not playing nice either.
If this were a cheaper option or first attempt from a challenger brand then I’d find it easier to focus on the decent core elements and look past the finer details. However, at $149.99, you're paying over the odds for an under par experience, regardless of which mode you’re running it in.
SteelSeries Nimbus Cloud: Price and availabilityThe SteelSeries Nimbus Cloud is a relatively new addition to the range, launching in the back half of 2025 at $149.99 / £129.99 / AU$359.99. That’s top-end territory for a mobile grip or PC controller on its own, though it’s certainly more palatable for a device aiming to be both in one.
For comparison, the Backbone Pro mobile grip and Razer Wolverine V3 Pro PC controller will both set you back around the same on their own. But you could grab both the GameSir G8+ for mobile and 8BitDo Ultimate 2 for PC and have a little budget to spare.
It is worth shopping around, too, because the price seems to vary dramatically. Apple lists the Nimbus Cloud £20 higher in the UK than SteelSeries on its own website. And I’ve seen the price drop as low as £64 while writing this piece.
SteelSeries Nimbus Cloud: SpecsPrice
$149.99 / £129.99 / AU$359.99
Dimensions
6 x 3.5 x 7.2 in / 154 x 90 x 182 mm
Weight
8.1 oz / 252g
Connection
USB-C (mobile only), Bluetooth LE
Compatibility
iPhone 15+, Android, iPad, Apple TV, Mac, PC, Chromebook, Smart TV
Software
N/A
SteelSeries Nimbus Cloud: Design and featuresPick up the SteelSeries Nimbus Cloud in its collapsed form, and, apart from a curious split down the middle, you'd be forgiven for thinking it's a fairly standard Bluetooth gamepad. It has the familiar Xbox-style stick layout, ABXY face buttons, bumpers, triggers, a d-pad, and view/menu buttons.
There's no center button like an Xbox guide button, though there is a Home button that directs you to your device's home screen or, on iOS, Apple's Games app. It’s all pretty standard stuff.
Build quality is alright rather than impressive. I wasn’t blown away by how it felt in my hands but equally there wasn’t any area of particular concern. It's surprisingly light at just over 250g, which is welcome for a mobile controller with a battery, but that lightness comes with a hollow feeling that doesn't scream premium.
Nothing rattles or creaks, but it's no better than a stock Xbox controller and lacks the little premium touches like rubberized or textured grips that you’d expect for $150. SteelSeries says the battery is good for 20 hours of play over Bluetooth and that seems about right based on my testing. There’s passthrough USB-C charging too, but no 3.5mm audio output.
(Image credit: Future)The magic trick is when it engages Transformer mode (an unofficial name I’m giving it). Pull the two halves apart and the Nimbus Cloud unfurls into a telescopic mobile grip, revealing a USB-C connector on the upper right side that plugs directly into your phone.
The mechanism involves multiple overlapping sections that extend, and credit where it's due, it's a very clever bit of mechanical design. It just seems to keep going with more and more phone deck appearing from nowhere. It’s satisfying in a fidget-toy sort of way and while using it in PC controller mode I caught myself idly expanding and collapsing it a few times during cutscenes.
Phone compatibility is a mixed bag and unlike other dedicated mobile grips it’s not simply a matter of case on vs case off. I tested with both an iPhone 17 Pro and a POCO X5 Pro. The POCO has a slim, nearly flat profile and fit physically with the stock set of rubber inserts.
By design your phone is seated in the upper half of the grip rather than centrally, though, which leaves it feeling somewhat exposed and prone to knocks. The iPhone 17 Pro was almost a non-starter as with either size of the included rubber inserts the camera bump was too thick to fit neatly.
Even after removing the inserts entirely, which leaves the phone resting against bare hard plastic, it didn't fit in a way I’d consider usable long term. Beyond worries about it getting scratched to bits, I was concerned about the amount of stress going through the USB-C connector. There's noticeable movement and wobble with the phone inserted, it never feels square, and one bad bump feels like it could snap the connector off inside your phone's port.
The rear of the SteelSeries Nimbus Cloud has two programmable buttons that sit in a natural resting position for your middle fingers. I’d call them a hybrid between a paddle and a button and it’s a design that works well ergonomically, requiring just the right amount of force to activate while avoiding accidental clicks.
However, the lack of any official companion app means you can only bind or remap these through iOS's built-in Game Controller settings. On Android, I couldn't remap them at all.
For a controller at this price from a brand with the resources of SteelSeries, the absence of a dedicated app for customization is difficult to understand. Competitors like Razer, GameSir, and Backbone all offer robust software companions, and some of those are half the price.
(Image credit: Future)SteelSeries Nimbus Cloud: PerformanceWhether in controller or grip trim, the Hall Effect thumbsticks are the SteelSeries Nimbus Cloud's strongest performing feature.
They're quite firm with a relatively fast spring-back and slightly shorter travel than some competitors I've tested. That means they're precise enough for shooters and responsive enough for general gaming, though the smaller range of movement might take some adjustment. Unlike some competitors, there’s no option to swap or adjust the sticks and SteelSeries has played it reasonably safe with a shortish stick height and traditional caps.
The triggers also use Hall Effect sensors, but they’re muddy and I didn’t feel like they consistently recreated their physical movement in game. It's hard to explain, but where good thumbsticks let you feel dialed in when playing racing games like Forza Horizon 6, on the Nimbus Cloud I felt disconnected when trying to modulate the throttle. This was the same whether I was playing locally on my PC or via cloud gaming on mobile, so wasn’t a Bluetooth latency issue.
The mechanical face buttons are super clicky, tactile, and satisfying to press, as is the d-pad. They’re responsive for general gameplay; however, I noticed the Nimbus Cloud would occasionally miss inputs in situations where I was pressing the same button repeatedly.
This originally cropped up when spam jumping waiting for the Battle Bus in a Fortnite lobby and I was able to confirm it with dedicated testing after getting eliminated. Interestingly, this didn't seem to be an issue when pressing a combination of buttons so appears to be a debounce problem. The face buttons are pretty quiet but the same can’t be said for the bumpers. It’s nice to see these use mechanical switches, but unlike the face buttons they’re loud and almost sound like a cheap old-fashioned mouse.
When stretched out in mobile grip mode the SteelSeries Nimbus Cloud performs well. On both iOS and Android it was immediately recognized, though the controller itself is a little shy in confirming this for you. The four battery LEDs do briefly light up initially, but I’d like a persistent indicator like you find on rivals.
Both Fortnite and Call of Duty Mobile recognized the controller on launch with no extra config or mapping needed, as did Xbox Cloud Gaming. It all worked nicely and naturally out of the box, which is just as well, because without an app you’d be completely stuck otherwise. I mentioned it before, but the Nimbus Cloud having no companion app feels like a real misstep. Rivals like the GameSir G8+ allow for deep customization like dead zone adjustment and hair trigger modes, both of which are notably absent here on a controller that costs nearly twice as much.
Where things fell apart completely in my testing was when I tried to use the Nimbus Cloud with macOS. SteelSeries lists Mac as a compatible platform, but in my experience it was borderline unusable. It happily connected via Bluetooth without any fuss, but that’s where the joy ended.
In Forza Horizon 6 via Xbox Cloud Gaming I was greeted by the left stick input being inverted and triggers that were mapped to start and select. It turned out the bumpers were acting as triggers instead, and while I attempted to remap through macOS system settings, it didn't seem to be respected in game. This wasn’t a Forza problem; either, Stardew Valley didn’t even recognize it at all. Steam fared just as badly, albeit in a different way. There it detected the Nimbus Cloud as two separate controllers simultaneously, neither of which worked correctly.
The good news is that I was actually quite impressed with how the SteelSeries Nimbus Cloud performed over Bluetooth (as long as you’re not a Mac main, of course). My iPad Pro immediately recognized the Nimbus Cloud without issue and playing Fortnite natively could easily have been mistaken for a scaled-down console experience.
Connected to my Windows gaming PC I happily spent a couple of hours in Roadcraft and at this slower pace the Nimbus Cloud kept up nicely. I did have to go through the full Steam controller setup procedure, however, something I’ve not needed to do with controllers in the past. Cloud gaming was fine on Windows too, up was up, down was down, and triggers were triggers.
(Image credit: Future)Should I buy the SteelSeries Nimbus Cloud?Buy it if...You consistently jump between mobile and desktop devices
The Nimbus Cloud combines two controllers into one. The extending mechanism works well to stretch out into a mobile grip and the form factor in both modes is comfortable to hold for longer sessions.
You mainly game on PC
While the Windows experience is good enough, there are many better dedicated PC controllers that’ll set you back far less. Gaming on macOS? Look elsewhere, the Nimbus Cloud is barely compatible.
You have a larger phone
While SteelSeries does include a couple of sizes of rubber insert, larger phones like the iPhone 17 Pro don’t sit securely in the Nimbus Cloud. You’ll be left with your phone rubbing against hard plastic which is unlikely to end well.
After a more consistent experience? Here are two capable alternatives.
SteelSeries Nimbus Cloud
GameSir G8+ MFi
Backbone Pro
Price
$149.99 / £129.99 / AU$359.99
$79.99 / £79.99 / AU$129.99
$169.99 / £169.99 / AU$299.95
Dimensions
6 x 3.5 x 7.2 in / 154 x 90 x 182 mm
9.02 x 4.20 x 2.13in / 229 x 106.8 x 54.2mm
7.1 x 11.1 x 2in / 181 x 281 x 50mm
Weight
8.1 oz / 252g
10.72oz / 304g
0.44lbs / 203g
Connection
USB-C (mobile only), Bluetooth
Wired (USB-C)
Wired (Type-C), Bluetooth
Compatibility
iPhone 15+, Android, iPad, Apple TV, Mac, PC, Chromebook, Smart TV
Android, iOS
iPhone 15 Series, Android, PC, smart TV, Nintendo Switch
Software
N/A
GameSir App
Backbone App
GameSir G8+ MFi
The GameSir G8+ lacks the Nimbus Cloud's dual-mode trick, but it's a better mobile controller in virtually every other way. You get Hall Effect sticks and triggers, dual vibration motors, MFi certification for iPhone and iPad Mini, a companion app for full customization, and swappable ABXY button caps, all for $79.99 / £79.99 / AU$129.99.
For more information, check out our full GameSir G8+ MFi review
Backbone Pro
The Backbone Pro is the Nimbus Cloud's most direct competitor. It costs a touch more and doesn’t fully fold down to a conventional controller form factor, but in return you get a polished companion app, a 3.5mm headphone jack, double the battery life, and reliable cross-platform Bluetooth. Its sticks aren't Hall Effect, but the overall package is refined and, crucially, actually works on every platform it claims to support.
For more information, check out our full Backbone Pro review
How I tested the SteelSeries Nimbus CloudOver the course of a week I tested the SteelSeries Nimbus Cloud across multiple platforms and game genres. Mobile testing was split between an iPhone 17 Pro and a POCO X5 Pro, covering both iOS and Android in the extended USB-C mode. I played a mix of native mobile games and cloud-streamed titles via Xbox GamePass.
For Bluetooth testing, I paired the Nimbus Cloud with a Windows PC and a MacBook Air, looking at games on Steam and cloud gaming on both platforms. When I noticed potential missed button inputs during regular gameplay, I used a dedicated button testing app to verify.
First reviewed July 2025
Samsung's Galaxy Book series has always aimed at the sensible middle of the market. Not the cheapest, not the most powerful, but reliably built and tightly integrated with the rest of the Galaxy ecosystem. The Book6 Enterprise Edition continues that tradition, but with a genuinely interesting processor under the hood and an Enterprise deployment capability.
Intel's Core Ultra Series 3, codename Panther Lake, marks the company's first laptop silicon on the 18A process node. In the Pro and Ultra models debuting this cycle, the architecture shows its teeth. The standard Book6 EE is more restrained, using the Core Ultra 5 325 or Ultra 7 355 variants with Intel's integrated Xe3 graphics rather than the Arc B390 iGPU found in the Pro. That distinction matters, and we will come back to it.
What the standard Book6 EE does well is the things most buyers actually need. The battery life is genuinely long, the build quality feels solid for the price, and the symmetrical redesign is a clear improvement over earlier generations. The new 16:10 IPS WUXGA display gives more vertical real estate than before, even if it cannot match the OLED richness of the Pro tier.
The elephant in this room is the Pro model. At launch, the Galaxy Book6 Pro 16-inch is not dramatically more than the top Book6 EE configuration, and it brings a 3K AMOLED display, stronger integrated graphics and better thermal headroom. For buyers who plan to push the machine hard, that price gap becomes hard to ignore.
But the standard Book6 EE is not trying to be the Pro. It is aimed at everyday professionals and Galaxy ecosystem users who want a well-rounded machine at a sensible entry price. On those terms, it largely succeeds.
However, some of the Samsung-imposed limitations, like the USB ports, stop this from entering our hallowed best business laptops hall of fame.
Samsung Galaxy Book6 EE: Price and availability(Image credit: Mark Pickavance)The Galaxy Book6 was announced at CES in January 2026 and went on sale in the UK from 11 March 2026. European pre-orders opened from 25 February.
It's available in US via Samsung, but also on Amazon, where prices start from $1280.
UK pricing starts at £1405 for the 14-inch model with a Core Ultra 5 processor, 16GB RAM and 512GB of storage. A 16-inch Core Ultra 7 model with 32GB and 512GB of storage sits at the top of the standard Book6 range at £1,809.
One with the specifications of the review hardware that includes the Core 7 Ultra 355 CPU, 32GB of RAM and 1TB of storage isn’t yet listed, but it’s likely to be north of £2000 based on these choices.
What also makes buying one directly from Samsung or one of its partner retailers so confusing is that it's still selling the Book5 and Book4 models, and some of these seem to be much better value for money, especially at the higher end.
As there are so many SKUs, here is a grid of what is available purely on the Book6 EE products in the UK.
Project
SKU Code
CPU Class
Memory/SSD
Cost
GB6 14 vPro
NP742BJG-KA2UK
U5v
16G/512G
£ 1,449
GB6 14 vPro
NP742BJG-KG3UK
U7v
32G/512G
£ 1,809
GB6 EE 14
NP744BJG-KA2UK
U5
16G/512G
£ 1,409
GB6 EE 14
NP744BJG-KG1UK
U7
16G/512G
£ 1,509
GB6 EE 14
NP744BJG-KG3UK
U7
32G/512G
£ 1,769
GB6 EE 16
NP764BJG-KA2UK
U5
16G/512G
£ 1,509
GB6 EE 16
NP764BJG-KG1UK
U7
16G/512G
£ 1,609
GB6 EE 16
NP764BJG-KG3UK
U7
32G/512G
£ 1,869
For those wondering, these machines are roughly about £150 more than the equivalent retail models, though they do come with some differences that I’ll mention later.
The immediate competition in the UK includes the Acer Swift 16 AI, the Lenovo IdeaPad Slim 5, and the ASUS Vivobook S 16. None of those offers the same Galaxy AI integration, though most come with an OLED option at comparable prices. The standard Book6 does not offer this screen technology, and the Enterprise Edition does not either unless you have a Pro model.
In terms of price, the extra cost over the retail Book6 seems plausible given what these machines might save a company in admin, but the baseline Book6 on which they’ve been built is expensive compared with the Book5 that came before it.
For those with money to burn, the Book6 Ultra Enterprise Edition 16-inch comes with a Core Ultra 7 processor, 32GB of RAM, 1TB of storage, and an Nvidia 5060 mobile GPU for an astonishing £3,619.
Item
Spec
Hardware:
Samsung Galaxy Book6 NP760VJG-KG5UK (16 inch, as reviewed)
CPU:
Intel Core Ultra 7 355 (Series 3, Panther Lake)
GPU:
Intel Graphics 4 Xe3
NPU:
Intel NPU, 49 TOPS
RAM:
32GB LPDDR5X (soldered)
Storage:
1TB M.2 PCIe 4.0 SSD
Screen:
16-inch IPS WUXGA, 1920 x 1200, 120Hz, 16:10
Ports:
2x USB-C (one for charging), 2x USB-A 3.2, 1x HDMI, 1x RJ-45 LAN, 3.5mm audio
Camera:
FHD 2MP webcam
Networking:
Wi-Fi 7, Bluetooth 5.4
Dimensions:
357.7 x 249.9 x 14.9 mm
Weight:
1.74 kg (16-inch)
OS:
Windows 11 Pro (pre-installed)
Battery:
68Wh Super Fast Charging 2.0
PSU:
45W (20V 2.25A) USB-C
Samsung Galaxy Book6 EE: Design(Image credit: Mark Pickavance)Samsung gave the entire Book6 range a visible redesign. The most immediately striking change is the symmetrical layout. The keyboard and trackpad are centred in the chassis, and the Samsung logo sits dead centre on the lid. It sounds like a minor adjustment, but in practice, it gives the whole machine a tidier, more composed appearance than its predecessors.
The chassis is aluminium throughout. Samsung's finish is understated, a satin dark grey that resists fingerprints reasonably well and gives nothing away about the modest price. The build feels solid, if anything its overly well-constructed. There is a little flex in the keyboard deck under pressure, but the lid is firm, and the hinge is nicely weighted.
At 1.8 kg, the 16-inch Book6 EE is not a machine you forget is in your bag. The Pro model, by comparison, weighs just 1.56 kg. For a single day of commuting, the difference is not dramatic. Over a week of travel, it becomes relevant. If portability is the primary concern, the Pro or something under 1.4 kg would serve better.
The keyboard has been redesigned with a symmetrical key layout and slightly larger keycaps. The backlight is present across all models, and, as a special feature of the EE design, there is a numeric keypad. The trackpad is generously sized for a Windows machine, though it is a standard mechanical unit. The haptic trackpad is reserved for the Ultra.
Port selection on the 16-inch model covers the basics: two USB-C ports (one supports USB PD charging), a USB-A 3.2 Gen 1 port, a full-size HDMI output, a 3.5mm headphone jack, and a physical RJ-45 LAN port. That last port is a welcome inclusion. Most thin laptops omit it entirely. The 14-inch model loses the LAN port, I believe.
The biggest issues here are the weight, which is over 300g heavier than the equivalent Acer Swift 16 AI, and some of the port choices.
If you are encouraging upper-body development among your staff and discouraging them from plugging anything in, this might be a good fit for your business.
(Image credit: Mark Pickavance)I should also mention that there are no visible screws on this machine, so getting inside is problematic if you were thinking about upgrading the internal storage. As the memory is soldered, that’s a non-starter for adding more, even if you can get the case apart.
If you do pull the feet off and find the hidden screws, then you can get inside and discover an unused M.2 2280 slot ready to populate. Normally, this would be a reason for some celebration, but being realistic, the hidden screws would put off most owners before they discovered the upgrade path.
The move from 16:9 to 16:10 in the Book6 display is a welcome one. The extra vertical space makes a practical difference when writing documents or scrolling through code, and it brings the machine in line with competitors that adopted the format a year or two earlier.
The resolution is WUXGA, 1920 x 1200 on the 16-inch panel. That is not a headline number in a market where the Pro ships with a 3K AMOLED screen, but at 16 inches, it is a perfectly acceptable pixel density for everyday use.
IPS has well-known characteristics. Colour accuracy and brightness are adequate for productivity work. Contrast is reasonable, but you will not see the deep blacks or vivid saturation of an OLED. Glossy coating is available on the touchscreen models; the standard display is matte, which suits office use.
(Image credit: Mark Pickavance)Before I talk about the platform, I’d like to cover how the Enterprise Edition is different to the retail Book6.
For starters, the retail models don’t offer vPro specification processors, although equally, it is only an option on the 14-inch Enterprise Edition machines.
The Enterprise Edition was built for enterprise deployment with customised OS imaging, BIOS configuration and asset tagging capabilities. It also supports Windows Autopilot and BIOS-level logo customisation, allowing organisations to deploy standardised systems at scale. These are nice-to-haves but hardly critical Enterprise features.
What is more important is that this build adds a discrete Trusted Platform Module for enhanced encryption and credential protection, IR facial recognition alongside the fingerprint reader, and aligns with NIST platform security requirements while integrating Samsung Knox protections. Therefore, if you wish to manage a fleet of company laptops from invasive threats, then the Enterprise Editions are better suited.
These things might not be relevant to smaller enterprises, but to Enterprise customers who are aiming to manage large computer inventories with modest IT resources, they could be critical. Anyway, let’s cover what is under the hood.
Intel's Core Ultra Series 3 represents a meaningful change in the processor landscape. Built on the new 18A process node, Panther Lake is Intel's return to fab leadership after several years on TSMC. The architecture separates high-performance P-cores from efficiency E-cores more distinctly than before, and the NPU has grown substantially. The 49 TOPS figure here qualifies the Book6 as a Copilot+ PC, but that’s not the whole story.
The Core Ultra 7 355 in the top 16-inch Book6 configuration is a U-series part, designed for efficiency rather than all-out performance. It handles web browsing, document editing, light photo work and video calls without any meaningful strain. The integrated Xe3 graphics are improved over the previous generation. Samsung quotes 41% better graphical performance than the Book5, but it is still a step below the Arc B390 iGPU in the Pro, which brings 12 Xe3 cores and a larger shader array.
As a reviewer, I find Intel's return to the ‘Intel Graphics’ naming convention patently idiotic and designed to intentionally confuse the customer. The silicon here is based on the Battlemage work Intel did for its discrete video card range, the one it seems so intent on killing.
(Image credit: Mark Pickavance)The review unit arrives with 32GB of LPDDR5X, which is the right amount for a machine positioned to handle AI workloads alongside a regular productivity stack. The base SKUs start at 16GB, which is workable but leaves less headroom as Galaxy AI features grow more demanding. Either way, the RAM is soldered throughout the range. The configuration you order is the one you keep.
The problem with not having more than 32GB of RAM is that it effectively caps how many local LLMs you can realistically run, even if the combined TOPS of the CPU, GPU, and NPU is decent.
This is where the platform truly shines for day-to-day local assistant use, running models like Llama 3.1 (8B) or Gemma 2 (9B) using standard 4-bit or 5-bit quantisation (e.g., Q4_K_M or Q5_K_M). Smaller models like Llama 3.2 (1B/3B), Microsoft Phi 3.5, or Qwen 2.5 (3B) run exceptionally well, and it is possible to load and run slightly heavier models such as Mistral Nemo (12B) or Qwen 2.5 (14B).
The sweet spot for AI is undoubtedly the 7B to 9B parameter models, where this hardware can easily generate 12 to 20 tokens per second. Modes at Q4 quantisation in this range typically require around 5 GB to 6 GB of memory. This leaves plenty of extra memory within your 32 GB pool to significantly increase the context window, maybe up to 32K, without risking out-of-memory crashes.
However, the hardware on this machine isn’t all good news.
For an inexplicable reason, Samsung decided that customers who may have spent between £1500 and £2000 on a laptop didn’t deserve USB4 or Thunderbolt 4. To put that in perspective, a mini PC, like the GMKtec NucBox M6 Ultra, comes with USB4 for £239.99.
What’s super annoying about this omission is that the Intel processors in this platform all come with USB4 inherently; Samsung just couldn’t be bothered to wire it up.
Some IT person reading this is probably thinking, “That’s no big deal, we disabled all the USBs anyway”. Well, on the basis that you need those ports to recharge, good luck with that plan.
In all honesty, I couldn’t recommend a machine costing this much that didn’t come with a USB-C type port that was only USB 3.2 Gen 2.
Laptops
Samsung Galaxy Book6 EE
Acer Swift Edge 14 AI
CPU
Intel Core Ultra 7 355
Intel Core Ultra 7 258V
Cores/Threads
8C 8T
8C 8T
TPD
8W-25W
17W-37W
RAM
32GB LPDDR5 7467MT/s
32GB LPDDR5X
SSD
Samsung PM9C1 1TB
1TB Kingston OM8PGP4102Q
Graphics
Intel Graphics 4 (40 TOPS)
Intel Arc 140V
NPU
Intel NPU (49 TOPS)
Intel NPU (47 TOPS)
3DMark
WildLife
21,590
20,983
FireStrike
6065
8003
TimeSpy
3365
4065
Steel Nomad.L
2529
2989
CineBench24
Single
109
120
Multi
614
389
Ratio
5.64
3.24
GeekBench 6
Single
2733
2757
Multi
11466
11148
OpenCL
24373
29692
Vulkan
28359
33890
CrystalDIsk
Read MB/s
7053
4805
Write MB/s
5969
3905
PCMark 10
Office
7739
8206
Battery
18h 04m
18h 28m
Battery
Whr
61.2
65
PSU
45W
100W
WEI
Score
8.4
8.8
For my comparison, I've used the Acer TravelMate P6 14 AI, since it shows what's changed from the 200 series to the new 300 series platforms.
I know that the 300 series architecture is an improvement over the 200 series, so why do these numbers not show that is the first obvious question.
From a processing perspective, the Intel Core Ultra 7 355 doesn’t deliver the same punch as the Intel Core Ultra 7 258V on single-threaded tasks, but it is better on multi-threading in some tasks.
But where it falls down considerably is in graphics performance, as the Intel Graphics 4 platform can’t hold a candle to the Arc 140V GPU on previous-generation chips.
It’s worth saying that some of the 300 series have the Arc B390 iGPU, but not this one, sadly. The focus, as it has been since the 100 series, is all on efficiency, and the 300 is certainly power efficient.
The headline battery claim from Samsung is 24 hours of video playback on the 16-inch model. That is a marketing number tested under controlled conditions, and real-world use will land somewhere south of that.
In my tests, it ran the PCMark battery test for an impressive 18 hours and 4 minutes, which is slightly under what the Acer Swift Edge 14 AI managed, but with a smaller battery. That’s enough for the longest working day that most people will likely encounter, and some.
For those wanting to truly burn the midnight oil, the Pro model has either a 78.07 or 67.18 Wh battery, and the Ultra packs a huge 80.20 Wh of capacity.
What helps battery life is that the 120Hz panel drops to 30Hz adaptively when content is static, which Samsung says cuts display power consumption by around 15% on the 16-inch model. That is a meaningful contribution to overall battery life in day-to-day use.
Super Fast Charging 2.0 brings the battery from flat to 33% in 30 minutes. That is useful for a quick top-up between meetings. A full charge will take considerably longer, especially since this model only comes with a 45W PSU. The system is calibrated to that power supply, as using a 100W USB-C charger didn’t speed up the charging process for me.
Overall, while performance in some respects is strong, the way Intel added better multitasking while reducing GPU performance might be an issue for graphics users.
The Galaxy Book6 is a confident and well-executed entry into the Panther Lake era for Samsung's mainstream laptop line. The build quality is good, if heavy, and the battery endurance is among the strongest you will find at this size. And the Galaxy AI integration is more practical than most of the AI laptop marketing that has dominated the past two years.
However, there are some significant flaws in this concept that appear specifically designed to encourage up-selling to the Book6 Pro series. Chief amongst these is the omission of the OLED display from this tier, making the IPS display merely adequate rather than impressive. The soldered RAM demands careful configuration from the start, and a machine costing more than £2000 that offers only USB 3.2 Gen2 is laughable in this era.
What I've since been told by Samsung is that the vPro models have USB4, which seems an excessive price premium merely to get a feature that all processors on this platform inherently have.
When I first got this machine, I was impressed by how many ports it had, despite the trend toward minimalist layouts. Except it needs those ports, because adding a docking station to this hardware when you only have USB 3.2 Gen 2 to connect is a pointless exercise.
For anyone coming to the Galaxy Book range for the first time, or Windows users who want something reliable, well-built and future-ready at an accessible entry point, the Book6 EE makes a reasonable case. However, if you don’t use AI locally, the Book5 and Book4 models make an even better one from a value and feature perspective.
Those with more demanding needs, the jump to Pro is worth the premium, leaving the base Book6 EE somewhat adrift.
Should you buy a Samsung Galaxy Book6 EEI?Value
Expensive for a machine without OLED or Thunderbolt
3/5
Design
Spacious and elegant, but hard work on wrists
4/5
Hardware
Intel Core Ultra 300 Series CPU, but no easy upgrades
3.5/5
Performance
Efficient and useful for local AI
4/5
Overall
For the money, most customers would expect more
4/5
Buy it if...You are in the Samsung ecosystem
You are in the Samsung ecosystem. The Galaxy AI features are noticeably better when paired with a Galaxy phone, and the cross-device features, shared clipboard, file handoff and continued calls, are genuinely useful if you are already carrying a Galaxy handset.
You need a physical LAN port
It sounds basic, but a built-in RJ-45 on a slim 16-inch laptop is rare. If your workplace or home office involves wired connections, this matters.
You need the best display you can get
The WUXGA IPS panel does the job, but the Galaxy Book6 Pro's 3K AMOLED is in a different class and not dramatically more expensive. If the screen is where you spend most of your time, spend slightly more.
You carry your laptop everywhere, every day
At 1.74 kg, the 16-inch Book6 EE is not a massive burden, but it is not light either. The Pro at 1.56 kg makes a more comfortable daily companion for heavy travellers.View Deal
For more top-performers for professionals, we've tested the best business computers.
The GameSir X5 Lite is a basic mobile controller designed to work with Android and iOS devices ranging from 105mm / 4.13 inches to 213mm / 8.39 inches long.
It has a functional and minimalist form with little fanfare. It looks more striking in its green ‘Wasabi’ guise, but this is about the only flourish the controller displays. There’s no lighting, save for a small LED ring around the GameSir button.
The build quality of the X5 Lite is quite good. The materials don’t feel as premium as those of the best mobile controllers, but they’re sufficient nonetheless. Thankfully, GameSir doesn’t seem to have skimped on the engineering of the central retractable bar; its spring mechanism is as smooth and strong as I could’ve wished for, while still being fairly easy to pull apart.
(Image credit: Future)The X5 Lite provides a secure fit for your phone, thanks to the selection of silicone pads provided. The USB-C jack also provides a strong connection, and it flexes to make it easier to insert. The X5 Lite also features a USB-C port for passthrough phone charging, which is a nice touch and is positioned to allow for its use while gaming.
Speaking of which, the gaming performance of the X5 Lite is very good. The grips are ergonomic and comfortable, although they might be too small for those with larger hands. Thanks to their generous dampening, the buttons are satisfying and easy to press. The same can be said about the bumpers and triggers, although these are a little more snappy, which is ideal. The D-pad is very easy and comfortable to use, too.
The real highlight of the X5 Lite, though, is its Hall Effect analog sticks. Despite their small size, they’re smooth and precise, and rebound quickly to their starting position. They’re also very comfortable, thanks to the ergonomic caps.
It's a shame that the GameSir app doesn’t offer much in the way of adjustments or customizations, and the hardware of the X5 Lite can’t be swapped out. However, given its relatively low price, the X5 Lite is a great value mobile controller all the same.
(Image credit: Future)GameSir X5 Lite review: Price & availabilityThe GameSir X5 Lite costs $34.99 / £34.99 / AU$44.99 and is available now. It comes in two colorways: black and a light green shade called Wasabi.
This is a great price for a mobile controller of this caliber. It may lack the sophistication and customization options of more premium models, but it does the basics very well.
For a more upmarket experience, you could try the Razer Kishi V3 Pro. This has bigger grips, so more players should be able to get their hands around it. Its app also allows for far more adjustments than GameSir’s. The V3 Pro is considerably more expensive than the X5 Lite, although its antecedent, the Rishi Ultra, is now considerably cheaper, yet offers comparable performance.
If it’s hardware customization you want, but still don’t want to spend the earth, there’s the GameSir G8+ MFi. This model features swappable stick caps and face buttons, as well two extra buttons on the back of each grip.
GameSir X5 Lite review: SpecsGameSir X5 Lite
Price
$34.99 / £34.99 / AU$44.99
Dimensions
7.74 x 3.48 x 1.82 inches / 196.7 x 88.3 x 46.2mm
Weight
4.8oz / 135g
Connection
Wired (USB-C)
Compatibility
Android, iOS
Software
GameSir App (Android, iOS)
(Image credit: Future)GameSir X5 Lite review: Design and featuresThe X5 Lite puts function first, with its chunky, ergonomic grips standing out above all else. There’s no RGB lighting here, just a small LED ring around the GameSir button at the bottom of the right grip.
The black colorway is a little bland, but the light green version, which GameSir calls Wasabi, is certainly more conspicuous. There are also yellow accents on the bases of the analog sticks and on the inside of the central bar.
It feels quite well made, although the plastics don’t look or feel particularly upmarket. They should hold up well enough, however, and they’re a fair compromise given how light the X5 Lite is; this truly a mobile gamepad.
More impressive, though, is its sliding mechanism for the phone slot. There’s a lot of resistance, which is a positive since it provides a strong clasp for your device. A good tug or drop will likely dislodge it, but under normal usage your phone shouldn’t go anywhere. Despite this, it isn’t too difficult to prise open, since it slides very smoothly.
The secure fit is also aided by the silicone pad inserts on the inside of the grips. There are three to choose from, each with different thicknesses in order to accommodate various phone sizes and phone cases. I had no trouble finding ones that allowed my test phone — the Xiaomi 17T with a case attached — to fit inside the X5 Lite. They’re easy to replace, too.
Unlike some mobile controllers, the X5 Lite doesn’t have wireless connectivity. Instead, there’s a USB-C jack tucked inside the left grip. Thankfully, it’s flexible enough to connect to your phone easily. However, this does mean you have no choice but to orient your phone with the power and volume buttons at the bottom, which some users might find inconvenient.
There’s also a USB-C port on the bottom of the left grip to allow for passthrough charging of your phone. This is a good location as it doesn’t get in the way; my palm just managed to curve around my charging cable as I held the controller.
You can download the GameSir mobile app to adjust various settings on the X5 Lite, but the options here are limited. You can alter the deadzone of both sticks, and switch the face buttons from an Xbox to a Switch layout, but that’s it.
This pales in comparison to the number of tweaks available in other controller software. Also, there’s supposed to be a setting to let you control your phone’s UI with the X5 Lite, but I couldn’t see this option anywhere.
(Image credit: Future)GameSir X5 Lite review: PerformanceIn action, the X5 Lite is excellent. The grips are a little stunted compared to more traditional gamepads, which meant I could only get my first two fingers fully around them. This wasn’t uncomfortable for me, but those with bigger hands might struggle to hold the pad securely.
The face buttons are very satisfying to press, owing to their dampening. They’re also very snappy and responsive, and are easy to hit thanks to their positioning and spacing.
This is also true of the shoulder buttons. I had no issue reaching either the bumpers or the triggers with my fingers, and their ergonomic shape makes them comfortable to rest on. The bumpers have a satisfying click to them, and although they’re slightly less damped than the face buttons, they’re certainly not harsh. Additionally, they provide enough feedback to inspire confidence that they’ve registered, too.
If anything, the triggers feel even better. Striking the ideal balance between clicky and damped, they again offer satisfying feedback and have a generous amount of travel. It’s a shame they aren’t analog, although it has to be said not many mobile games make use of such triggers.
Perhaps the highlight of the X5 Lite is its Hall Effect analog sticks. They’re much smoother than I was expecting, moving effortlessly and snapping back to the center with plenty of spring. They’re also impressively solid, with next to no play to them.
What’s more, they offer plenty of control, despite their small size. I had no problem performing complex and nuanced movements in games such as Hitman Blood Money — Reprisal or Lara Croft: Guardian of Light. In fact, they even rival those of the best PC controllers.
They’re also comfortable to use, thanks to their caps being soft to the touch and slightly indented. Like the best Xbox controllers, they’re laid out asymmetrically, which I and many others find more ergonomic.
The D-pad in the X5 Lite is very easy to use. It’s light and forgiving, with plenty of dampening and travel in all directions, which makes it more comfortable than many others I’ve experienced. Pressing multiple directions in quick succession, therefore, is a cinch, even though it’s topped with a traditional four-pronged hat, rather than a more modern circular one.
I didn’t experience any connectivity issues during my time with the X5 Lite. The USB jack maintained a secure connection and I didn’t have any concerns about it coming loose at any point.
Should I buy the GameSir X5 Lite?Buy it if…You want to plug and go
There’s no setup required to get the X5 Lite working with your phone — just plug it in and away you go.
You want great analog sticks
All inputs on the X5 Lite are great to use, but the analog sticks really impressed me with their smoothness and precision.
You have big hands
The grips on the X5 Lite aren’t very large, and they aren’t replaceable, so if they don’t fit your hands, there’s not much you can do about it.
You want lots of hardware customizations
Unlike other mobile controllers, such as the GameSir G8+ MFi, you can’t swap out the hardware of the X5 Lite to meet any exacting requirements you may have.
GameSir X5 Lite
Razer Kishi V3 Pro
GameSir G8+ MFi
Price
$34.99 / £34.99 / AU$44.99
$149.99 / £149.99 / AU$269.95
$79.99 / £79.99 / AU$129.99
Dimensions
7.74 x 3.48 x 1.82 inches / 196.7 x 88.3 x 46.2mm
4.36 x 9.64 x 2.53 inches / 110.8 x 244.8 x 64.3mm
9.02 x 4.20 x 2.13 inches / 229 x 106.8 x 54.2mm
Weight
4.8oz / 135g
0.59 lbs / 268g
10.72oz / 304g
Connection type
Wired (USB-C)
Wired (USB-C)
Wired (USB-C)
Compatibility
Android, iOS
Android, iPhone, iPad Mini,
Android, iOS
Software
GameSir App (Android, iOS)
Razer Nexus App (Android, iOS)
GameSir App (Android, iOS)
GameSir G8+ MFi
The G8+ MFi features analog Hall Effect triggers and sticks, whereas the X5 Lite only has Hall Effect sticks. The grips are larger, too, which means they should accommodate more hand sizes. What’s more, it has swappable parts, with three analog stick caps included in the box. Read our full GameSir G8+ MFi review.
Razer Kishi V3 Pro
A more premium option, the V3 Pro evinces Razer’s attention to quality and ergonomics. Its large grips should prove comfortable for most hand sizes, while the companion app offers plenty of tweaks and features. We also noted in our review that the precursor to V3 Pro, the Kishi Ultra, can now be had for a lot less than its original asking price, yet it performs just as well as the V3 Pro in our estimation. Read our full Razer Kishi V3 Pro review.
I tested the GameSir X5 Lite for several days. I used it with two different Android phones: the Google Pixel 7a and the Xiaomi 17T. I used the different silicone pads that came in the box.
I played Hitman: Blood Money — Reprisal, Lara Croft: Guardian of Light, and Asphalt Legends. I downloaded GameSir’s mobile app to try out its various features and customizations.
I’ve been gaming for decades, and have used all kinds of systems in that time, from home consoles and PCs to laptops and other handheld systems. I also have plenty of experience with controllers, and have reviewed a number of them before, including another mobile model from GameSir, the GameSir X4 Aileron.
The Blueair Mini Restful Sunrise Clock Air Purifier is a three-in-one device — technically a four-in-one if you include the built-in USB charger — that combines an air purifier, a sunrise alarm clock and a wake-up light in a single unit. It launched as part of Blueair's Sleep collection with a clear USP: rather than cluttering your nightstand with separate devices, one appliance handles the air quality, the light and the alarm. If you've been browsing the best compact air purifiers for a bedroom, the Mini Restful sits in a category of its own.
The purification uses Blueair's HEPASilent technology, which captures 99.97% of particles down to 0.1 microns — finer than a standard HEPA filter — and my hayfever symptoms were noticeably more manageable on mornings after I'd had the Mini Restful running.
It runs across three fan speeds plus a Night mode, covers rooms up to 33m² / 355 sq ft, and is QuietMark certified. The brand claims noise levels of 21dB on its lowest setting whereas my own tests averaged 32dB, much of which was ambient.
In reality, it's whisper quiet and I could easily run it through the night without disturbing my sleep. I even forgot to switch it off a lot of the time because it's so quiet, I didn't realize it was still running.
The Blueair Mini Restful doubles as a bedside night light with adjustable brightness levels (Image credit: Future)What makes it stand out most from other purifiers I've tested is the wake-up light: a circular ring below the touchscreen display that brightens gradually over 15–30 minutes before your alarm time. This is designed to mimic natural sunrise, and you can also choose from multiple alarm sounds via the app, including birdsong, soft tones, and rainfall.
This wake-up light is impressively bright for its size and the whole appliance's design is attractive enough for you to actually want on your bedside table. I tested the Blueair Mini Restful in summer so while it helped rouse me gently, it's hard to judge exactly how effective it would be in the depths of winter, say, when a more gentle wake-up is most needed.
At 11.8in / 30cm tall and just 2.36lbs / 1.07kg, it sits comfortably on a standard nightstand, and the USB-C port at the back means it can charge your phone too, saving you even more space by eliminating the need for a separate charger.
My biggest complaint about the Mini Restful is the Blueair app, which doesn't quite live up to the rest of the device's performance. When it works, it's great — intuitive and clean. Yet there's no way to track air quality levels, and during my review period there was often a lag between adjusting settings and the device responding. This became frustrating quickly. The connectivity dropped completely three times during the four weeks of tests and I had to fully reconnect to my Wi-Fi and phone.
For anyone who suffers from allergies and has been meaning to try a sunrise alarm, the Mini Restful makes a compelling case that one device can do all of it well. But even if you already own one of the best air purifiers on the market and a separate sunrise alarm, the Mini Restful makes a strong argument for consolidating. It will definitely feel like an upgrade.
Blueair Mini Restful air purifier review: price and availabilityThe Blueair Mini Restful is available directly from Blueair US and Blueair UK, as well as from Amazon US, Amazon UK, Walmart and John Lewis. It has a list price of $199.99 / £169, which converts to about AU$280, but at the time of writing it's not available in Australia.
On purification alone, it's easy to find cheaper options. Blueair's own £79 Blue Pure Mini Max, the £59.99 GoveeLife Smart Air Purifier Lite and the £149.99 Levoit Core 300S are all strong compact options that cost less and if all you want is cleaner air in a bedroom, any of those will do the job well. However, none of them has a sunrise alarm or wake-up light. Nor do they charge your phone.
In fact, there is no direct equivalent on the market — no other purifier currently combines HEPASilent filtration with a built-in sunrise alarm and wake-up light in a single bedside device. This means the real question isn't how it compares to other purifiers, but whether it's cheaper and better than buying two separate devices.
On that measure, it mostly wins. The Hatch Restore 3 ($169.99 / £220) is widely considered the best standalone sunrise alarm clock you can buy, while a compact bedroom purifier like the Levoit Core 300S adds another $99 / £90 on top. That's $260 / £240 for two devices that take up more space, require two separate apps and two separate power outlets. The Mini Restful does both jobs for $199.99 / £169 in a single unit that sits comfortably on a bedside table.
The trade-off is that neither function quite matches what a dedicated device delivers. The sunrise graduation isn't as smooth as the Hatch Restore 3, and the purification coverage is limited to spaces up to 33m² / 355 sq ft. If you need serious room coverage or a flawless sunrise simulation, you'd be better served buying separately. But for a standard bedroom and anyone who wants to simplify their nightstand, the value case is very strong.
Replacement filters cost $29.99 / £24 and need changing every nine months — a running cost worth budgeting for, even though it's in line with most other comparable purifiers.
List price
$199.99 / £169 (about AU$280)
Fan speeds
4
Oscillation
360 degrees
Filtration
99.97% of particles to 0.1 microns
Filters
Particle & Carbon (HEPASilent)
Control
Touchscreen display, Blueair app
Wake-up light brightness
3 levels via touchscreen, slider control via app
Noise levels
32dB
Height
11.8 inches / 30cm
Base diameter
6.7 inches / 17cm
Weight
2.36lbs / 1.07kg
Blueair Mini Restful air purifier review: designThe Mini Restful is one of the better-looking air purifiers I've had in my bedroom, which matters more than it might sound.
Most purifiers are designed for corners and shelves where nobody has to look at them. They're functional, but they largely earn their keep by blending in. The Mini Restful is instead designed to stand out, and Blueair has clearly put effort into the aesthetic. The woven fabric exterior, which is available in Coastal Beige or Midnight and can be removed and cleaned, feels closer to an Alexa speaker than a home appliance. For comparison, the Levoit Core 300S — a purifier I rate highly for performance — is a plain white cylinder that would look out of place on my nightstand.
The compact Blueair Mini Restful is designed to fit comfortably on a bedside table (Image credit: Future)At 11.8 inches / 30cm tall and 6.7 inches / 17cm across, it has a similar footprint to a bedside lamp, albeit slightly more imposing. It's taller than I had expected for something described as a bedside device and it's not as compact as I'd like (the Blueair Blue Pure Mini Max, for instance, is shorter and lighter) but it does fit comfortably. I could fit the purifier and my phone charger on my nightstand without it feeling cluttered.
At 2.36lbs / 1.07kg, it's also light enough to pick up and move without any effort. The cord runs neatly through the base and plugs into a standard outlet, and at the back there's a USB-C port for charging your phone overnight. This is easy to reach without having to move the unit, and it's one of those small additions that makes a real difference to how the product fits into a bedside routine.
The Blueair Mini Restful’s touchscreen display provides quick access to time, alarms, lighting and fan controls (Image credit: Future)All of the controls sit on the top of the device, arranged around a circular touchscreen display. The display shows the time, current fan speed and filter status at a glance, and is the main interface for adjusting settings manually. It's responsive and readable in low light and the icons are intuitive — power, fan speed, display lock and purification mode are all clearly differentiated. I found I could adjust settings without turning the main light on after the first few days of use. The display can also be locked via the app if you want to prevent accidental changes overnight.
Just below the display is the light ring — a circular band that serves as both the wake-up light and a soft night light. It's a smaller lit area than you'd find on a dedicated sunrise alarm like the Hatch Restore 3, which uses its entire face as a light source, and I was skeptical that such a narrow ring could produce enough light to actually wake me. It did, and it looked elegant doing so.
A close-up of the USB-C charging port located on the rear of the Blueair Mini Restful (Image credit: Future)Setup is straightforward. The Mini Restful arrives in a simple box with the device, a cord and a plug — thread the cord through the base, attach the plug, remove the plastic cover from the filter inside and you're done, in under two minutes.
From there you download the free Blueair app, create an account, and connect the device to your home Wi-Fi. The whole process took me around five minutes, and the app walks you through each step clearly. It's here that you'll set your alarm times, choose your wake sounds, adjust the sunrise duration, and create purification schedules.
The one ergonomic issue I found is that having everything on top means you need to lean over to adjust anything manually when the unit is at table height. It's a minor inconvenience rather than a dealbreaker, and in practice I used the app for most adjustments after the first week, but it's not ideal. Overall, this is a product that has been designed with the bedroom specifically in mind, and it shows in almost every decision Blueair has made.
The Mini Restful has two jobs to do — clean the air and wake you up gently — and it approaches both with more conviction than I expected from a device of this size.
I tested it over four weeks as my primary bedroom purifier and alarm clock, running it every night and monitoring air quality via the Blueair app each morning. I also measured noise levels at each fan speed using a decibel meter, and ran the sunrise alarm as my sole alarm throughout the review period rather than keeping a backup.
Starting with the purification. The HEPASilent filtration captures 99.97% of airborne particles down to 0.1 microns, which is finer than a standard HEPA filter, and covers dust, pollen, pet dander and most common allergens with ease. I suffer from hayfever and the review period coincided with peak pollen season, which gave me a useful real-world test. On mornings after running the Mini Restful through the night on speed 1 or 2, I noticed a genuine difference: less of the throat tightness and eye irritation I'd normally get.
The Blueair companion app lets you customize alarms, sunrise light duration, display brightness and night light settings (Image credit: Future)To test the purification speed specifically, I sprayed deodorant directly at the unit for five seconds on both the lowest and highest settings, then timed how long it took for the air quality reading in the app to return to normal. On the lowest setting it took around 45 minutes to fully clear. On the highest setting it took just 12 minutes — a significant difference. The app's air quality history chart, which shows readings over the past 24 hours and 30 days, is useful for tracking these changes and gave me a clear picture of how conditions shifted.
On noise, the Mini Restful is super quiet. Blueair claims 21dB on the lowest speed; my measurements put it at around 32dB. This sounds like a huge difference but the purifier is almost inaudible, even in a quiet room. Speed 2 registers around 35dB, which produces a gentle white noise that actually helped me sleep rather than disturbing me. Speed 3 is noticeably louder at around 48dB — not unpleasant, but enough that I wouldn't choose to run it while trying to fall asleep. The Night mode handles the transition well though, stepping the fan down to its quietest setting automatically, and I left it on this mode for the majority of the review period.
Blueair says the Mini Restful works best in rooms between 14–33m² / 151–355 sq ft, which will cover most standard bedrooms. I tested it in a medium-sized room and found it kept up well, with the air quality sensor registering improvements within 20–30 minutes of switching on after a day with the windows open. It won't cope with large open-plan spaces — for that you'd need something with considerably more power, like the Dyson HushJet Compact — but for a bedroom it's more than adequate.
The wake-up light is the more interesting part of the performance story. The light ring is small relative to a dedicated sunrise alarm but on its highest brightness setting it lit the room enough to wake me without the alarm sound triggering at all on several mornings. The three manual brightness levels via the touchscreen are useful, and the app's slider control allows finer adjustment if you want to dial it in precisely.
The issue is with the graduation. The light is supposed to brighten gradually over 15–30 minutes before your alarm time, mimicking a natural sunrise. For the most part it does, and on the mornings it worked as intended the experience was gentler than waking to a conventional alarm. But on several occasions — I counted at least six across the four-week review period — the light jumped to full brightness abruptly rather than easing up to it, which is jarring. It doesn't ruin the experience entirely but it stops the Mini Restful from matching the consistently smooth graduation of a dedicated wake-up light. If the sunrise simulation is the primary reason you're considering this, that inconsistency is worth noting.
Elsewhere, the alarm sounds themselves are pleasant and varied — birdsong, soft tones, rainfall — and the volume is adjustable via the app.
Despite a small number of flaws, I can barely fault the hardware of the Blueair Mini Restful. The same can't be said for the app though, sadly.
Firstly, the Blueair app isn't optional. You can use the touchscreen to turn the device on and off and cycle through fan speeds, but doing anything of note, such as setting alarms, choosing wake sounds, adjusting the sunrise duration, creating purification schedules and checking air quality history, all require the app.
The Blueair app is where you control fan speeds, night light brightness, schedules and display lock settings. You can't track air quality changes though and there's often a lag (Image credit: Future)This is great when it works. The interface is clean and logically laid out, with the device status and filter life all visible without having to dig through menus. Setting a sunrise alarm takes seconds: you pick a time, choose a sound, set the brightness duration between and you're done.
The filter replacement reminder is useful; the display lock feature is a sensible addition for overnight use; and the scheduling tools are flexible enough to set different purification levels for different times of day.
However, knowing how to view live air quality readings isn't obvious, and I ended up having to Google for help. Even then, you can only see the current outdoor air reading (via the Outdoor air section on the homepage) and not a live, room-by-room chart.
The Blueair app shows real-time local air quality data, including AQI scores and pollutant measurements based on your location – but it's outdoor only (Image credit: Future)Then there's the problem with lag. There was a consistent, frustrating delay between adjusting a setting in the app and the device responding throughout almost the entire review period. This could be anything from a few seconds to almost 30 seconds on occasion. Switching fan speeds via the app often took longer than just tapping the top of the unit, which defeats part of the point of having remote control in the first place.
What's more, during my four-week review period the connection dropped completely three times, requiring a full reconnection through the app each time. I'd find myself checking the app before bed to make sure the alarm was still set and the connection was still live, which is exactly the kind of friction a product like this should be eliminating.
The absence of any smart home integration is also a real gap. There's no HomeKit support, Alexa skill or Google Home compatibility, which means the Mini Restful exists entirely within its own ecosystem. For anyone who controls their bedroom environment through a smart home setup — lights, heating, other devices — the Mini Restful sits outside all of that. It's not a dealbreaker, but it's a limitation that feels out of step with both the price and what other, similar connected bedroom devices offer.
Blueair has clearly invested in the app's design and the range of features it offers, and the bones are good but the execution needs a lot of work.
Attribute
Notes
Score
Value
Pricier than a standalone purifier, but replaces two devices at a lower combined cost.
4/5
Design
Attractive, compact and genuinely bedroom-appropriate, with a few ergonomic niggles.
4.5/5
Performance
Strong purification and a capable wake-up light, let down slightly by occasional abrupt sunrise graduation.
4.5/5
App
Clean interface with useful features, but lag and connectivity drops are a real problem.
3/5
Buy it if...You suffer from allergies or hayfever
The HEPASilent filtration captures particles down to 0.1 microns and is quiet enough to run through the night without disturbing your sleep.
You want to simplify your nightstand
The Mini Restful replaces a purifier, a wake-up light and a phone charger in a single device.
You want a gentler start to the morning
Waking to a gradually brightening light is a meaningfully better experience than a conventional alarm.
Don't buy it if...You want seamless sunrise simulation
The light graduation is inconsistent and a dedicated wake-up light like the Hatch Restore 3 will do it more reliably.
You rely heavily on smart home integration
There's no HomeKit, Alexa or Google Home support. The Mini Restful operates entirely within its own app ecosystem.
You need to purify a large room
Its 33m² / 355 sq ft upper limit makes it a bedroom device only. For larger spaces you'd be better served by something like the Blueair Blue Max 3250i or the Dyson HushJet Compact.
Blueair Mini Restful air purifier: also considerIf you're not sure whether the Blueair Mini Restful is the right air purifier for you, here are two other options to consider:
Goveelife Smart Air Purifier Lite
A portable air purifier that makes a noticeable difference to air quality, and unlike the Blueair Mini Restful, has smart home connectivity. We weren't very impressed by its aromatherapy feature, though.
Read our full Goveelife Smart Air Purifier Lite review
Blueair Blue Pure Mini Max
A very affordable, efficient little air purifier, the Mini Max isn't as feature-packed as the Mini Restful, but far exceeded our expectations during testing.
Read our full Blueair Blue Pure Mini Max review
How I tested the Blueair Mini Restful air purifierI used the Blueair Mini Restful as my main bedroom purifier and alarm clock for four weeks, running it every night and monitoring the air quality readings in the app each morning.
To test purification speed, I sprayed deodorant directly at the unit for five seconds on both the lowest and highest fan settings, then timed how long it took for the air quality reading in the app to return to normal.
I measured noise levels at each fan speed using a mobile phone decibel meter and ran the sunrise alarm as my sole morning alarm throughout the review. I also tested the app's scheduling tools, the USB-C charging port and the manual touchscreen controls.
Read more about how we test.
First reviewed May 2026
The Denon Home 400 sits in the Japanese brand's completely repositioned Home 2.0 range for 2026, and it doesn’t take much to see the updates as a direct challenge to Sonos and the best wireless speakers on the market. The range features three speakers — the Denon Home 200, 400 and 600 — all of which promise spatial audio from a single box. They’re all tuned by sound masters, built for native stereo playback even as singular units, deliver an immersive experience, and have refined designs.
The Denon Home 400 sits right in the middle of the range, but occupies a bit of a sweet spot. Its $599 price tag puts it at the same ball park as the Sonos Era 300, and I think Denon comes out of the comparison looking like the better option.
Along with Sonos, though, there’s no shortage of competition from the likes of Apple’s HomePods, JBL’s Authentics 300 and the WiiM Sound smart speakers. While the Denon range technically supports Siri, this is a product that’s much more about the sound than it is the smarts.
In use, it sounds tremendous and is highly customizable with a full spatial audio experience where you really can hear the difference. The HEOS app works brilliantly, and set-up is a doddle. It also has a sense of style. This is a speaker that looks premium rather than plasticky, and that alone may make it easier to recommend than Sonos for many potential buyers.
Is it worth the premium price, though? I’ve been hands-on to find out what the Denon does differently.
(Image credit: Future / Simon Cocks)Denon Home 400 review: price and availabilityThe Denon Home 400 costs $599 / £449 / AU$999 (approx.) and is clearly positioned to rival the Sonos Era 300, which costs $479 / £449 / AU$749 officially, but it is a bit more likely to be available on offer, having gone down to $379 / £339 on Amazon within the past six months.
Other similarly sized rivals include the JBL Authentics 300, which costs $450 / £380 / AU$600, or the bass-heavy Brane X for $599 / £475 / AU$915. Apple fans will also, of course, consider whether a HomePod 2 ($299 / £299 / AU$479) may better suit their needs, as it has a few clever tricks and perks for the iOS faithful.
(Image credit: Future / Simon Cocks)Denon Home 400 review: specsSpeaker drivers
2 x 0.75-inch tweeters, 2 x 1-inch upfiring drivers, 2 x 4.5-inch woofers
Amplification
6 x Class D amps
Dimensions
11.8 x 5.9 x 8.6 inches (300 x 150 x 219 mm)
Connectivity
Wi-Fi 6E, Bluetooth, 3.5mm line-in, USB-C
Streaming support
HEOS app, Tidal Connect, Spotify Connect, Apple AirPlay 2
Voice assistant support
Siri (only if you have a HomePod on the same Wi-Fi network)
Other features
HEOS multi-room, stereo pairing
Colors
Charcoal, Stone
(Image credit: Future / Simon Cocks)Denon Home 400 review: featuresThe core selling point of all the new speakers in the Denon range is Dolby Atmos support with adjustable sound modes. I’ll go into that in more depth in the 'Sound quality' section below, but it is a meaningful differentiator between this speaker and most of its competition. The vast majority of other smart speakers will either not have Atmos or rely on (the admittedly clever) digital processing trick of spatial virtualization. That’s what the Denon Home 200 does, too.
The one option offering proper Atmos is the aforementioned Sonos Era 300. The Denon Home 400, just like this rival, packs in true Dolby Atmos with a six-driver setup: dedicated left and right drivers, upfiring drive units and two 4.5-inch woofers (all powered by six independent Class-D amplifiers). What this means is that you’ll get much more width — throw a Dolby Atmos track at this speaker and you’ll hear a wider soundstage — and real height, as it bounces sound off your ceiling. The adjustability in the Auto mode means you can dial in exactly how much bass extension, width or height you want.
You can use voice assistance on this speaker, but I’m not going to pretend it’s a headline feature. Apple’s Siri is the only voice assistant on offer, so you’re not going to find Google Assistant or Alexa as an option during setup. And, in order to set it up, you need to have an Apple HomePod or HomePod mini on your Wi-Fi network to handle the Siri requests you make on the Denon speaker.
Luckily, I’ve got some HomePods in another room, so I could test this, and it works fairly well, but I wouldn’t go around suggesting that this is a speaker with built-in voice control. It’s more of a niche added extra, as long as you already have an extra accessory that would cost you at least £99.
(Image credit: Future / Simon Cocks)In general, the HEOS app (HEOS stands for Home Entertainment Operating System, thanks for asking) is excellent and great if you think you might set up a multi-room ecosystem of speakers after investing in this one. It covers multiple brands, not just Denon, and works with a wide range of speakers, soundbars and receivers.
Overall, the Denon Home 400 offers a broad range of connectivity options, including a 3.5mm AUX for use with turntables or MP3 players, and a simple native Bluetooth button to connect to other devices if you’re not using the app. Bluetooth LE Audio is coming via an update, and it has support for ALAC and aptX formats over Bluetooth. You’ve also got Apple AirPlay 2, Spotify Connect, Tidal Connect, and Qobuz Connect built in, too.
Through the USB-C port, you can deliver firmware updates via a pen drive or use wired Ethernet via any USB-C adapter, which is a nice benefit compared with others that might make you buy a proprietary dongle. Obviously, it’s not quite the same as built-in Ethernet, but it’s not a feature everyone would use.
There’s no remote with the speaker, it’s designed for use with the feature-filled HEOS app, where you can gather together your music services — including Spotify, Amazon Music, Deezer, Soundcloud, Tidal, Qobuz and TuneIn — and internet radio stations, along with control of the multi-room setup and audio customizations. I wish my choice of streaming service, Apple Music, were added to the picks, but it’s otherwise an app I find hard to fault.
We’re going to be talking a lot about spatial audio in this section, because that really is the Denon Home 400’s party piece. It can take a well-encoded Atmos mix and make it feel three-dimensional. It’s in the Auto setting by default, and that’s probably where I’d leave it in my environment, in which it’s more than capable of an immersive room-filling sound.
If spatial isn’t for you, you’ll prefer the Pure sound mode. This bypasses the DSP and works as a great mode for anyone wanting the typical stereo image experience.
I’d already had a chance to hear the Denon Home 400 in a London hotel suite, and that gave me a sense of just how impressive it would be. During Ed Sheeran’s Shivers, I could hear a noticeable height extension that makes it perceptibly different when compared with the Home 200. Listening to the Atmos mix of Riders on the Storm by The Doors reveals background vocals in the height layer, an element that’s harder to pick out in the neutral mode.
Having the speaker within my own apartment only further confirmed how adept it is with spatial sound. To test it, I mostly focused on playing Dolby Atmos from Apple Music over AirPlay, but I also used it with Spotify Connect, radio stations, and I set up both Spotify and Deezer within the HEOS app to test those, too. The experience is convincing, there’s a lot of clarity to be heard across the whole frequency range, and two woofers deliver significant bass oomph.
(Image credit: Future / Simon Cocks)Listening to Raye’s Where Is My Husband! in Dolby Atmos is highly rewarding for how much extra detail you start to hear in the layers of instrumentation, all while keeping her powerful vocals right in the center. I used the HEOS app to dial up the width and height, and you can feel the backing vocals spread out on the soundstage, with the instruments becoming easier to identify in space.
Putting the 400 in Pure mode and switching over to Click Clack Symphony shows that there’s a place for both modes. Pure is much more direct and balanced. There’s clearly more vocal presence in this mode, and the stomps have far more impact. You can get a different sonic experience by switching between both modes, something this track shows so well — it’s bordering on ethereal in Auto with those spatial customisations, yet sounds intimate on the Pure setting.
In general, I find the sound hard to fault. By default, the Auto mode may have a smidge too much bass for my tastes, but it’s easily remedied by moving the slider down two notches in the app. The Pure mode is fairly neutral in its approach, but still has its fair share of energy and dynamism. If you listen to spatial tracks, play around with Auto, but most of us should find Pure less fatiguing, making it a better 'set and forget' option.
Immediately after unboxing, it’s clear that the Denon Home 400 is more than your average utilitarian speaker. The best thing about its design is the lack of visible plastic, which is only really visible on the speaker's top section. The rest is covered by a seamless piece of fabric with no obvious seams, and the bottom of the speaker — just like every model in the new Denon range — is a sturdy titanium base plate. It adds a little bulk, sure, but also the satisfaction of knowing that this is durable and not something that can be tipped over.
Underneath the speaker, a light glows to let you know it’s turned on. This was something that my wife initially felt ruined the look, but it’s easily solved because you can lower the brightness (or turn the light off entirely) in the app. Crisis averted. There are physical controls on the right side of the device, allowing you to control volume and playback, along with three quick select buttons (for your favourite internet radio stations or streaming services) and an action button to summon voice control.
The speaker also comes in the same two neutral colorways as the rest of the range – Charcoal and Stone (my review unit). I’ve got no complaints. It’s a speaker that’s designed to look good in the living room without commanding attention, and it does exactly that. It’s also worth noting that, on the back, there’s a switch to mute the microphone and that it’s a hard-wired off button that’s not connected to the network circuitry.
I find this looks much less plasticky in comparison to rival speakers (looking at you, Sonos) and that the Home 400's buttons and controls are easier to understand and use (looking at you, Apple). It ends up being a winner on multiple fronts.
The Denon Home 400 is an exceptionally straightforward speaker to set up and use. The box gives you the speaker unit itself and the power cable. Once it’s plugged in, you set it up with the HEOS app, a process that took me approximately five to 10 minutes, and connect it to your home Wi-Fi network, telling the app whether the speaker is away from walls, in a corner, or just in front of one wall, which helps it adapt its sound.
You do need to use the app so that you get all of the internet-connected features, but it doesn’t take long at all to get started. Once you pick some favourite radio stations in the app, you can also press and hold on the preset buttons to save them for quick access, and you can always just use the Bluetooth button to connect devices that might not be on your wireless network. The same applies to wired playback.
I tested both with my MP3 player, the Activo P1, and found it seamless in use. However, it’s worth mentioning that I couldn’t get the Denon to play back at one of its supported higher-res Bluetooth codecs over the P1; it stayed stuck in SBC despite supporting higher bandwidth options.
In day-to-day use, though, this is highly intuitive to use, both wirelessly and if you were to connect an AUX cable to an MP3 player, CD player or turntable. Denon has said a goal with this product is getting you to your music with minimal button presses, and that holds true in use, whether you’re using those quick select buttons, or just playing wirelessly over the HEOS app, Spotify Connect or AirPlay. The one downside would be for those who are used to voice control of their playlists. Unless you use Siri and already have a HomePod, this doesn’t work well for that.
If you were keen to set up multi-room groups, this would also work well, with controls within the HEOS app, plus the ability to create a stereo pair with two Denon Home 400s. It’s also a great feature that the ability to mute the microphone is a physical control, not something that exists only in software, something that’s great for peace of mind if you don’t want to use voice assistance or have your voice recorded.
At $599, the Home 400 is priced at the top of the standalone premium home speaker market, making it a direct rival to the Sonos Era 300. For me, the Denon more than matches its Sonos competition when it comes to powerful spatial audio and is also a more stylish speaker with more intuitive control and better connectivity. The Denon gives you spatial customization missing from Sonos, and it also has built-in AUX, USB-C and the option of Ethernet.
While rivals like the Sonos Era 100 and Apple HomePod are cheaper, they’re also more locked into ecosystems. They’re good as affordable rivals, but the Denon offers the more powerful, more immersive and more customizable sound. And, while the JBL Authentics 300 also holds a lot of appeal, and I’m a particular fan of its style and retro controls, it lacks native Dolby Atmos, so it doesn’t feel like a direct rival.
The one thing you’ll want to keep in mind is the lack of capable voice assistance from the Denon at launch, but if that doesn’t matter to you, the customizable spatial sound, ability to connect to players and turntables, plus intuitive control make the Denon Home 400 a good value buy in this price tier. Just make sure you’re keen on spatial sound and know you want to hear the layers inside a mix, as that’s what sets this apart.
Attribute
Notes
Score
Features
Native Dolby Atmos, with multiple connectivity options, but limited voice control possibilities.
4.5 / 5
Sound quality
Outstanding spatial audio, with solid set-and-forget settings.
4.5 / 5
Design
Durable, stylish look with two colorways to choose from, plus a general absence of plastic.
5 / 5
Usability & setup
Easy-to-understand controls, with an intuitive app, but needing a HomePod to make Siri work is a drawback.
4.5
Value
It's not cheap, but it's certainly worth the money with spatial audio this good.
4.5 / 5
Buy it if…You want the best spatial audio from a single speaker
The best feature of the Denon is hearing all the layers in the mix, from a single box. Few are the competitors who can match it.
You want connectivity, flexibility and audio customization
There are many ways to get to your music and/or radio stations. And it's easy to get there, too.
You're starting a multi-room system
Like the Denon in general, it's easy to set up and covers multiple brands.
You like to talk to voice assistants all the time
The lack of Alexa or Google Assistant may be prohibitive for some, and even using Siri requires a HomePod to get it going.
You only stream standard stereo
The Atmos features are some of this speaker’s most rewarding benefits.
Denon Home 400
Sonos Era 300
Apple HomePod 2
Price
$599 / £449 / AU$999 )approx.)
$449 / £449 / AU$749
$299 / £299 / AU$479
Speaker drivers
2 x 0.75-inch tweeters, 2 x 1-inch upfiring drivers, 2x 4.5-inch woofers
4x tweeters, 2x woofers
5x tweeters, 1x woofer
Amplification
6x Class D amps
6x Class D amps
Not listed
Dimensions
11.8 x 5.9 x 8.6 in (300 x 150 x 219 mm)
6.30 x 10.24 x 7.28 in / 160 x 260 x 185 mm
5.6 x 6.6 x 5.6 in / 142 x 168 x 142 mm
Connectivity
Wi-Fi 6E, Bluetooth, 3.5mm line-in, USB-C
Wi-Fi 6, Bluetooth 5.0, USB-C (3.5mm line-in and Ethernet via adapter)
Wi-Fi (802.11n), Bluetooth 5.0 (not audio)
Streaming support
HEOS app, Tidal Connect, Spotify Connect, Apple AirPlay 2
Sonos app, Apple AirPlay 2
Apple AirPlay 2
Voice assistant support
Siri (only if you have a HomePod on the same Wi-Fi network)
Alexa, Sonos Voice Control
Siri
Other features
HEOS multi-room, stereo pairing
Dolby Atmos support, Sonos multi-room control, Sonos home theater option, stereo pair option
Dolby Atmos support, Thread/HomeKit smart home hub, auto-calibration, stereo pairing option, Apple TV home theater option
Sonos Era 300
If you’ve already got some products in the Sonos ecosystem, it may make sense to pick Denon’s closest rival. Some may argue Sonos has a stronger app for an interconnected whole-home audio system, but just note that it has less physical connectivity. Here's our full Sonos Era 300 review.
Apple HomePod 2
Yes, it's older now, but it still sounds fabulous. And the HomePod is a better value option if you’re an Apple-only household, especially if you like to use Siri and will benefit from its smart features, such as “handing off” audio from your phone to the speaker by bringing it close. It works very well with Apple gadgets and Apple Music, of course. Here's our full Apple HomePod 2 review
(Image credit: Future / Simon Cocks)How I tested the Denon Home 400I tested the Denon Home 400 using a wide range of different music genres and styles, including popular hits, soundtracks, ambient playlists and classical. I listened to podcasts and radio content, too, over several weeks of testing. I primarily used the Denon Home 400 in one spot, on a table in my living room, and that gave me a sense of how well it was able to fill the space in my small flat.
I used Bluetooth and wired connections with my Activo P1 music player, and also streamed using the HEOS app itself, accessing Deezer, Spotify and radio stations from this interface. Most of my spatial listening was tested via AirPlay, playing tracks mixed for Dolby Atmos through Apple Music.
For some direct comparisons, I used the other speakers that I currently have in my flat, including an Audio Pro A10 MkII and a couple of HomePod Minis in a stereo pair. And, to get a great understanding of the speaker’s performance, I made sure to listen to the widest possible range of genres at varying volume levels.
Dyson’s engineers are experts in airflow — whether in vacuum cleaners, fans, or hair dryers — and the HushJet Mini Cool puts that power right in your hand. It’s a portable cooling fan that you can hold, wear around your neck, attach to clothing or a bag strap (if you buy one of the optional clip accessories) or stand upright on your desk — and it really works.
Shortly before testing the Dyson HushJet Mini Cool, I got my hands on the Shark ChillPill — a rival handheld fan that was released at approximately the same time. I was impressed by the ChillPill’s cooling ability, which is supplemented by a misting attachment and a metal cooling plate — but in terms of sheer power, the Dyson absolutely blows it away.
(Image credit: Future)This mainly comes down to two factors: the fan’s powerful motor, which can reach up to 65,000rpm (compared to just 25,000rpm for the ChillPill), and the shape of the HushJet nozzle, which concentrates the airflow so it’s all directed right at you. Even on the lowest setting, you can really feel it; dial it up to maximum and it’s as powerful as some hairdryers I’ve used.
The sound is not unlike a miniature vacuum cleaner, but the HushJet shape works to eliminate the annoying higher frequencies that might irritate colleagues if you use it in the office, or fellow passengers on a busy commuter train. There’s even a hint of Dyson’s signature ‘bounce’ sound when you turn it off.
Accessories like a clamp (so you can attach it to gym equipment) are available to buy separately, but you get a neck strap included with the fan as standard. Slide this onto the fan (it has notches that allow it to slip past the control buttons), adjust the cord to a suitable length, rotate the fan’s head so it’s pointing towards you, and you’ll enjoy a cooling jet of air on your chest, neck and face, hands-free. Extremely handy if you’re taking stuffy public transport.
(Image credit: Future)Dyson claims that the HushJet Mini Cool can run for up to six hours on its lowest power setting, but during my tests it significantly outperformed that figure, lasting almost exactly six and a half hours on a full charge.
It’s hard to fault the HushJet Mini, but a couple of things stood out during testing. Firstly, it’s easy to accidentally cover part of the air intake grille with your hand when holding the fan, which I’m sure affects its performance.
Secondly — and this is only my personal opinion — the Stone/Blush colorway makes the fan look like an exfoliating facial brush at first glance (not unlike the Braun Facespa Pro) which is a strange thing to wear around your neck and might raise a few eyebrows.
Dyson HushJet Mini Cool: specificationsWeight
7.4oz / 210g
Dimensions (diameter x length)
1.5 x 7 inches / 38 x 180mm
Colors
Ink/Cobalt, Stone/Blush, Carnelian/Sky
Battery life
Up to 6 hours according to Dyson; up to 6.5 hours in TechRadar’s tests.
Dyson HushJet Mini Cool: price and availabilityDyson announced the HushJet Mini Cool on April 9, 2026, and it was available to buy globally a few weeks later. It has a list price of $99 / £99.99 / AU$169, which is very reasonable for a powerful personal fan. For comparison, the Shark ChillPill, which went on sale just a few weeks earlier for $149.99 in the US, or £129.99 in the UK (which converts to about AU$210, though at the time of writing the ChillPill isn’t yet available in Australia).
The Dyson HushJet Mini Cool has been in high demand since its launch, and at the time of writing (June 2026) it’s often sold out in Dyson’s official online stores. The Stone/Blush colorway is sometimes the only one available.
If you’re not planning to use your fan on the move, and want one specifically for your desk, take a look at the Dyson Cool CF1 Desk Fan, which is just as quiet but can move a larger volume of air, oscillates and has a remote control, making it a better choice if you’re sitting still (possibly working from home). It has a list price of £249.99 (about $340 / AU$470).
Dyson HushJet Mini Cool: DesignDyson devices often look slightly unusual, taking the most practical shape for their function regardless of how vacuum cleaners, hair dryers, or, in this case, fans have traditionally looked. The HushJet Mini Cool is no exception — with its slim, tubular body and angled nozzle (which is the same shape as that of the Dyson HushJet Compact Purifier), it looks nothing like other personal cooling devices, but it’s a shape that works. The body of the fan is comfortable to hold, and the nozzle can be turned to direct the airflow exactly where it’s needed.
The HushJet Mini Cool is bladeless (like Dyson’s larger fans), ensuring the airflow is smooth rather than choppy, and its honeycomb-like mesh keeps dirt and debris out of the mechanism — though it's also supplied with a soft velvet carry case to protect it on the move.
(Image credit: Future)The HushJet Mini Cool comes in three colorways: Ink/Cobalt (dark blue), Stone/Blush (soft pink, as shown here), and Carnelian/Sky (red and pale blue). Personally I prefer the latter option, which is the most striking, and it seems I’m not alone — at the time of writing all colors are selling out rapidly, but Carnelian/Sky seems to be the one disappearing from the virtual shelves quickest, followed by Ink/Cobalt.
The tubular shape, with a flat end, means that you can easily stand the HushJet Mini Cool on your desk while you work. If you’re planning to use it all day, it comes with a charging base, which provides extra stability regardless of whether the USB cable is plugged in or not.
(Image credit: Future)Whichever color you choose, the fan’s case has a satin finish that feels pleasantly smooth and cool in the hand and is resistant to fingerprints, with contrasting colors for the nozzle and buttons. Dyson’s car never took off, but the company’s designers took the knowledge they gained about finishes and materials, and applied it to beauty products — which explains why they look so smart.
A row of five small white LEDs show the current power setting, and represent the battery level when the fan is charging..
Should you buy the Dyson HushJet Mini Cool?Dyson HushJet Mini Cool score cardAttribute
Notes
Score
Features
Does one task extremely well, with no superfluous additions.
5/5
Performance
Very effective cooling with powerful, concentrated airflow.
5/5
Design
Unusual shape and interesting choice of colors, though air intake holes are easily covered when holding.
4.5/5
Value
Considerably more affordable than the closest competitor.
5/5
Buy it if...You use public transport
Trains and buses can be a nightmare in summer, and this portable fan will keep you fresh hands-free.
You're particularly prone to overheating
If menopause, medication, or another factor means you often find yourself sweating in the middle of the day, having a powerful portable fan handy will provide sweet relief.
Don't buy it ifYou're planning to attend a summer festival
Forget the disposable fans — this is much more effective, and you can use it year after year.
Don't buy it ifYou want a fan to use exclusively at your desk
This fan's main appeal is its portability, so you'd be better off with a standard desk fan if you just want to stay cool when working at your computer.
Dyson HushJet Mini Cool: also considerIf you're not sure whether the Dyson HushJet Mini Cool is the right fan to keep you cool, here are two other alternatives to consider.
Shark ChillPill
The ChillPill is a little larger and more expensive than the HushJet Mini Cool. It comes with two extra attachments (a misting fan, and cooling plate), which help enhance the effect of the fan, but it's much less powerful than the Dyson HushJet Mini.
Read our full Shark ChillPill review
MeacoFan Sefte Pro 10in
If you're looking for something that will keep you cool at your desk, this portable air circulator is ideal. It can be used plugged-in or wirelessly, you can control it via its control panel or the Meaco app, and it moves a seriously impressive amount of air.
Read our full MeacoFan Sefte Pro 10in review
How we tested the Dyson HushJet Mini CoolI spent a week testing the Dyson HushJet Mini Cool in various locations, including trains to work, at the office, and in the gym. I compared its performance directly against that of the Shark ChillPill.
I measured its noise level with a decibel meter app on my phone, and tested its battery life by fully charging it, then allowing it to run on the lowest power setting until it switched off. For more details, see how we test, review, and rate products at TechRadar.
First reviewed June 2026.
If you're in the mood for an entertaining thriller, look no further than Fuze. The new movie from director David Mackenzie ticks all the right boxes for those looking for thrills and heart-pounding tension, and it's now available to rent or buy from platforms like Prime Video and Apple TV.
The underrated thriller movie is set in London, where an unexploded World War 2-era bomb is found on a construction site. A team of military experts led by Major Will Tranter (Aaron Taylor-Johnson) is tasked with dealing with it as quickly as possible.
Simultaneously, a diamond expert named Karalis (Theo James) is working alongside a shifty group of criminals to plot an ambitious jewel heist while taking advantage of the city’s evacuation order. With all eyes on containing the bomb, they have a chance to strike.
So we've got not one but two heart-pounding incidents here, giving plenty of ground for some thrilling scenes and tension building. The movie has a nice 96-minute runtime and is well-paced; you'll certainly never be bored.
But sometimes less is more. Fuze unfortunately does rely on action and impressive set pieces over its admittedly brilliant cast, which are criminally underused. Outside of their jobs and their responsibilities in the movie, we don't really know much about them. This means that character development is lacking throughout.
It would have been cool to see great actors like Taylor-Johnson and James given a little more to do, especially when it comes to interacting with those around them. James' Karalis character has a group of robbers alongside him, including Sam Worthington as X, Shaun Mason as Y, and Nabil Elouahabi as Z.
Unfortunately, those three do feel as generic as their codenames, and I would've liked to see some proper dynamics between the robbers, which would've added higher personal stakes and more drama.
Gugu Mbatha-Raw stars as Chief Superintendent Zuzana Greenfield, alongside her right-hand Clareese, played by Honor Swinton Byrne. We have two more huge names here who feel wasted, just existing to give orders from a control room.
Had the characters been more interesting, I do think that Fuze could've been a much more effective thriller. There's no denying it's an exciting movie that will entertain you, but it's definitely not a character-driven kind of story. Then again, you might not be seeking out Fuze, looking for anything more than fast-paced scenes and nail-biting tension, which is perfectly fine.
Fuze is exciting and well shot, and despite being predictable in places, it is still a decent movie. It doesn't pretend to reinvent the wheel and gives us two exciting scenarios to follow. Set against a London backdrop with the threat of the capital's citizens in danger, it's a nightmarish scenario come to life on screen.
I would highly recommend this movie to fans of 70s thriller movies like Airport and Figures in a Landscape, as the vibes are very similar here. It's less about the characters themselves and more about the danger they find themselves in instead. Even if the characters feel disposable, we can still get sucked into the story.
Finally, Fuze's ending may divide viewers as it seems to simmer instead of going out with a bang, but I felt it was a satisfying conclusion. It might not be the most re-watchable thriller in the world, but it's still worth your time.
I consider Blackmagic’s DaVinci Resolve to be among the best professional-grade desktop non-linear video editing software out there.
You'll find it a core part of our guides to the best free video editing software and best video editing software we've ever tested. So, I was keen to see what the latest version (21), offers. And to say I was surprised would be an understatement. This is one of those tools that just keeps getting better.
And as its latest major update has just been officially released, I thought it would be a great opportunity to see what Resolve 21 has to offer.
You can download the free app by clicking here.
DaVinci Resolve 21: Pricing & plansThis is going to be a quick section: DaVinci Resolve is free.
There are no one-off fees, and certainly no subscription costs. Nothing. Nada. Zilch. We all know of Adobe’s continuous (and pricy) subscription plans, and even Apple are now embracing the subscription model with its Apple Creator Studio collection. But Resolve bucks the trend, and remains a bright beacon of hope in a dystopian subscription landscape.
Now there are limitations to Resolve, but these are generous: your exports are limited to 4K and 60fps, and any hardware acceleration is throttled, for instance. That’s because Blackmagic also have Resolve Studio, which unlocks export resolutions up to 32K and 120fps, offer more advanced color correction, additional effects, and also introduces a slew of AI-driven tools, all for a one-off price of $300.
But don’t let that put you off: Resolve should fit most people’s needs, this review will focus on the free version.
Before we delve into what’s new, if you’re unfamiliar with what DaVinci Resolve is, let’s take a broad look at what it offers. Yes, it’s a video editor, but how good can it be considering it’s free? I mean, have you seen Windows Movie Maker? And iMovie used to show so much promise, but has now fallen by the wayside.
But Resolve is so much more than a basic and limited video tool. Despite it being free, it should really be compared to Apple’s Final Cut Pro and Adobe’s Premiere Pro. Within a single program, you can catalogue your clips, build your edit, apply transitions and titles, create complex effects, perform advanced color correction, perfect the audio, and finally export your completed project.
No need to venture into After Effects or Audition, or anything like that (unless you want to of course): pretty much everything can be done within Resolve. In order to achieve this, Resolve is divided into sections, which are referred to as ‘Pages’.
‘Media’ is where you ingest and organise your clips, ‘Cut’ and ‘Edit’ are two ways to build your project - ‘Cut’ having a simplified interface, while ‘Edit’ offers more versatile options. I see ‘Cut’ as ideal for newcomers to the editing world, but I also love the fact you can effortlessly move from one Page to the other and although you might not be able to alter the more advanced functions in ‘Cut’, if you added them while in ‘Edit’, you’ll still be able to preview them while in ‘Cut'.
(Image credit: Future)Next is ‘Fusion' - which is probably the trickiest Page. It’s where you create special effects, but rather than dragging a function onto a clip, Fusion uses the concept of nodes: you add effects to your worktop then connect clips to those effects. It’s an incredibly versatile and powerful way of working - once you get used to it.
And getting used to it you must, as that concept is also present in ‘Color’, Resolve’s color Correction section, where you can perform anything from basic alteration to more advanced options used by professionals (not surprising, since Resolve started out solely as a color grading tool), and finally, the ‘Fairlight’ Page is for working on the audio.
Whether you’re using Resolve or Resolve Studio, you have access to all the same Pages. The major difference is all the added tools Studio brings to the table.
You could very easily start your journey in Resolve, primarily focussing your efforts in the ‘Cut’ Page, and as you grow in confidence, start exploring the other sections, maybe even graduating to Resolve Studio in time - all without having to pay a penny - at first. If only I had such tools when I myself started out as a struggling editor.
It’s not that you couldn’t use photos in your video projects before, but now, they have their own dedicated Page, sitting between ‘Media’ and ‘Cut’. So what can you do with it? Pretty much everything you’d expect from a dedicated image organiser tool.
Resolve’s ‘Photo’ is compatible with common RAW formats from Canon, Sony and Nikon, as well as a host of others. Put it this way: I didn’t come across a format Resolve couldn’t handle. Working on an image is a fully non-destructive process: no matter what you do, the original file is never altered.
Any photo that’s added via the ‘Media’ Page will be found here, but you can also drag others straight onto the Page’s 'Media Pool’ sidebar. To the right in an Inspector, where you’ll find a histogram, cropping tools, various color adjustments, even pitch and yaw sliders to rectify errors like fish-eye distortions for instance. You can also mark photos as ‘good’ (represented with a heart), or ‘reject’ (with an x). It’s all there, but it’s all pretty basic. Put it this way, Lightroom won’t be having sleepless nights over this inclusion.
(Image credit: Future)But that’s only part of the story. In order to perform more advanced alterations, you need to add photos to an album (which is conveniently located where the timeline usually is). Once that’s done, you can venture to Resolve’s ‘Color’ Page, and have access to all the power and versatility (and complexity) that comes with that incredible color grading tool. Just like ‘Fusion’, ‘Color' works with nodes.
You add them in sequence or parallel, reorder them, disconnect them, all of this will affect how each node affects your image, and once you go back to Photo, those alterations will be visible from there. This powerful versatility could be something Lightroom might have some concerns about, especially since this is but the first version of this few functionality.
A new Page is always a big thing to talk about when it comes to a new version of Resolve, but another new trend is the increasing addition of AI tools.
But there’s a caveat: they’re reserved for paying customers. In the free version, that menu’s either greyed out, or if you click on the ‘AI Clip Analysis’ icon, a popup window encourages you to pay the one-time fee to gain access to all the goodies in Resolve Studio.
And goodies there are, like IntelliSearch, which allows you to search for that specific element inside a clip, or the ability to transcribe what’s being said in a clip, detect faces, transform said faces, remove blemishes, remove motion blur, and so much more. Sadly, all these are out of bounds - they’ve got to entice you to upgrade somehow, right?
Should I try DaVinci Resolve?(Image credit: Future)Try it if...
You’re looking for a powerful professional-grade video editor with an impressive amount of complex and versatile features, which now includes a dedicated section for cataloguing and grading your photos… all for free.
Don't try it if...
You’re totally wedded to the likes of Apple or Adobe and have invested so much in those software ecosystems that you can’t be prised away from them, even at the prospect of a powerful and free video editing tool.
For more creative software, we've tested and reviewed the best video editing software for beginners and the best video editing apps for mobile devices.
VirtualBox is often considered among the best virtual machine software available, particularly for users looking for a free and flexible solution. Its cross-platform support and open-source model make it a popular starting point for anyone exploring virtualization, even if more advanced users may eventually outgrow its limitations.
VirtualBox: Plans and pricingOne of VirtualBox’s biggest advantages is that the core platform is completely free to use and distributed as open-source software under the GPL license.
However, not all functionality falls under the same licensing model. The optional Extension Pack, which adds features such as enhanced USB support and remote desktop capabilities, is free for personal and educational use but requires a commercial license in business environments.
In practice, this means that while individual users can access most of VirtualBox’s functionality at no cost, organizations may need to factor in additional licensing considerations depending on how the software is deployed.
Recent changes in the virtualization market, including VMware making its desktop hypervisors free for personal use, have also reduced VirtualBox’s traditional advantage in this area.
VirtualBox: Features(Image credit: Oracle // Future)VirtualBox supports a wide range of guest operating systems, including Windows, Linux, and other platforms, and allows users to allocate system resources such as CPU cores, memory, and storage on a per-virtual-machine basis.
It includes core virtualization features such as snapshots, which allow users to save and restore the state of a virtual machine, as well as shared folders and clipboard sharing between host and guest systems when Guest Additions are installed. Multiple networking modes are also available, including NAT and bridged networking, enabling different connectivity scenarios depending on user needs.
Additional functionality is provided through Guest Additions, which improve display handling, enable better mouse integration, and support features such as dynamic screen resizing. While the feature set is comprehensive for a free solution, some capabilities, particularly in areas such as graphics acceleration, remain more limited compared to commercial alternatives.
Recent versions have also introduced support for features such as virtual TPM, making it easier to run newer operating systems, including Windows 11.
VirtualBox: Interface and use(Image credit: Oracle // Future)VirtualBox uses a familiar, structured interface centered around a main dashboard for managing virtual machines and a detailed settings panel for configuration. Compared to earlier versions, the interface shows clear signs of improvement, with a more organized layout and better separation of system and machine-level tools.
That said, the overall design still feels more functional than refined. While navigation is logical once you understand where everything is, the experience lacks the level of polish and guidance seen in competing platforms, particularly for less experienced users.
Creating a virtual machine is handled through a guided setup process that covers operating system selection, resource allocation, and storage configuration. The process is generally straightforward, although certain steps such as attaching installation media or adjusting system parameters require a basic understanding of virtualization concepts.
In day-to-day use, the experience is stable but not always seamless. During testing, interaction within the virtual machine worked reliably for basic tasks, but usability is affected by small friction points, including mouse and keyboard capture behavior, which can feel unintuitive at first. While these issues can be managed with experience, they highlight the platform’s more technical orientation compared to more streamlined alternatives.
VirtualBox: Performance(Image credit: Oracle // Future)In use, VirtualBox delivers adequate performance for basic virtualization tasks, but it does not match the consistency or responsiveness of more polished alternatives. During testing, the virtual machine booted reliably and handled light workloads such as web browsing and system navigation without major issues.
However, performance can become less stable under heavier use. Applications may take longer to respond, and overall system interaction can feel less fluid compared to competing platforms. This is particularly noticeable in graphics handling, where VirtualBox’s limited acceleration capabilities restrict its suitability for more demanding workloads.
Resource usage is another factor to consider. Running a virtual machine requires careful allocation of CPU and memory, and on more modest systems, this can impact both host and guest performance. While the platform remains usable for everyday tasks, it is not optimized for high-performance scenarios.
Overall, VirtualBox performs well enough for testing environments, development setups, and general-purpose virtualization, but users seeking consistently smooth performance or advanced graphical capabilities may find stronger options elsewhere.
VirtualBox: SupportVirtualBox primarily relies on documentation and community-driven resources, including official manuals and user forums, as its main support channels.
Oracle does offer paid support through its enterprise programs, but this is limited to specific configurations and use cases. For most users, support is therefore largely self-service, which can make troubleshooting more time-consuming compared to commercial virtualization platforms with dedicated support channels.
VirtualBox: The competitionVirtualBox operates in a competitive space alongside tools such as VMware Workstation and Parallels Desktop, both of which offer similar core virtualization capabilities but target slightly different user needs.
Recent changes, including VMware making its desktop hypervisors free for personal use, have significantly increased competition in this space.
VMware Workstation is often seen as the more polished alternative, with stronger integration across enterprise environments and broader ecosystem support. While VirtualBox has largely caught up in terms of core features, VMware still tends to offer a more refined experience and better integration with other VMware products.
Parallels Desktop, on the other hand, focuses more on ease of use and performance, particularly on macOS systems. It offers tighter system integration and more seamless workflows, although this comes at a cost, unlike VirtualBox’s free and open-source model.
In practice, VirtualBox remains a strong option for users who prioritize cost and flexibility, while VMware and Parallels are often better suited to those who need higher performance, deeper integration, or a more streamlined user experience.
VirtualBox: Final Verdict(Image credit: Oracle // Future)VirtualBox remains one of the most accessible virtualization tools thanks to its free and open-source model. It covers the essentials well and offers a high degree of flexibility, but the experience still lacks the polish and consistency of commercial alternatives. While it performs reliably for basic tasks, users looking for smoother performance or a more intuitive interface may be better served elsewhere.
Proxmox VE is often listed among the best virtual machine software options, although it belongs to a different category than most desktop virtualization tools. Rather than running as an application inside Windows, macOS, or Linux, it is designed as a server virtualization platform that manages workloads through a web-based interface.
At its core, Proxmox VE combines KVM for full virtual machines with LXC containers for lighter workloads. This gives users the option to run complete operating systems when needed, while also deploying more efficient containerized services where a full VM would be unnecessary. That combination is one of the main reasons Proxmox has become popular in homelab environments, where users often want to run many services on limited hardware.
The platform has also gained momentum because of changes in the broader virtualization market. VMware remains a powerful enterprise platform, but licensing and ecosystem changes have made many homelab users and smaller organizations look for alternatives. Proxmox does not replace VMware in every enterprise scenario, but it offers a strong mix of flexibility, cost control, and practical capability.
This makes Proxmox VE particularly interesting for users who want to move beyond basic desktop virtualization. It is not the easiest tool in this category, but it is one of the most capable once the underlying concepts are understood.
Proxmox VE: Plans and pricingProxmox VE is free to download and use, which is one of its biggest advantages. There are no per-VM, per-core, or per-user licensing fees for the core platform, and users can install it on their own hardware without paying for a traditional software license.
The commercial model is built around annual subscriptions, priced per physical CPU socket. This is an important distinction, especially when compared with platforms that price around cores, editions, or broader enterprise bundles. For Proxmox VE, the number of cores on a processor does not change the subscription count.
The current subscription tiers start with Community at €120 per year per CPU socket, which provides access to the enterprise repository and community support. Basic costs €370 per year per CPU socket and adds three support tickets with a one-business-day response time. Standard costs €550 per year per CPU socket and includes 10 support tickets with a four-hour response time for critical requests within a business day. Premium costs €1,100 per year per CPU socket and includes unlimited support tickets with a two-hour response time for critical requests within a business day. All prices are listed as net prices, with VAT added where applicable.
This does not mean that free users are locked out of the core platform. The main virtualization features, including virtual machines, containers, clustering, high availability, and live migration, remain available without a paid subscription. Free users can use the no-subscription repository, although production environments will generally be better served by the enterprise repository and vendor-backed support.
Free installations also display a “no valid subscription” notice when logging into the web interface. This is a familiar Proxmox quirk rather than a functional limitation, but it is worth mentioning because almost every free user will encounter it.
In practice, Proxmox’s pricing model is one of the reasons it has gained more attention in recent years. Homelab users can run the platform at no cost, while businesses can add support without moving to a per-core licensing model. That makes Proxmox particularly attractive for users evaluating alternatives to VMware, although organizations still need to consider support, skills, migration planning, and operational risk rather than looking only at the license cost.
Proxmox VE: Features(Image credit: Proxmox // Future)Proxmox VE provides a broad set of features that go well beyond basic VM creation. The platform integrates KVM virtual machines, LXC containers, software-defined storage, networking, clustering, and high-availability tools into a single environment. This gives it a level of scope that is closer to infrastructure management than traditional desktop virtualization.
The support for both VMs and containers is particularly important. Full virtual machines remain useful when complete operating system isolation is needed, while LXC containers offer a lighter way to run services with lower overhead. For users running many small services in a homelab, this can be a major advantage over platforms that focus only on full virtual machines.
Storage is another major part of the platform. Proxmox can work with technologies such as ZFS, LVM, NFS, iSCSI, and Ceph, depending on the deployment. This flexibility is powerful, but it also requires care. Unlike desktop virtualization tools, where storage is often abstracted away, Proxmox expects users to understand how their storage choices affect performance, snapshots, replication, and reliability.
Backup integration is also a strong point. Proxmox Backup Server adds support for efficient backup workflows, including incremental and deduplicated backups. This has become an important part of the Proxmox ecosystem, especially for users who want a backup approach designed around virtual machines and containers rather than a generic file-based tool.
Clustering and high availability extend the platform further. Users can group multiple nodes together, migrate workloads, and design environments that are more resilient than a single standalone host. These features are valuable, but they require planning and are not as simple as creating a local VM on a desktop hypervisor.
Proxmox VE: Interface and use(Image credit: Proxmox // Future)Proxmox VE is managed primarily through a browser-based interface. This is one of its biggest practical advantages, because most common tasks can be handled without installing a separate management application. The interface provides access to nodes, virtual machines, containers, storage, networking, logs, and tasks from one central view.
The design is functional rather than polished. Compared to VMware’s more refined enterprise tools or desktop applications such as Parallels and VMware Workstation, Proxmox can feel more technical and less guided. However, the layout is logical once the main concepts are understood, and common actions such as creating a VM, opening a console, checking storage, or viewing node resources are easy to reach.
Creating a virtual machine follows a structured wizard, but the process still assumes that users understand ISO images, storage targets, CPU allocation, memory, networking, and disk formats. This is not difficult for experienced users, but it is a noticeable step up from tools that automatically hide most of these decisions.
The same applies to containers and networking. LXC containers are efficient and powerful, but users need to understand how they differ from virtual machines. Networking can also become complex, especially when moving beyond a simple bridged setup into VLANs, software-defined networking, or clustered environments.
For homelab users and administrators, this level of control is part of the appeal. For casual users who only want to run another operating system occasionally, it may feel like too much infrastructure for the task.
Proxmox VE: Performance(Image credit: Proxmox // Future)Proxmox VE can deliver strong performance, particularly when installed directly on suitable hardware. Because it is built around KVM and runs as a server virtualization platform rather than a desktop application, it avoids some of the overhead and friction associated with Type 2 hypervisors.
That said, performance depends heavily on hardware, storage design, and configuration. A well-configured Proxmox system can run virtual machines and containers efficiently, but poor storage choices, unsuitable networking, or underpowered hardware can limit the experience quickly. This is especially true when using ZFS, Ceph, or more advanced replication setups, where configuration decisions have a direct impact on performance.
Containers are one of Proxmox’s strongest performance-related advantages. LXC workloads are lighter than full virtual machines and can help users run more services on the same hardware. This matters in homelab and small infrastructure environments, where memory and storage are often limited.
GPU passthrough is also available and can be useful for advanced users who want to assign hardware to specific workloads. However, it requires compatible hardware and additional configuration, so it should not be treated as a beginner feature.
In longer-term use, Proxmox is often praised for stability, especially in homelab scenarios. Once configured properly, it can provide a reliable base for running persistent workloads, although it remains less polished than VMware in some areas. That balance is important: Proxmox performs well, but it rewards users who understand the platform rather than those expecting a fully guided experience.
Proxmox VE: SupportProxmox has extensive documentation, an active community, and a growing ecosystem of guides, scripts, and third-party resources. This community activity is one of the reasons the platform has gained momentum among homelab users and smaller organizations.
Official support is tied to paid subscriptions, which also provide access to the enterprise repository. For businesses, this model makes sense because it provides a clearer support path and more conservative update source. For individual users, community documentation and forums will often be the main support channel.
This is one area where expectations matter. Proxmox offers strong value, but free users should not expect the same support experience as customers of a fully commercial enterprise platform. The platform is usable without a subscription, but production environments should consider the support model carefully.
The broader ecosystem has improved. Proxmox Backup Server strengthens the native backup story, and third-party backup vendors have started adding support for Proxmox environments. This makes the platform easier to consider for more serious deployments than it was in the past.
Proxmox VE: The competitionProxmox VE competes most directly with VMware vSphere and ESXi in infrastructure environments, although it is also often discussed by users moving beyond desktop tools such as VirtualBox, VMware Workstation, and Hyper-V.
Compared to VMware, Proxmox offers a more accessible cost structure and a stronger appeal for homelabs, smaller deployments, and users who prefer open-source infrastructure. It also has advantages in container support through LXC, which gives it a useful middle ground between full virtual machines and lighter service deployments.
VMware still has strengths that Proxmox has not fully matched. Its enterprise ecosystem remains more mature, and areas such as advanced storage, polished management tooling, and large-scale enterprise support are still important differentiators. For large organizations with complex requirements, VMware may remain the safer and more familiar choice.
Hyper-V remains relevant for Windows-centric environments, especially where integration with Microsoft infrastructure matters. However, Proxmox is more flexible for users who want an open-source server virtualization platform with strong Linux foundations.
In practice, Proxmox VE is best suited to users who want serious virtualization without commercial licensing pressure and who are willing to learn the platform properly. It is not the easiest tool in the category, but it offers one of the strongest combinations of value, flexibility, and control.
Proxmox VE: Final VerdictProxmox VE is one of the strongest open-source virtualization platforms available for homelab users, small infrastructure environments, and users who want more control than desktop virtualization tools can provide. It combines KVM virtual machines, LXC containers, clustering, storage, networking, and backup integration into a single platform, making it far more ambitious than tools such as VirtualBox or VMware Workstation.
That strength also defines its limitations. Proxmox is not designed as a simple desktop application. It is installed as a server-focused operating environment, managed through a browser, and built around concepts such as nodes, storage pools, bridges, containers, and clusters. Users familiar with Linux and infrastructure tools will appreciate the control, while beginners may find the learning curve significant.
For users willing to work through that complexity, Proxmox VE delivers excellent value. It is free to download and use, has strong community momentum, and offers a capable alternative to commercial virtualization platforms. It still lacks some of VMware’s enterprise polish and ecosystem depth, but for homelabs and smaller deployments, it is a serious and increasingly compelling option.
For a simple device, there’s a lot going on with the Google Fitbit Air. People feel very strongly about it, for better or for worse, and there’s been a lot of chatter and interest surrounding its release. My experience actually wearing the device has generally been very positive, with tracking accuracy comparable to that offered by my Apple Watch Ultra 3, which is pretty much the gold standard for wrist-based health tracking. Metrics relying on the tracker’s onboard heart-rate monitoring are reliable, matching the Apple Watch closely during work, rest, and exercise during my week with the Fitbit Air.
Set-and-forget trackers are clearly having a moment. Oura has released the Oura Ring 5 just one year after the Ring 4, and Whoop’s success has given rise to a number of copycats from brands looking to recreate the experience of a distraction-free screenless ‘focus band’ for a less premium price.
Google is one such copycat, but the screenless, slender form factor suits the Fitbit brand — the original Fitbit was a digital pedometer — down to the ground. It speaks to the core of what Fitbit used to be, before it became just another company churning out mediocre smartwatches running a limited proprietary operating system. Your Fitbit was always meant to be a discreet little device, and devices don’t come more discreet than the Google Fitbit Air. Weighing just 12g and using a very slender 17mm-wide band, the Fitbit Air is a lovely and (crucially) comfortable device to wear and use. It’s much more comfortable to wear during sleep than any full smartwatch I’ve ever tried (and I have tried a lot), or even the Whoop.
However, it’s hard to separate the Fitbit Air from the Google Health app, with Google’s redesign of the Fitbit app causing particular ire amongst Fitbit users. The app is a bit of a mess, and not intuitive to use, with features dotted all over the place. It feels like it’s designed to primarily function as a home for the AI Health Coach chatbot, which is very intelligent and perhaps the best in-app AI assistant I’ve tried, but it’s not the best way to operate a health app. Whoop’s balance of AI and on-page metrics is much better.
If you’re looking for a consistent screenless focus band to track different sorts of workouts like gym, sports, and yoga, alongside sleep, heart health and general wellness, you can use the Google Fitbit Air as is, paying just the up-front price, and keep your tracking simple.
Whether or not you can get onboard with the Premium option will depend on how much you like chatbots — I found its flexibility immensely helpful, but its constant chirpy summaries and insistence on hiding my data inside walls of text became annoying, so it’s a mixed bag for me. Overall, though, this is the best, most interesting Fitbit to have been released in years.
Google Fitbit Air: Price and availabilityThe Google Fitbit Air costs $99.99 / £84.99 / AU$199, and for that you get the tracker, a band of your choice, and a charger specific to the Google Fitbit Air — proving once again that Google seems to be allergic to making a charger that’s compatible with more than one device.
The Google Health Premium subscription, which gives you access to Google’s AI Health Coach, costs $9.99 / £7.99 / AU$14.99 a month, or $99.99 / £79.99 / AU$140 annually. Existing Google AI Pro members get it at no extra cost.
For comparison, the cheapest Apple Watch SE 3 starts at $249 / £219 / AU$399, while Whoop’s complex pricing structure begins at £169 / $199 / AU$299 per year for the lowest tier. The Google Fitbit Air’s pricing is cheap for what you get, with the Health Coach as an optional add-on rather than a mandatory subscription.
The Google Fitbit Air’s design can be split into two components: the physical device, which is excellent, and the new Google Health app, which is a bit of a misfire.
Let’s start with the positives. The Fitbit Air comprises the tracker itself, and a wraparound band in a choice of three styles — a silicone Active band, the woven Performance Loop, or the polyurethane (pleather) Elevated Modern band. Each comes with their own color options, and a plastic clasp. On the underside of the tracker are the optical heart rate sensor, skin temperature sensor, and an accelerometer and gyroscope for counting steps.
It weighs just 12g, even with the Performance Loop strap, so it’s light and easy to wear, which is crucial for sleep tracking. I wore it on my right wrist, with a watch on my left during the day, and I didn’t feel like an obnoxious techie: unless someone looks closely, it just looks like a wristband, with the lack of a screen helping here. The Performance Loop strap that came with my review unit is the best-looking of the three options in this respect, but none of them look bad.
The tracker also has a haptic vibrate function — if you set an alarm in the app, this can be disabled with a tap on the top of the device. And that’s pretty much all the interaction you have with the sensor and band as a whole; everything else, as with one of the best smart rings or other screenless tracking options, is done via the app.
(Image credit: Future)The app is where Google’s design falls down. Split into four tabs — Today, Fitness, Sleep and Health — the Google Health app features a dashboard with key metrics at the top, and insights or libraries of content below it.
But with information scattered across a quartet of tabs, it’s hard to find certain granular metrics or content you’re looking for compared to the old Fitbit app. I searched for Mindfulness content for 10 minutes before finding the five-minute meditation I was after, for example, and I often ended up starting new chats with the AI coach rather than resuming a chat from my history. It’s just not intuitive to use.
What is right in your face, for Premium users, is the AI coach, which cloaks your metrics in paragraphs of cheery text, so it takes longer to get to your information. It’s clever, and we’ll get onto its functionality in a moment, but I wish it summarized and contextualized less, and just offered more 'glanceability'.
The Fitbit Air records the usual metrics you’d expect with a modern fitness tracker, including step count, heart rate, floors climbed, sleep stages, and so forth. Fitbit’s Daily Readiness score shows you how prepared your body is for exercise, based on recent activity and sleep scores, while it also surfaces weekly cardio goals, hydration, and basic food logging. It can offer irregular heart rate rhythm notifications, which is great for potentially diagnosing atrial fibrilation, and allows you to take an ECG scan manually to monitor your heart health.
Basic tracking is all the free version gets you; there’s no workout builder, mindfulness content, way to log sickness, or any other extras beyond the numbers. It doesn’t add any special metrics for runners, such as stride or cadence, as many of the best running watches do. For some users who just want the numbers, this will be fine, with no need to subscribe to the Premium tier.
For Premium users, food logging can be done via the AI Health Coach, by taking a picture of your food. It’s very good at logging packaged food (it was bang on logging a crinkled package of chips with the message ‘log this’ as a 74kcal snack, also breaking down macros and salt content) but can struggle with plates of homemade food, although a basic description such as ‘log this lentil curry’ is enough for it to provide an estimation. The more information you can provide (weight etc), the more detailed it gets.
It’s the best version of this feature I’ve tried across many different apps, but those without the Health Coach can log food manually, as you can in other apps like MyFitnessPal.
(Image credit: Future)The app also has access to Fitbit’s library of workout and meditation content, including individual moves, which you can use to build your own workout. Again, this is only available through the Premium subscription.
Through it all runs the AI Health Coach, which I actually found to be useful. Although there was no field to input illness as such, I typed my cold symptoms out to the Health Coach, and it remembered I was ill and adjusted its messaging and advice throughout the rest of the week based on my symptoms. I went to the gym without following one of the app’s pre-prescribed workouts, typed my sets and reps into the Coach’s ‘Ask Coach’ field, and it not only logged the workout, but suggested complementary routines to work different muscle groups for the rest of the week.
The AI Coach is a flexible ‘macro-feature’ that works well in conjunction with the rest of the app, and almost allows you to bypass the chaotic layout: you can just ask the Coach to serve you up what you need, which I’m sure was Google’s intent. Your use of the Coach will depend on your tolerance for chatbots: those who use Gemini or ChatGPT for everything will get a lot out of it, while those who loathe AI and just want numbers will likely loathe the Premium tier.
As I noted when I compared the Google Fitbit Air against the Apple Watch Ultra 3, the tracker performed well during my 10K test run, at least for the metrics like heart rate and calorie count, which it can use its onboard sensors for. The metrics it uses my phone's GPS to estimate, like distance, were off significantly.
I’ve embedded the results below, but generally there was no statistically significant difference between heart rate or calorie estimations from the two devices. I'll be updating the review with confirmation of heart rate scores tested against a new Polar H10 chest strap, as my old testing unit has malfunctioned.
@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'); @import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,400;0,900;1,900&display=swap'); /* Reset & Base */ #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper *, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper *:before, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper *:after, #fv-chart-1780054953725-jxfr84byr-slideshow *, #fv-chart-1780054953725-jxfr84byr-slideshow *:before, #fv-chart-1780054953725-jxfr84byr-slideshow *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper, #fv-chart-1780054953725-jxfr84byr-slideshow { font-family: 'Open Sans', sans-serif !important; } /* Main Wrappers */ #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper { position: relative !important; overflow: visible !important; --riv-primary: #2E6E93; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-inner-wrapper { color: #1F2937 !important; background-color: #ffffff !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; overflow: hidden !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-inner-wrapper.fv-no-header.fv-is-image-compare { padding-top: 0 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.fv-full-bleed { width: 100vw !important; margin-left: calc(50% - 50vw) !important; } body { overflow-x: clip !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.fv-full-bleed .fv-inner-wrapper { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-inner-wrapper.fv-is-shop-the-look { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } /* Slideshow Styles */ #fv-chart-1780054953725-jxfr84byr-slideshow { position: relative !important; width: 100% !important; margin: 1rem 0 !important; --riv-primary: #2E6E93; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-slides-wrapper { position: relative !important; width: 100% !important; } #fv-chart-1780054953725-jxfr84byr-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; } } /* Top Navigation Row (Redesign) */ #fv-chart-1780054953725-jxfr84byr-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-1780054953725-jxfr84byr-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-1780054953725-jxfr84byr-slideshow .fv-nav-btn svg { width: 18px !important; height: 18px !important; stroke-width: 3px !important; filter: none !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-nav-btn:hover { opacity: 0.9 !important; transform: translateY(-1px) !important; } #fv-chart-1780054953725-jxfr84byr-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-1780054953725-jxfr84byr-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; } /* Slideshow Dropdown Navigation */ #fv-chart-1780054953725-jxfr84byr-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-1780054953725-jxfr84byr-slideshow .fv-slideshow-select:focus { outline: 2px solid #2E6E93 !important; border-color: #2E6E93 !important; } /* Typography */ #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: var(--riv-primary) !important; font-size: 20px !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; padding: 0 20px !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-chart-subhead { font-size: 18px !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #374151 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; padding: 0 20px !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .rv-chart-caption { font-size: 15px !important; color: #374151 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } /* Versus Chart */ #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-select-wrapper { flex: 1; min-width: 0; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-select { background: transparent; border: none; border-bottom: 2px solid; font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; padding: 0.25rem 0; cursor: pointer; outline: none; appearance: none; -webkit-appearance: none; -moz-appearance: none; max-width: 100%; width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-select option { font-family: 'Open Sans', sans-serif; font-weight: 400; font-size: 14px; color: #374151; direction: ltr; text-align: left; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-vs { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; color: #374151; letter-spacing: 0.1em; padding: 0 1rem; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-bar { height: 32px; width: var(--target-width); transition: width 0.8s ease-out; animation: fv-grow-max-width 0.8s ease-out forwards; display: flex; align-items: center; overflow: hidden; color: #ffffff; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-bar-right { border-radius: 0 4px 4px 0; justify-content: flex-start; padding: 0 8px; } @keyframes fv-grow-max-width { from { max-width: 0; } to { max-width: 100%; } } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-center-line { position: absolute; left: 50%; top: 0; bottom: 0; width: 4px; background-color: #ffffff; transform: translateX(-50%); z-index: 1; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-inside-left { white-space: nowrap; flex-shrink: 0; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-inside-right { white-space: nowrap; flex-shrink: 0; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-pct-diff { font-size: 12px; font-weight: 600; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-label { position: absolute; left: 50%; transform: translateX(-50%); top: 0; background-color: transparent; border: none; box-shadow: none; padding: 0; font-family: 'Open Sans', sans-serif; font-weight: 700; font-size: 14px; color: #374151; white-space: nowrap; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } /* Image Comparison Styles */ #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-image-compare-container { width: auto !important; margin-left: -1.5rem !important; margin-right: -1.5rem !important; margin-bottom: 2rem !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.fv-full-bleed .fv-image-compare-container { width: 100% !important; max-width: none !important; margin: 0 auto !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .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-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .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-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .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-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .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-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .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-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .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-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .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-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-image-compare-handle.fv-image-compare-handle-square { border-radius: 6px !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .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-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .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-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .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-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-image-compare-label-left { left: 1rem !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-image-compare-label-right { right: 1rem !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-image-compare-expand-btn, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .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-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-image-compare-expand-btn:hover, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-image-compare-close-btn:hover { background-color: rgba(0, 0, 0, 0.7) !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-image-compare-close-btn { display: none !important; top: 1rem !important; bottom: auto !important; } /* Fullscreen State */ #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .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-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .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-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner:active { cursor: grabbing !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .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-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .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-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-expand-btn { display: none !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-close-btn { display: flex !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-label-right { right: 4rem !important; } /* Footer */ #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; min-width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; flex-shrink: 0 !important; } /* Display Mode Controls */ #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-dropdown-title { appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background: transparent !important; border: none !important; font-size: 18px !important; font-weight: 600 !important; color: var(--riv-primary) !important; padding-right: 28px !important; padding-left: 10px !important; cursor: pointer !important; text-align: center !important; text-align-last: center !important; width: auto !important; max-width: 100% !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; margin: 0 !important; text-overflow: ellipsis !important; overflow: hidden !important; white-space: nowrap !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-dropdown-title:focus { outline: none !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-dropdown-title::-ms-expand { display: none !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-dropdown-chevron { position: absolute !important; right: 0 !important; top: 50% !important; transform: translateY(-50%) !important; pointer-events: none !important; color: var(--riv-primary) !important; display: flex !important; align-items: center !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 14px !important; color: #374151 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; } /* Legend */ #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } /* Multi-Value Legend */ #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-multi-value-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 12px 24px !important; margin-bottom: 1.5rem !important; padding: 0 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-multi-legend-item { display: flex !important; align-items: center !important; gap: 8px !important; font-size: 14px !important; color: #374151 !important; font-weight: 500 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; } /* Chart Core Styles */ #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; word-wrap: break-word !important; max-width: 100% !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-bar-row, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #374151 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; min-height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; min-height: 23px !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; font-size: 14px !important; font-weight: bold !important; overflow: hidden !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #374151 !important; white-space: nowrap !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } /* Multi-Value Bar Logic */ #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; } /* Stacked Bar */ #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-segment-value { font-size: 14px !important; font-weight: bold !important; } /* Grouped Bar */ #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #374151 !important; text-transform: none !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-bar-cluster .fv-bar-container { height: 20px !important; } /* Line Chart Grid */ #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } /* X-Axis */ #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #374151 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-x-axis-ticks span::before { content: '' !important; position: absolute !important; top: -6px !important; left: 50% !important; transform: translateX(-50%) !important; width: 2px !important; height: 4px !important; background-color: #D1D5DB !important; border-radius: 1px !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #374151 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-y-axis-title { font-size: 15px !important; color: #374151 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; /* Aligns with Y-axis line inside SVG (35/600) */ margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } /* Shop The Look */ #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-stl-container { position: relative !important; width: auto !important; display: block !important; background-color: transparent !important; transition: min-height 0.3s ease !important; overflow: hidden !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-stl-wrapper { position: relative !important; width: auto !important; display: block !important; margin: 0 auto !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.fv-full-bleed .fv-stl-container { width: 100% !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.fv-full-bleed .fv-stl-wrapper { width: 100% !important; max-width: none !important; margin: 0 auto !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-stl-image { display: block !important; width: 100% !important; height: auto !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-stl-hotspot-container { position: absolute !important; z-index: 10 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-stl-hotspot-btn { position: absolute !important; margin-left: -0.75rem !important; margin-top: -0.75rem !important; width: 1.5rem !important; height: 1.5rem !important; border-radius: 9999px !important; display: flex !important; align-items: center !important; justify-content: center !important; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06) !important; transition-property: all !important; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important; transition-duration: 300ms !important; cursor: pointer !important; border: none !important; padding: 0 !important; background-color: #ffffff !important; color: #1e293b !important; font-size: 0.75rem !important; font-weight: 700 !important; font-family: sans-serif !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-stl-hotspot-btn:hover { transform: scale(1.1) !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-stl-hotspot-btn:focus { outline: 2px solid transparent !important; outline-offset: 2px !important; box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #000000 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-stl-hotspot-btn[aria-expanded="true"] { background-color: #3b82f6 !important; color: #ffffff !important; transform: scale(1.1) !important; box-shadow: 0 0 0 2px #ffffff !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-stl-hotspot-pulse { position: absolute !important; inset: 0 !important; border-radius: 9999px !important; background-color: #2E6E93 !important; opacity: 0.4 !important; pointer-events: none !important; z-index: -1 !important; animation: fv-stl-ping 1.5s cubic-bezier(0, 0, 0.2, 1) 3 forwards !important; } @keyframes fv-stl-ping { 75%, 100% { transform: scale(2); opacity: 0; } } @media (max-width: 640px) { #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-stl-hotspot-pulse { animation-fill-mode: none !important; } } /* Shop the look button */ #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-stl-shop-all-btn { position: absolute !important; bottom: 1rem !important; right: 1rem !important; height: 2.5rem !important; background-color: rgba(255, 255, 255, 0.95) !important; backdrop-filter: blur(12px) !important; color: #111827 !important; padding: 0 1rem 0 3rem !important; border-radius: 0.25rem !important; font-weight: 700 !important; font-size: 0.875rem !important; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2) !important; border: none !important; cursor: pointer !important; transition: all 0.2s !important; z-index: 10 !important; display: flex !important; align-items: center !important; text-transform: uppercase !important; overflow: hidden !important; white-space: nowrap !important; max-width: calc(100% - 2rem) !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-stl-shop-all-btn span { overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-stl-shop-all-btn:hover { background-color: #ffffff !important; transform: scale(1.05) !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-stl-shop-all-logo { position: absolute !important; left: 0 !important; top: 0 !important; width: 2.5rem !important; height: 2.5rem !important; object-fit: cover !important; background-color: #ffffff !important; border-right: 1px solid #f3f4f6 !important; flex-shrink: 0 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-stl-shop-all-icon { position: absolute !important; left: 0 !important; top: 0 !important; width: 2.5rem !important; height: 2.5rem !important; display: flex !important; align-items: center !important; justify-content: center !important; background-color: #ffffff !important; border-right: 1px solid #f3f4f6 !important; color: #1f2937 !important; flex-shrink: 0 !important; } /* All Products Modal */ #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr { position: fixed !important; inset: 0 !important; background-color: rgba(0, 0, 0, 0) !important; backdrop-filter: blur(0px) !important; -webkit-backdrop-filter: blur(0px) !important; display: flex !important; align-items: center !important; justify-content: center !important; z-index: 99999 !important; pointer-events: none !important; transition: background-color 0.3s ease, backdrop-filter 0.3s ease, -webkit-backdrop-filter 0.3s ease !important; padding: 1rem !important; overflow: hidden !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr { position: absolute !important; padding: 0 !important; align-items: flex-end !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr.is-active { background-color: rgba(0, 0, 0, 0.2) !important; backdrop-filter: blur(4px) !important; -webkit-backdrop-filter: blur(4px) !important; pointer-events: auto !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-content { width: 100% !important; max-width: 42rem !important; max-height: 100% !important; display: flex !important; flex-direction: column !important; position: relative !important; background-color: rgba(255, 255, 255, 0.95) !important; backdrop-filter: blur(12px) !important; -webkit-backdrop-filter: blur(12px) !important; border-radius: 1rem !important; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25) !important; overflow: hidden !important; transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease !important; opacity: 0 !important; transform: scale(0.95) !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-content { max-width: 100% !important; height: 85% !important; max-height: 85% !important; border-radius: 1.5rem 1.5rem 0 0 !important; transform: translateY(100%) !important; opacity: 1 !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr.is-active .fv-stl-all-products-content { opacity: 1 !important; transform: scale(1) !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr.is-active .fv-stl-all-products-content { transform: translateY(0) !important; } /* V2 Bottom Sheet Style */ #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr.v2 { align-items: flex-end !important; padding: 0 !important; } @media (min-width: 640px) { #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr.v2:not(.mobile-view *) { justify-content: flex-end !important; } } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr.v2 .fv-stl-all-products-content { max-width: 100% !important; height: 85% !important; max-height: 85% !important; border-radius: 1.5rem 1.5rem 0 0 !important; transform: translateY(100%) !important; opacity: 1 !important; } @media (min-width: 640px) { #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr.v2:not(.mobile-view *) .fv-stl-all-products-content { max-width: 700px !important; border-radius: 1.5rem 0 0 0 !important; } } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr.v2.is-active .fv-stl-all-products-content { transform: translateY(0) !important; opacity: 1 !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-header { display: flex !important; align-items: center !important; justify-content: space-between !important; padding: 1.5rem !important; border-bottom: 1px solid #e5e7eb !important; flex-shrink: 0 !important; position: sticky !important; top: 0 !important; background-color: rgba(255, 255, 255, 0.8) !important; backdrop-filter: blur(12px) !important; -webkit-backdrop-filter: blur(12px) !important; z-index: 10 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-header { padding: 0.75rem !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-logo { height: 1.5rem !important; width: auto !important; object-fit: contain !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-logo { height: 1.25rem !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-title { font-size: 1.25rem !important; font-weight: 700 !important; color: #111827 !important; margin: 0 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-title { font-size: 1.125rem !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-close { width: 2rem !important; height: 2rem !important; border-radius: 9999px !important; background-color: rgba(0, 0, 0, 0.05) !important; display: flex !important; align-items: center !important; justify-content: center !important; border: none !important; cursor: pointer !important; z-index: 10 !important; color: #6b7280 !important; transition: all 0.2s !important; padding: 0 !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-close:hover { background-color: rgba(0, 0, 0, 0.1) !important; color: #111827 !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-list { list-style: none !important; padding: 1.5rem !important; margin: 0 !important; overflow-y: auto !important; flex: 1 !important; display: flex !important; flex-direction: column !important; gap: 0.75rem !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-list { padding: 0.75rem !important; gap: 0.5rem !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-item { margin: 0 !important; padding: 0.25rem !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-link { display: flex !important; align-items: flex-start !important; padding: 0.75rem !important; text-decoration: none !important; color: inherit !important; transition: all 0.2s !important; border-radius: 1rem !important; border: 1px solid transparent !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-link { padding: 0.5rem !important; border-radius: 0.75rem !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-link:hover { background-color: #ffffff !important; border-color: #e5e7eb !important; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03) !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-item.is-highlighted .fv-stl-all-products-link { background-color: #ffffff !important; border-color: #d1d5db !important; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06), 0 0 0 2px #111827 !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-image-container { position: relative !important; margin-right: 1.25rem !important; flex-shrink: 0 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-image-container { margin-right: 0.75rem !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-number { position: absolute !important; top: -0.5rem !important; left: -0.5rem !important; width: 1.5rem !important; height: 1.5rem !important; border-radius: 9999px !important; background-color: #0f172a !important; color: #ffffff !important; display: flex !important; align-items: center !important; justify-content: center !important; font-size: 0.75rem !important; font-weight: 700 !important; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06), 0 0 0 2px #ffffff !important; z-index: 10 !important; font-family: sans-serif !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-number { top: -0.375rem !important; left: -0.375rem !important; width: 1.25rem !important; height: 1.25rem !important; font-size: 0.625rem !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-image-wrapper { width: 6rem !important; height: 6rem !important; border-radius: 0.75rem !important; overflow: hidden !important; background-color: #f9fafb !important; border: 1px solid #f3f4f6 !important; display: flex !important; align-items: center !important; justify-content: center !important; box-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, 0.02) !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-image-wrapper { width: 4rem !important; height: 4rem !important; border-radius: 0.5rem !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-image { width: 100% !important; height: 100% !important; object-fit: cover !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-placeholder { width: 2rem !important; height: 2rem !important; color: #d1d5db !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-placeholder { width: 1.5rem !important; height: 1.5rem !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-info { flex: 1 !important; min-width: 0 !important; display: flex !important; flex-direction: column !important; justify-content: center !important; margin-top: 0.25rem !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-info { margin-top: 0 !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-brand { font-size: 0.625rem !important; font-weight: 700 !important; color: #6b7280 !important; text-transform: uppercase !important; letter-spacing: 0.1em !important; margin: 0 0 0.375rem 0 !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-brand { font-size: 0.5625rem !important; margin: 0 0 0.25rem 0 !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-name { font-size: 1rem !important; font-weight: 700 !important; color: #111827 !important; margin: 0 0 0.375rem 0 !important; display: -webkit-box !important; -webkit-line-clamp: 2 !important; -webkit-box-orient: vertical !important; overflow: hidden !important; line-height: 1.25 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-name { font-size: 0.875rem !important; margin: 0 0 0.25rem 0 !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-meta { display: flex !important; align-items: center !important; font-size: 0.875rem !important; margin-bottom: 0.375rem !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-meta { font-size: 0.75rem !important; margin-bottom: 0.25rem !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-price { font-weight: 700 !important; color: #111827 !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-sale-price { font-weight: 700 !important; color: #dc2626 !important; margin-right: 0.5rem !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-sale-price { margin-right: 0.375rem !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-original-price { color: #9ca3af !important; text-decoration: line-through !important; font-size: 0.75rem !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-original-price { font-size: 0.625rem !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-commentary { font-size: 0.875rem !important; color: #4b5563 !important; margin: 0 !important; display: -webkit-box !important; -webkit-line-clamp: 2 !important; -webkit-box-orient: vertical !important; overflow: hidden !important; line-height: 1.375 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-commentary { font-size: 0.75rem !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-action { width: 2.5rem !important; height: 2.5rem !important; border-radius: 9999px !important; background-color: #f9fafb !important; display: flex !important; align-items: center !important; justify-content: center !important; color: #9ca3af !important; margin-left: 1rem !important; flex-shrink: 0 !important; border: 1px solid #f3f4f6 !important; transition: all 0.2s !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-action { width: 2rem !important; height: 2rem !important; margin-left: 0.75rem !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-action svg { width: 14px !important; height: 14px !important; } #fv-stl-all-products-modal-fv-chart-1780054953725-jxfr84byr .fv-stl-all-products-link:hover .fv-stl-all-products-action { background-color: #111827 !important; color: #ffffff !important; border-color: #111827 !important; } /* Image Annotation Styles */ #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-ia-container { position: relative !important; width: auto !important; display: block !important; background-color: transparent !important; overflow: hidden !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-ia-wrapper { position: relative !important; width: auto !important; display: block !important; margin: 0 auto !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.fv-full-bleed .fv-ia-container { width: 100% !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.fv-full-bleed .fv-ia-wrapper { width: 100% !important; max-width: none !important; margin: 0 auto !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-ia-image { display: block !important; width: 100% !important; height: auto !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-ia-node-container { position: absolute !important; z-index: 10 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-ia-node-button { position: absolute !important; margin-left: -0.75rem !important; margin-top: -0.75rem !important; width: 1.5rem !important; height: 1.5rem !important; border-radius: 9999px !important; display: flex !important; align-items: center !important; justify-content: center !important; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1) !important; transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1) !important; cursor: pointer !important; border: none !important; padding: 0 !important; background-color: #ffffff !important; color: #1e293b !important; font-size: 0.75rem !important; font-weight: 700 !important; font-family: sans-serif !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-ia-node-button:hover { transform: scale(1.1) !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-ia-node-button.is-active { background-color: #2E6E93 !important; color: #ffffff !important; transform: scale(1.1) !important; box-shadow: 0 0 0 2px #ffffff !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-ia-pulse-ring { position: absolute !important; inset: 0 !important; border-radius: 9999px !important; background-color: #2E6E93 !important; opacity: 0.4 !important; pointer-events: none !important; z-index: -1 !important; animation: fv-ia-ping 1.5s cubic-bezier(0, 0, 0.2, 1) 3 forwards !important; } @keyframes fv-ia-ping { 75%, 100% { transform: scale(2); opacity: 0; } } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-ia-static-tooltip { display: none !important; position: absolute !important; top: -10px !important; left: 50% !important; transform: translate(-50%, -100%) !important; background-color: rgba(255, 255, 255, 0.95) !important; padding: 10px !important; border-radius: 6px !important; box-shadow: 0 4px 12px rgba(0,0,0,0.15) !important; width: max-content !important; max-width: 200px !important; font-size: 13px !important; color: #1f2937 !important; z-index: 20 !important; pointer-events: none !important; white-space: pre-wrap !important; line-height: 1.4 !important; border: 1px solid #e5e7eb !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-ia-node-button:hover + .fv-ia-static-tooltip { display: block !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-logo-explore-bar { position: relative !important; width: 100% !important; display: flex !important; justify-content: center !important; align-items: center !important; min-height: 30px !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-logo-explore-bar .fv-logo { margin: 0 auto !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-ia-explore-wrapper { position: absolute !important; right: 0 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-logo-explore-bar { flex-direction: column !important; min-height: auto !important; gap: 0.75rem !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-ia-explore-wrapper { position: static !important; align-self: flex-end !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-ia-explore-btn { background-color: rgba(255, 255, 255, 0.95) !important; color: #1e293b !important; border: 1px solid #e5e7eb !important; border-radius: 9999px !important; padding: 0.5rem 1.25rem !important; font-size: 0.875rem !important; font-weight: 600 !important; font-family: sans-serif !important; display: inline-flex !important; align-items: center !important; gap: 0.5rem !important; cursor: pointer !important; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1) !important; transition: all 0.2s !important; pointer-events: auto !important; flex-shrink: 0 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-ia-explore-btn:hover { background-color: #ffffff !important; transform: translateY(-2px) !important; box-shadow: 0 6px 8px -1px rgba(0, 0, 0, 0.15) !important; color: #2E6E93 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-ia-explore-btn svg { transition: transform 0.2s !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-ia-explore-btn:hover svg { transform: translateX(2px) !important; } /* IA Modal Styles */ #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-ia-active-modal-container { display: none !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-ia-modals { display: block !important; position: static !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-ia-modal-item { display: none !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-ia-modal-item.is-active { display: flex !important; flex-direction: column !important; position: absolute !important; top: 1rem !important; right: 1rem !important; z-index: 20 !important; width: 18rem !important; max-width: calc(100% - 2rem) !important; background-color: #ffffff !important; padding: 1rem !important; border-radius: 0.75rem !important; box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04) !important; border: 1px solid #e5e7eb !important; border-top: 4px solid #2E6E93 !important; animation: fv-ia-fade-in 0.2s ease-out !important; gap: 0.75rem !important; max-height: 80% !important; overflow-y: auto !important; pointer-events: auto !important; } @keyframes fv-ia-fade-in { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-ia-modal-header { display: flex !important; justify-content: space-between !important; align-items: flex-start !important; margin: 0 !important; gap: 0.5rem !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-ia-node-title { font-size: 1rem !important; line-height: 1.25 !important; font-weight: 700 !important; color: #111827 !important; margin: 0 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-ia-close-button { background: #f9fafb !important; border: 1px solid #e5e7eb !important; border-radius: 50% !important; width: 2rem !important; height: 2rem !important; display: flex !important; align-items: center !important; justify-content: center !important; color: #9ca3af !important; cursor: pointer !important; padding: 0 !important; flex-shrink: 0 !important; transition: all 0.2s !important; box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05) !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-ia-close-button:hover { background: #e5e7eb !important; color: #111827 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-ia-node-description { font-size: 0.875rem !important; color: #374151 !important; margin: 0 !important; line-height: 1.625 !important; white-space: pre-wrap !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-ia-node-description { font-size: 0.875rem !important; } /* Error Handling */ #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-ia-empty { display: flex !important; align-items: center !important; justify-content: center !important; height: 200px !important; background-color: #f1f5f9 !important; color: #64748b !important; border: 2px dashed #cbd5e1 !important; border-radius: 0.5rem !important; } /* Countdown Styles */ #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-countdown-container { display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; padding: 1rem !important; position: relative !important; width: 100% !important; box-sizing: border-box !important; font-family: Montserrat, sans-serif !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-countdown-header { text-align: center !important; margin-bottom: 2rem !important; z-index: 10 !important; width: 100% !important; display: flex !important; flex-direction: column !important; align-items: center !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-countdown-title { font-size: 1.25rem !important; font-weight: 900 !important; text-transform: uppercase !important; letter-spacing: 0.05em !important; margin: 0 !important; font-style: italic !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-countdown-subhead { font-size: 1.125rem !important; font-weight: 900 !important; text-transform: uppercase !important; letter-spacing: 0.05em !important; margin: 0.25rem 0 0 0 !important; font-style: italic !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-countdown-timer-wrap { display: flex !important; flex-direction: column !important; align-items: center !important; width: 100% !important; max-width: 64rem !important; z-index: 10 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-countdown-labels { display: flex !important; justify-content: center !important; width: 100% !important; margin-bottom: 0.5rem !important; padding: 0 0.5rem !important; font-size: 0.75rem !important; font-weight: bold !important; text-transform: uppercase !important; letter-spacing: 0.05em !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-countdown-labels > div { flex: 1 !important; text-align: center !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-countdown-box { position: relative !important; width: 100% !important; border-top: 6px solid #333 !important; border-bottom: 8px solid #333 !important; padding: 1rem 0 !important; background: linear-gradient(to bottom, #1f2937, #000000) !important; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25) !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-countdown-digits { display: flex !important; justify-content: center !important; font-size: 1.75rem !important; font-weight: 900 !important; letter-spacing: 0em !important; font-family: monospace !important; color: #fff !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-countdown-digits > div.digit-box { flex: 1 !important; text-align: center !important; white-space: nowrap !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-countdown-digits > div.colon { flex: 0 0 auto !important; opacity: 0.5 !important; position: relative !important; top: -2px !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-countdown-spike-l { position: absolute !important; left: -15px !important; top: 50% !important; transform: translateY(-50%) !important; width: 0 !important; height: 0 !important; border-top: 15px solid transparent !important; border-bottom: 15px solid transparent !important; border-right: 15px solid #374151 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-countdown-spike-r { position: absolute !important; right: -15px !important; top: 50% !important; transform: translateY(-50%) !important; width: 0 !important; height: 0 !important; border-top: 15px solid transparent !important; border-bottom: 15px solid transparent !important; border-left: 15px solid #374151 !important; } @media (min-width: 600px) { #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-countdown-container { padding: 2rem !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-countdown-title { font-size: 1.75rem !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-countdown-subhead { font-size: 1.25rem !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-countdown-digits { font-size: 2.25rem !important; letter-spacing: 0 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-countdown-labels { font-size: 0.875rem !important; padding: 0 1rem !important; margin-bottom: 1rem !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-countdown-box { padding: 1.5rem 0 !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-countdown-digits > div.colon { top: -4px !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-countdown-spike-l { left: -20px !important; border-top-width: 20px !important; border-bottom-width: 20px !important; border-right-width: 20px !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-countdown-spike-r { right: -20px !important; border-top-width: 20px !important; border-bottom-width: 20px !important; border-left-width: 20px !important; } } @media (min-width: 768px) { #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-countdown-digits { font-size: 3.5rem !important; letter-spacing: 0.05em !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-countdown-digits > div.colon { top: -5px !important; } } /* Mobile / Forced Mobile View / Labels on Top */ #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-pie-container, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-pie-container { flex-direction: column !important; gap: 1rem !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-grouped-product-title-wrapper, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-grouped-product-title-wrapper { padding-left: 0 !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-bar-row, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-stacked-product, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-grouped-bar-product, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-row, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-stacked-product, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-bar-label:not(.fv-grouped-product-title), #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-bar-label, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-grouped-product-title, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-label, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-bar-container, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-bar-cluster, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-container, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-cluster { width: 100% !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-x-axis-wrapper, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-x-axis-wrapper { margin-left: 0 !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-x-axis-label-space, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-x-axis-label-space { display: none !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-x-axis-chart-space, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-x-axis-chart-space { padding-right: 0 !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-benchmark-title, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-benchmark-title { font-size: 16px !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-dropdown-title, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-dropdown-title { font-size: 16px !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-carousel-nav-btn, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-chart-title, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-chart-title { padding: 0 8px !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-chart-subhead, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-chart-subhead { padding: 0 8px !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-versus-header, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select-wrapper, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select-wrapper.fv-left, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select-wrapper.fv-right, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select.fv-select-left, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select.fv-select-left { text-align: center !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select.fv-select-right, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select.fv-select-right { text-align: center !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-versus-vs, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select-container, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select-container { max-width: 100% !important; width: 100% !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select { font-size: 14px !important; width: 100% !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-stl-shop-all-btn, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-stl-shop-all-logo, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-stl-shop-all-icon, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-stl-shop-all-logo, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-stl-shop-all-icon svg, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.labels-on-top .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view .fv-y-axis-title { padding-left: 5% !important; /* (30/600) for mobile view */ } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.mobile-view.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } @media (max-width: 599px) { #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-pie-container { flex-direction: column !important; gap: 1rem !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-grouped-product-title-wrapper { padding-left: 0 !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-bar-row, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-stacked-product, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-bar-label, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-bar-container, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-bar-cluster { width: 100% !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-x-axis-wrapper { margin-left: 0 !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-x-axis-label-space { display: none !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-x-axis-chart-space { padding-right: 0 !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-benchmark-title { font-size: 16px !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-dropdown-title { font-size: 16px !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-chart-title { padding: 0 8px !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-chart-subhead { padding: 0 8px !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-select.fv-select-left { text-align: center !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-select.fv-select-right { text-align: center !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-select-container { max-width: 100% !important; width: 100% !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-versus-select { font-size: 14px !important; width: 100% !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-stl-shop-all-logo, #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; }#fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper .fv-y-axis-title { padding-left: 5% !important; /* (30/600) for mobile view */ } #fv-chart-1780054953725-jxfr84byr-slideshow .fv-chart-wrapper.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } } [{ "@context": "https://schema.org", "@type": "Dataset", "name": "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-05-29T11:42:33.728Z", "keywords": [ "Google Fitbit Air", "Apple Watch Ultra 3", "Average heart rate", "benchmark", "comparison", "performance", "review", "TechRadar" ], "measurementTechnique": "Performance Benchmarking", "variableMeasured": [ { "@type": "PropertyValue", "name": "Google Fitbit Air – Average heart rate", "value": 158, "unitText": "" }, { "@type": "PropertyValue", "name": "Apple Watch Ultra 3 – Average heart rate", "value": 161, "unitText": "" } ]},{ "@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-05-29T11:42:33.728Z", "keywords": [ "Google Fitbit Air", "Apple Watch Ultra 3", "Average Pace", "benchmark", "comparison", "performance", "review", "TechRadar" ], "measurementTechnique": "Performance Benchmarking", "variableMeasured": [ { "@type": "PropertyValue", "name": "Google Fitbit Air – Average Pace", "value": 5.37, "unitText": "" }, { "@type": "PropertyValue", "name": "Apple Watch Ultra 3 – Average Pace", "value": 5.47, "unitText": "" } ]},{ "@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-05-29T11:42:33.728Z", "keywords": [ "Google Fitbit Air", "Apple Watch Ultra 3", "Calories burned", "benchmark", "comparison", "performance", "review", "TechRadar" ], "measurementTechnique": "Performance Benchmarking", "variableMeasured": [ { "@type": "PropertyValue", "name": "Google Fitbit Air – Calories burned", "value": 773, "unitText": "" }, { "@type": "PropertyValue", "name": "Apple Watch Ultra 3 – Calories burned", "value": 750, "unitText": "" } ]},{ "@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-05-29T11:42:33.728Z", "keywords": [ "Google Fitbit Air", "Apple Watch Ultra 3", "Distance", "benchmark", "comparison", "performance", "review", "TechRadar" ], "measurementTechnique": "Performance Benchmarking", "variableMeasured": [ { "@type": "PropertyValue", "name": "Google Fitbit Air – Distance", "value": 10.43, "unitText": "" }, { "@type": "PropertyValue", "name": "Apple Watch Ultra 3 – Distance", "value": 10.03, "unitText": "" } ]}] Previous 1 / 4 Next Average heart rate Google Fitbit Air 158 Apple Watch Ultra 3 161 050100150200 Average heart rate Data ProductValue Google Fitbit Air 158 Apple Watch Ultra 3 161 Average Pace Google Fitbit Air 5.37 Apple Watch Ultra 3 5.47 01.534.56 Average Pace Data ProductValue Google Fitbit Air 5.37 Apple Watch Ultra 3 5.47 Calories burned Google Fitbit Air 773 Apple Watch Ultra 3 750 0200400600800 Calories burned Data ProductValue Google Fitbit Air 773 Apple Watch Ultra 3 750 Distance Google Fitbit Air 10.43 Apple Watch Ultra 3 10.03 03.757.511.2515 Kilometers Distance Data ProductValue Google Fitbit Air 10.43 Apple Watch Ultra 3 10.03 window.iFrameResizer = { heightCalculationMethod: 'taggedElement' }; (function() { /* Global animation function for slideshow re-use */ 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) { /* Reset to 0 first to ensure animation triggers */ bar.style.setProperty('width', '0%', 'important'); bar.style.setProperty('transition', 'none', 'important'); var targetWidth = bar.dataset.targetWidth; if (targetWidth === undefined) return; /* Force reflow */ 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); /* Reduced initial delay */ }); } 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); }); } /* Execute */ var charts = chartWrapper.querySelectorAll('.fv-chart-item'); charts.forEach(function(chart) { /* If in carousel/dropdown mode, hidden charts are display:none. */ /* We only animate what is visible. */ 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); /* In slideshow mode, 'root' will be null because the container has '-slideshow' suffix. */ /* We handle that logic below. */ if (!root && !isSlideshow) return; /* Setup internal interactions (Carousel/Dropdown/LineChart) for a specific chart wrapper */ function setupWrapper(chartWrapper) { if (!chartWrapper) return; /* Responsive mobile view handling */ 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) { /* Fallback for when width isn't available yet (e.g., hidden tab) */ isMobile = isMobileDevice || window.matchMedia('(max-width: 599px)').matches; } else { /* Mobile if container is small OR if it's a physical mobile device (overriding fixed-width iframes) */ isMobile = isMobileDevice || width < 600; } if (isMobile) { chartWrapper.classList.add('mobile-view'); } else { chartWrapper.classList.remove('mobile-view'); } } /* Initial check */ checkMobileView(); if (typeof ResizeObserver !== 'undefined') { var ro = new ResizeObserver(function() { checkMobileView(); }); ro.observe(chartWrapper); } /* Always add window resize listener as a reliable fallback for DevTools and edge cases */ window.addEventListener('resize', checkMobileView); /* Labels on top handler */ var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true'; if (labelsOnTop) { /* If there are multiple charts and we're not in a carousel/dropdown, we might have mixed types. */ /* But typically, labels-on-top is a global setting. We'll apply it initially, */ /* and showInternalChart will toggle it if needed. */ 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'); } /* Legend interactions */ 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); } }); }); /* Versus Chart Logic */ 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); }); /* Carousel & Dropdown Logic */ 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'); /* Text Elements */ 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') { /* Line chart animations if needed */ } else if (cType !== 'Pie') { window.fvAnimateCharts(chartWrapper); } /* Update labels-on-top based on current chart type */ 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; /* Update Subhead and Caption */ 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 || ''; 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); }); } /* Image Comparison Logic */ 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; /* Zoom state */ 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(); /* Max pan depends on how much the image is scaled beyond the wrapper */ 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; /* Prevent click after pinch */ } 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 }); } /* Expand/Close Logic */ 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.preventDefault(); // Removed to allow text selection */ e.stopPropagation(); wrapper.classList.add('fv-image-compare-fullscreen'); document.body.style.overflow = 'hidden'; /* Load high-res images if available */ 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.preventDefault(); // Removed to allow text selection */ e.stopPropagation(); wrapper.classList.remove('fv-image-compare-fullscreen'); document.body.style.overflow = ''; updateTransform(); }); } /* Close on Escape */ 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(); } }); }); /* Shop The Look Hotspots */ 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'); /* Remove highlights */ var items = allProductsModal.querySelectorAll('.fv-stl-all-products-item'); items.forEach(function(item) { item.classList.remove('is-highlighted'); }); /* Remove min-height after transition */ 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'); /* Ensure container is tall enough */ var container = btn.closest('.fv-stl-container'); if (container && container.offsetHeight < 450) { container.style.minHeight = '450px'; } /* Highlight and scroll to item */ 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(); } } }); }); /* Shop All button */ if (shopAllBtn && allProductsModal) { shopAllBtn.addEventListener('click', function(e) { e.stopPropagation(); closeAllModals(); allProductsModal.classList.add('is-active'); /* Ensure container is tall enough */ var container = shopAllBtn.closest('.fv-stl-container'); if (container && container.offsetHeight < 450) { container.style.minHeight = '450px'; } if ('parentIFrame' in window) { window.parentIFrame.size(); } }); } /* Close button in all products modal */ if (allProductsModal) { var closeAllBtn = allProductsModal.querySelector('.fv-stl-all-products-close'); if (closeAllBtn) { closeAllBtn.addEventListener('click', function(e) { e.stopPropagation(); closeAllModals(); }); } } /* Close modals when clicking outside */ chartWrapper.addEventListener('click', function(e) { /* Only close if clicking on the wrapper or container, not inside a modal content */ 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(); } }); } /* Image Annotation Logic */ 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(); } }); } /* Initial Animation */ window.fvAnimateCharts(chartWrapper); /* Countdown Logic */ var countdownContainer = chartWrapper.querySelector('.fv-countdown-container'); if (countdownContainer) { var targetDateAttr = countdownContainer.getAttribute('data-target-date'); if (targetDateAttr) { var targetDate = new Date(targetDateAttr); var primaryColor = countdownContainer.getAttribute('data-primary-color') || '#f97316'; var subheadColor = countdownContainer.getAttribute('data-subhead-color') || '#ffffff'; var pad = function(n) { return (n < 10 ? '0' : '') + n; }; var updateCountdown = function() { var difference = +targetDate - +new Date(); var d = 0, h = 0, m = 0, s = 0; if (difference > 0) { d = Math.floor(difference / (1000 * 60 * 60 * 24)); h = Math.floor((difference / (1000 * 60 * 60)) % 24); m = Math.floor((difference / 1000 / 60) % 60); s = Math.floor((difference / 1000) % 60); } var daysEl = countdownContainer.querySelector('[data-time="days"]'); var hoursEl = countdownContainer.querySelector('[data-time="hours"]'); var minsEl = countdownContainer.querySelector('[data-time="minutes"]'); var secsEl = countdownContainer.querySelector('[data-time="seconds"]'); if (daysEl) daysEl.textContent = d; if (hoursEl) hoursEl.textContent = pad(h); if (minsEl) minsEl.textContent = pad(m); if (secsEl) secsEl.textContent = pad(s); }; updateCountdown(); setInterval(updateCountdown, 1000); } } } if (true) { var slideshowContainer = document.getElementById(uniqueId + '-slideshow'); if (slideshowContainer) { var slides = slideshowContainer.querySelectorAll('.fv-slide'); slides.forEach(function(slide) { setupWrapper(slide.querySelector('.fv-chart-wrapper')); }); } var slideshowContainer = document.getElementById(uniqueId + '-slideshow'); /* Check if container exists to prevent errors */ if (slideshowContainer) { var currentSlideIndex = 0; var slides = slideshowContainer.querySelectorAll('.fv-slide'); var counter = slideshowContainer.querySelector('.fv-slide-counter'); var prevBtn = slideshowContainer.querySelector('.fv-nav-btn.prev'); var nextBtn = slideshowContainer.querySelector('.fv-nav-btn.next'); var dropdown = slideshowContainer.querySelector('.fv-slideshow-select'); function updateControls(index) { if (counter) counter.textContent = (index + 1) + ' / ' + slides.length; if (dropdown) dropdown.value = index; if (prevBtn) { if (index === 0) prevBtn.classList.add('disabled'); else prevBtn.classList.remove('disabled'); } if (nextBtn) { if (index === slides.length - 1) nextBtn.classList.add('disabled'); else nextBtn.classList.remove('disabled'); } } function showSlide(index) { if (index < 0) return; /* index = slides.length - 1; // Disable loop for linear nav style */ if (index >= slides.length) return; /* index = 0; */ currentSlideIndex = index; slides.forEach(function(slide, i) { slide.style.display = i === index ? 'block' : 'none'; if (i === index) { /* Re-trigger animations for the active slide */ var chartEl = slide.querySelector('.fv-chart-wrapper'); if (chartEl && window.fvAnimateCharts) { window.fvAnimateCharts(chartEl); } } }); updateControls(currentSlideIndex); } if (prevBtn) { prevBtn.addEventListener('click', function() { showSlide(currentSlideIndex - 1); }); } if (nextBtn) { nextBtn.addEventListener('click', function() { showSlide(currentSlideIndex + 1); }); } if (dropdown) { dropdown.addEventListener('change', function(e) { showSlide(parseInt(e.target.value)); }); } /* Initial setup */ updateControls(currentSlideIndex); /* Initial animation for the first slide */ if (slides.length > 0) { var firstChart = slides[0].querySelector('.fv-chart-wrapper'); if (firstChart && window.fvAnimateCharts) { setTimeout(function() { window.fvAnimateCharts(firstChart); }, 100); } } } } else { setupWrapper(root); } } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function() { initialize('fv-chart-1780054953725-jxfr84byr', true); }); } else { initialize('fv-chart-1780054953725-jxfr84byr', true); } })();My experience of tracking my sleep with the same two devices — I wore one on each wrist — was similar to the above, with close enough metrics but slightly different outcomes.
The Fitbit Air’s total sleep time estimation was within five minutes of the Apple Watch, and sleep stages were similar. However, while my sleep score was 90 with the Apple Watch, Fitbit registered it as only 81, citing a 10-point difference in sleep quality. However, the Google Fitbit Air’s sleep tracking has consistently registered my wake-up times during testing, successfully recording my early-hours bathroom trips and my cat jumping on my legs at 5am.
Apple HealthFutureGoogle HealthFutureBecause of the lack of a screen, GPS, and specialist metrics, regular runners won’t get a whole lot out of the Fitbit Air. Compared to my usual wealth of data from Apple or the best Garmin watches, I found it lacking, and my GPS map — imported from my phone, as the Air has no GPS of its own —- inaccurate, off by 400m compared to the Apple Watch.
Battery life is excellent, exceeding the seven days the device promised. Charging is fast, with just five minutes delivering a full day of battery life, and a full charge taking around an hour. The device is very comfortable to wear, as previously mentioned — I’ve barely needed to take it off all week.
Category
Comment
Score
Value
Very well priced compared to rivals.
4.5
Design
Great tracker, flawed app.
3.5
Features
Limited free options, expansive Premium AI tools.
4
Performance
Excellent in most areas.
4.5
Google Fitbit Air: Should I buy?Buy it if...You want an affordable fitness tracker
The Google Fitbit Air is likely to shoot to the top of our best cheap fitness tracker list.
You like the AI chatbot interface
Google Health’s Premium service is entirely dependent on using and interacting with an AI companion.
You want a screenless focus band
Even at the basic free level, a slim screenless band to record all your metrics makes for a nice fitness tracking experience.
Don't buy it if...You’re a runner
You’ll be better served with one of the best Garmin watches.
Money is no object
For serial health optimizers looking to splash some cash, the Whoop app is better.
You’re concerned about data privacy
Google has pledged not to use Fitbit data for its ads business, but if you’re still concerned about feeding all your data to Google’s AI algorithms, maybe avoid the Fitbit Air.
Also considerWhoop 5.0 & Whoop MG
The Google Fitbit Air's biggest screenless rival.
Read our full Whoop review
Oura Ring 4
Another screenless favorite, albeit another premium subscription-based option.
Read our full Oura Ring 4 review
Samsung Galaxy Fit 3
Samsung's affordable fitness tracker, and a real bargain.
Read our full Samsung Galaxy Fit 3 review
How I testedI wore the Google Fitbit Air for eight days straight. I ran a 10K while wearing an Apple Watch Ultra 3 and (malfunctioning) Polar H10 chest strap, and a shorter run with a Huawei Watch Fit 5 Pro, as comparison testing alongside my usual workout routines. I also wore the Apple and Fitbit side-by-side during sleep. I tested its alarm, tried the features of its premium Health Coach, and used the app's workout and mindfulness content.
First reviewed: June 2026
KVM is often included among the best virtual machine software options, although it should be understood differently from most desktop virtualization tools. It is not an application that users simply open and operate on its own. KVM, short for Kernel-based Virtual Machine, is built into the Linux kernel and provides the low-level virtualization capability that allows Linux to run virtual machines with hardware acceleration.
In practice, KVM is usually part of a wider stack. QEMU handles device emulation and virtual machine execution, KVM provides hardware-assisted acceleration through the Linux kernel, and libvirt offers a management layer used by tools such as virt-manager, virsh, Cockpit, and other front ends. This is why users often see the combined term QEMU/KVM rather than KVM alone.
In a typical desktop Linux setup, this stack often consists of four parts: KVM for kernel-level virtualization, QEMU for device emulation, libvirt for management, and virt-manager for the graphical interface. This is why the experience users describe as “KVM” is usually shaped by several tools working together rather than by KVM alone.
This distinction is important because it shapes the entire experience. KVM can be very fast and reliable, but it does not offer the same integrated product feel as VMware Workstation or Parallels Desktop. Instead, it gives Linux users a powerful foundation that can be managed through different tools depending on the use case.
For users already comfortable with Linux, this is a major advantage. KVM fits naturally into the Linux ecosystem, works well on servers, and scales from local test environments to larger infrastructure platforms. For users expecting a guided desktop virtualization product, it may feel fragmented at first.
KVM: Plans and pricing(Image credit: KVM // Future)At the technology level, KVM has a licensing cost of $0. It is part of the Linux kernel and can be used with free tools such as QEMU, libvirt, and virt-manager. For individual Linux users, developers, and homelab environments, this means the core virtualization stack can be used without a paid license.
That does not mean every KVM-based environment is cost-free in practice. Support, packaging, management tools, and enterprise integration usually come from the Linux distribution or vendor stack around it. A user running KVM on a community Linux distribution may pay nothing, while an organization deploying KVM through an enterprise Linux platform will usually pay for the broader operating system and support subscription.
For example, Red Hat Enterprise Linux Server currently lists Self-support at US$383.90, Standard at US$878.90, and Premium at US$1,428.90 for one year. Ubuntu Pro is free for personal use on up to five machines, while paid plans list $25 per workstation per year and $500 per server per year. These figures are not KVM license fees, but they show how commercial support around a KVM-based environment is typically priced.
For individual users and homelab setups, KVM remains highly attractive because the core tools are available without a direct software cost. For businesses, the calculation is different. KVM can reduce licensing pressure, but organizations still need to consider support, management, automation, backup, monitoring, and staff expertise.
In practice, KVM’s pricing model is simple at the technology level but more variable at the operational level. The core virtualization layer is free, but the overall cost depends on whether users rely on community tools, enterprise Linux support, or a larger platform built on top of KVM.
KVM: Features(Image credit: KVM // Future)KVM provides the virtualization foundation, but most user-facing features come through the tools used with it. When paired with QEMU and libvirt, it can support a wide range of guest operating systems, including Linux, Windows, and BSD-based systems. Users can allocate CPU cores, memory, storage, and virtual hardware to each VM, while also taking advantage of hardware virtualization support from modern processors.
The QEMU/KVM combination is particularly important. QEMU provides the virtual machine environment and emulated devices, while KVM allows guest code to run with hardware acceleration. This reduces overhead compared to pure emulation and is one of the reasons KVM-based setups can perform very well on Linux hosts.
Libvirt adds the management layer that makes KVM practical for day-to-day use. Through libvirt, users can manage VMs locally or remotely, define storage pools, configure virtual networks, and control guest lifecycle operations. Virt-manager provides a graphical front end for this stack, making KVM much more approachable than using command-line tools alone.
KVM also supports more advanced use cases. GPU passthrough, PCI passthrough, headless operation, remote access, bridged networking, and integration into server platforms are all possible. These capabilities make it suitable for users who want more than a basic desktop VM tool.
However, many of these features require technical understanding. Passthrough depends on compatible hardware and correct IOMMU configuration. Storage pools and virtual networks can be powerful, but they introduce concepts that desktop users may not expect. KVM is flexible, but it does not hide the complexity as much as more consumer-focused tools.
KVM: Interface and use(Image credit: KVM // Future)KVM does not have one official interface. This is both a strength and a weakness. Users can manage KVM-based virtual machines through virt-manager, Cockpit, virsh, GNOME Boxes, Proxmox, OpenStack, or other tools, depending on the environment. That flexibility is useful, but it also means the experience is less consistent than with products that control the full stack.
For desktop Linux users, virt-manager is usually the most practical interface. It provides a graphical way to create and manage virtual machines, select installation media, assign CPU and memory, configure storage, and open guest consoles. It is not the most modern-looking interface, but it is functional and widely used.
While virt-manager remains a common and practical choice for desktop Linux users, web-based tools such as Cockpit are increasingly important in enterprise Linux environments, particularly where administrators prefer browser-based management.
Compared with VirtualBox, virt-manager can feel more technical at first. Concepts such as storage pools, NAT networks, bridges, SPICE display, VirtIO drivers, and libvirt permissions may require some learning. Once configured, however, many users find the workflow efficient and reliable, especially on Linux systems where KVM is already part of the platform.
The main challenge is that KVM does not always provide the same convenience features in the same obvious way as desktop-focused tools. Shared folders, clipboard behavior, display resizing, and graphical acceleration can require extra guest drivers or configuration. For a simple Linux VM, the experience can be smooth. For Windows guests or advanced graphical workloads, users may need more setup.
This makes KVM best suited to users who do not mind learning how the virtualization stack works. It is not hostile to new users, but it assumes more technical confidence than VirtualBox or VMware Workstation.
KVM: Performance(Image credit: KVM // Future)Performance is one of KVM’s strongest arguments. Because it is integrated into the Linux kernel and uses hardware virtualization extensions such as Intel VT-x and AMD-V, it can deliver very efficient virtualization on supported hardware. In many CPU and memory-heavy workloads, KVM-based virtual machines can feel close to native performance when configured properly.
This advantage is especially clear on Linux hosts. Instead of layering a separate virtualization product on top of the operating system, KVM works directly with the Linux kernel, while QEMU handles the surrounding virtual machine environment. The result is a stack that can be both flexible and efficient.
That said, performance depends heavily on configuration. The choice of storage backend, disk format, network mode, guest drivers, and display protocol can all affect the experience. VirtIO drivers are important for improving disk and network performance, especially with Windows guests. Poor configuration can make a KVM setup feel less impressive than its technical potential suggests.
This is particularly important because KVM handles CPU execution efficiently, while device and I/O handling still depend on the wider QEMU and driver stack. Using VirtIO drivers helps reduce overhead for storage and networking, but users who rely on default or poorly matched virtual devices may not see the same level of responsiveness.
Graphical workloads require particular care. For ordinary desktop use, SPICE or similar display options may be sufficient. Shared 3D acceleration through VirtIO-GPU, VirGL, and newer Venus-related work has improved the situation for some Linux guest scenarios, but it is still not as straightforward as the graphics experience in more desktop-focused virtualization tools. For Windows guests or heavier graphics workloads, GPU passthrough remains the more realistic advanced route.
For servers, development environments, Linux guests, and headless workloads, KVM is much easier to recommend. It is efficient, stable, and widely used in serious Linux virtualization environments. For casual local desktop virtualization, the performance may be strong, but the setup effort can outweigh the benefit for some users.
KVM: SupportKVM benefits from being part of the Linux ecosystem. Documentation is available through Linux kernel resources, distribution guides, libvirt documentation, QEMU documentation, and community tutorials. This makes information widely available, although not always centralized in one place.
For community users, support usually comes from distribution forums, project documentation, and user communities. This is often enough for common tasks such as creating VMs, enabling libvirt, configuring virt-manager, or installing VirtIO drivers. However, troubleshooting more advanced topics such as passthrough, bridged networking, or storage performance can require deeper Linux knowledge.
Enterprise support depends on the vendor or platform. Red Hat, Ubuntu, Oracle Linux, SUSE, and other enterprise Linux vendors may provide KVM-related support as part of broader Linux subscriptions. Platforms such as Proxmox also use KVM underneath but provide their own management and support model.
This makes support more fragmented than with a single commercial application. There is no single “KVM support plan” for all users. Instead, the support experience depends on how KVM is deployed and which tools or vendors surround it.
KVM: The competitionKVM competes in a different way from most desktop virtualization products. Against VirtualBox, it offers stronger Linux-native performance and deeper integration with the host platform, but VirtualBox can still be easier for users who want a simple graphical tool for occasional desktop VMs.
Compared with VMware Workstation, KVM offers open-source flexibility and strong performance, especially on Linux. VMware may still feel more polished for users who want a self-contained desktop application, particularly when running Windows guests with less manual configuration.
Against Hyper-V, KVM occupies a similar role in a different ecosystem. Hyper-V is the native virtualization layer for Windows Pro and enterprise environments, while KVM is the native virtualization foundation for Linux. The better choice usually depends less on raw capability and more on whether the host environment is Windows or Linux.
Proxmox VE is also important in this comparison because it builds a full virtualization platform around KVM. It does not replace KVM, but wraps it in a more guided web-managed environment with integrated storage, containers, backup, and clustering tools. For users who want KVM performance without assembling QEMU, libvirt, and storage tools manually, Proxmox may be more approachable, although raw KVM remains more flexible for users with highly custom workflows.
In practice, KVM is best for Linux users who want a powerful, flexible virtualization foundation and are comfortable choosing the tools around it. It is not the most polished option for casual users, but it remains one of the most capable and important virtualization technologies available.
KVM: Final VerdictKVM is one of the most important virtualization technologies in the Linux ecosystem, but it is not a conventional virtualization app in the same way as VMware Workstation, VirtualBox, or Parallels Desktop. Instead, it is a kernel-based virtualization layer that allows Linux to act as a hypervisor, usually working together with QEMU, libvirt, and front-end tools such as virt-manager.
This gives KVM strong performance, deep Linux integration, and a high degree of flexibility. For Linux users, developers, administrators, and infrastructure-focused environments, it can be a powerful and efficient way to run virtual machines. It also forms the foundation for larger platforms and stacks, including Proxmox VE and many Linux-based cloud or infrastructure environments.
However, that strength comes with complexity. KVM itself does not provide a single polished user experience, and the quality of the overall workflow depends on the surrounding tools. Virt-manager makes the stack much more approachable, but users still need to understand storage pools, networking, guest drivers, permissions, and the relationship between KVM and QEMU. For casual desktop users, VirtualBox or VMware may still feel easier. For Linux users who want performance and control, KVM remains one of the strongest options available.
The Wobkey Zen 65 is the third keyboard in the company's lineup, and the first to tackle the super compact 65% form factor. Available in two variants, the Lite ($125.99) and the Ultra ($149.99), it shares a CNC aluminum case across both models but differentiates on plate material, switch choice, and battery capacity.
The Wobkey Zen 65 Ultra model I’ve been testing here ships with Kailh Luna switches, an FR4 plate, and a 6,000mAh battery split across two cells, while the Lite has HMX Violet switches, a polycarbonate plate, and a single 3,000mAh cell instead.
Build quality on the Wobkey Zen 65 itself is superb, in keeping with some of the best keyboards, and it’s helped further by a premium unboxing experience with a couple of nice included extras. It arrives nestled in its own hard shell carrying case with a soft flannel storage bag, too. It’s a little thing, but it’s a nice touch and would do a great job of protecting the keyboard in a backpack if you move between setups.
The CNC aluminum case on the White Gold colorway in front of me is understated and elegant, though I’d say it’s closer to cream than white. The double-shot PBT keycaps feature subtle pastel blue and pink coloring and the whole thing would look right at home in an all-white desk setup. The legends on each key are bold and legible, though the lack of shine-through means you’ll need to ramp up the RGB backlighting brightness to have any real impact unless the room is dark.
Wobkey has fully committed to a minimalist aesthetic on the Zen 65 and bar the USB-C port on the back, there are almost no visible interruptions to its clean, flowing lines. That leaves it looking great.
(Image credit: Future)Unfortunately, though, it’s also at the expense of practicality because the power switch ends up tucked away under the Caps Lock key. I don’t just mean slightly obscured either: I mean you’ll need to completely remove the keycap in order to switch the board on or off. It’s a bizarre choice in both theory and practice, though admittedly I can’t remember the last time I actually turned a wireless keyboard off.
Much more clever is the hidden cubbyhole for the 2.4GHz dongle under the magnetic logo plate on the bottom. Could we not have tucked the power button in there too, Wobkey?
Weighing in at more than 3 lbs / 1.36 kg, this is a seriously dense keyboard for a 65% layout and I almost couldn’t believe how heavy it was for such a compact size. That heft keeps the board planted firmly on your desk during extended typing or gaming sessions, while also making the Zen 65 feel like a premium bit of kit.
The 240g internal brass weight is partly responsible, though it’s not just there for ballast. It sits between the PCB and battery compartment to absorb keystroke vibrations and it shifts the sound profile lower and deeper than the aluminum case alone would produce. The result is a smooth, satisfying thock that’s a pleasure to listen to. It’s not the quietest of boards but each clack is rounded off in a way that means it blends into the hum of an office rather than jumping out and grabbing attention.
(Image credit: Future)The Kailh Luna switches are linear and smooth, and the stabilizers across the spacebar, backspace, and shift keys are rock solid with zero rattle. They actuate at 0.07 inches / 1.8mm with just 1.6 oz / 45g of force, which is on the shorter end for these kinds of switches, and combined with the light spring weight can make the board feel a little twitchy. I had a noticeable number of accidental key presses during testing, particularly when in full typing flow. It’s not a major problem — there’s just not much margin for error if you clip a nearby key on your way to the one you wanted.
You’ll also need to adjust to the Zen 65’s fixed typing angle, which is set at seven degrees. The front edge isn’t overly high so I didn’t particularly struggle, but I’ll always campaign for some level of angle adjustment on any board.
The FR4 plate in the Ultra variant also contributes to a noticeably firm bottom-out. The total switch travel is on the short side too at 0.12 oz / 3.5mm, so there's less cushion before hitting the floor. Combined with the brass weight and foam dampening layers, the result is a controlled, defined stock keystroke rather than a plush one.
For gaming, those characteristics flip in the Zen 65's favor. The shorter actuation and light spring weight translate to faster inputs with less finger fatigue, and the firm bottom-out provides a clear feedback point that's easier to build muscle memory around. There’s a toggleable N-key rollover mode too that ensures every simultaneous keypress registers cleanly during complex combos.
(Image credit: Future)I say stock keystroke because while I enjoyed the out-of-the-box experience, there is plenty of room for fiddling with the Wobkey Zen 65. The ball-catch quick release pops the top case off in seconds with no tools and Wobkey includes parts to switch between four mounting configurations at various levels of rigidity. It's an impressive level of tunability for a pre-built board at any price, let alone this one, and the toolless case design means experimenting between them takes seconds rather than requiring a full teardown. If you’re new to taking apart your keyboard and dialing things in, this is a great choice.
Software customization is handled with the third-party VIA web app. It’s the same clunky setup experience you’ll find with other boards taking this approach and you’ll need to upload a JSON configuration file to unlock the full feature set. Once you’ve done this though, the feature set is rich with plenty of options to play with.
Tri-mode connectivity covers wired USB-C, 2.4GHz wireless, and Bluetooth 5.0, with support for up to three paired Bluetooth devices across both Windows and macOS (though annoyingly there are no Mac-specific alternate keycaps in the box). Switching between modes is handled through keyboard shortcuts, as are a number of other keyboard admin functions — Wobkey deserves credit for including a quick reference card in the box that clearly explains what does what. My favorite touch is checking the battery, where pressing the right key combination lights up the number row to show remaining charge. Neat.
One firmware oddity I encountered is the Caps Lock indicator LED, which illuminates the left half of the key in white, but doesn't turn off promptly when Caps Lock is disengaged. On multiple occasions during testing, the light remained on for anywhere up to 10 seconds after the function had already been disabled. I’m not going to lose sleep over it, but it’s a quirk I’d like to see corrected with a firmware update.
(Image credit: Future)Wobkey Zen 65 review: price and release dateThe Zen 65 originally launched via Kickstarter in June 2025 and is now available through various channels including the Wobkey store, though prices do seem to vary quite dramatically between outlets so it’s worth shopping around.
(Image credit: Future)Wobkey Zen 65 review: SpecsLayout
65% (67 keys)
Switches
Kailh Luna linear (hot-swappable, 3/5-pin)
Connectivity
Bluetooth 5.0, 2.4GHz wireless, USB-C wired
Polling rate
1,000Hz (2.4GHz and wired)
Actuation force
45g
Features
CNC aluminum construction, internal 240g brass weight, multi-layer foam dampening, 6,000mAh battery, NKRO, ball-catch quick release case, 4 mounting configurations
Compatibility
Windows / macOS / Linux
Software
QMK / VIA
(Image credit: Future)Should I buy the Wobkey Zen 65?Attribute
Notes
Score
Features
Tri-mode connectivity, four mounting configurations with ball-catch quick release cover, QMK/VIA support, 6,000mAh battery.
4/5
Performance
Deep, satisfying acoustics out of the box with rock-solid stabilizers. Slightly short actuation and bottom out.
4/5
Design
Understated clean lines with a high-quality finish. Hidden power switch is a strange choice.
4/5
Value
Reasonably priced considering what’s included. A great starter option for hardware customization.
4/5
Buy it if…You like to tinker (or think you might)
Four swappable mounting configurations, hot-swap switch sockets, and a toolless ball-catch case design make the Zen 65 one of the most easily adjustable pre-built boards available. Whether you want to experiment with different typing feels or simply swap switches down the line, the infrastructure is there.
You need a compact board that stays put
At 3.3 pounds, the Zen 65 Ultra is noticeably heavy for a 65% keyboard, and that's a feature. The brass weight and aluminum case keep it anchored to the desk during fast-paced gaming or aggressive typing sessions where lighter boards could slide about.
You appreciate an understated aesthetic
Wobkey has gone all out on clean lines with the Zen 65 and the result is a wonderfully understated board. The White Gold colorway I’ve been testing would be a pleasant addition to a crisp white setup.
You’re primarily on Mac
The Zen 65 supports macOS and has a dedicated Mac mode, but Wobkey doesn't include alternate Mac keycaps in the box. The Windows key functions as Command, but the legends won't match, which is an odd omission for a board that explicitly advertises cross-platform compatibility.
You prefer a softer, more cushioned typing feel
The Ultra's FR4 plate and shorter 3.5mm total switch travel produce a firm, defined bottom-out. If you favor a plusher keystroke with more give, the Lite model's polycarbonate plate would be a better fit.
You always turn your keyboard off after use
It’s a silly gripe, really, but banishing the power switch behind a keycap is a baffling decision. You’ll need to keep the keycap removal tool to hand just to shut things off.
Epomaker P65
If you like the idea of a CNC aluminum 65% board but want something a little more straightforward, the Epomaker P65 offers a similar build quality at $119. It lacks the Zen 65's toolless modding and mounting configurations, but it’s one of my favorites to type on and the sound profile is one of the best in the category. Read our full Epomaker P65 review.
Wobkey Rainy 75
If the 65% layout feels too compact but you’re keen on Wobkey, the Rainy 75 offers the same CNC aluminum construction and acoustic focus in a 75% form factor that retains dedicated function keys. Read our full Wobkey Rainy75 review.
My testing focused on the out-of-box experience using the default plate gasket mount configuration with stock Kailh Luna switches and keycaps. I used the Wobkey Zen 65 for extended writing sessions and gaming across both wired and wireless modes, and played around with configuration settings both with the VIA app and using onboard commands.
Capacity: 8TB (20TB)
Drive type: 3.5-inch spinning hard drive (HDD)
Interface: USB-C (USB 3.2 Gen 1, 5Gbps)
Power: Bus-powered via USB-C (requires 15W from host port)
Transfer speeds: Not officially specified
RGB: Customisable, Windows Dynamic Lighting compatible
Gaming certification: Officially designed for Xbox on PC
Backup software: Seagate Toolkit (Windows only)
Cable included: USB-C to USB-C, 50cm
Dimensions: 7.80 × 2.09 × 5.20in (198 × 53 × 132mm)
Weight: 2.84 lbs (1290g)
The FireCuda X Vault is a first when it comes to desktop hard drives. It essentially brings bus-powered USB-C to a 3.5-inch external hard drive, something that is common with the smaller 2.5-inch portable HDDs that have been around for years, but as yet untried for the larger format.
A quick look at the drive shows it has been primarily designed for the gaming market; however, as I often find, its specifications and performance also make it a great option for creative professionals. The gaming aesthetic is very obvious, but it’s not over-the-top, and the drive is more minimalist than most gaming-themed peripherals; in fact, its styling matches well with my Asus ProArt desktop case.
What I really like about the drive is that it uses a single USB-C cable for both power and data, which is obviously unique in the market at present. Power is delivered via the USB cable, eliminating the need for a power brick. Aside from reducing cable clutter, it also simplifies moving the drive between machines, which is handy when transferring large quantities of files. During the test period, I utilised the drive on both a MacBook Pro M1 Max running Final Cut Pro X and Premiere Pro, and an Asus ProArt PZ14 also running Premiere Pro.
In the test, the drive performed well on both Mac and PC, with the Windows machine definitely having the edge in terms of speed and compatibility. Although that performance difference was partly due to the older M1 Max’s ability to decode the video codec from the Canon EOS R5 C. In use, the drive showed decent transfer rates of around 214 MB/s read and 207 MB/s write across CrystalDiskMark, ATTO, AS SSD, and AJA benchmarks. Importantly, these speeds reflected use across three days of video editing.
While the performance was generally excellent for an HDD, there are two points: the first is the initial transfer speed of the footage to the drive, and the second is the Mac-incompatible backup software. Offloading 1.5TB of 4K Canon EOS R5 C footage from CFexpress Type B took roughly two hours, compared with ten to twelve minutes via a portable SSD. Then there’s the Seagate Toolkit, which is included with the drive for backup management, but it only works on Windows. If you’re a Mac user, then you will need to use your own backup solution. For photographers and videographers, this drive still offers superb value for money.
Seagate FireCuda X Vault: Price & availability(Image credit: Alastair Jennings)The Seagate FireCuda X Vault 8TB is available direct from Seagate in the US for $270 and from the UK site for £280. Currently, the 20TB model isn't in stock in the UK (but it's listed as £486), and doesn't appear available in North America yet.
I've also seem the 8TB drive sold for $320 on Amazon.com. Over on Amazon.co.uk, the 8TB is £253 and the 20TB is £438 - although there appears to be a labelling error. However, shipping takes between 3 and 7 months, so I'd opt for the official site if you can get quicker delivery.
The FireCuda X Vault's gaming theme is obvious but thankfully restrained, and its aesthetics actually look perfectly at home in the studio. The black exterior breaks from the usual box design that so often accompanies this type of drive, and the plastic fin slats reflect the cooling vents that I’ve often seen on high-performance creative drives. However, the RGB cutouts along the top are clearly aimed at a gaming audience rather than a creative one. Aesthetically, I do quite like the effect, and overall, the design is more minimalist than most gaming-themed hardware.
The size and weight are more in line with what I would usually expect from a 3.5-inch external drive, weighing in at 2.84 lbs (1290g), and measuring 7.80 × 2.09 × 5.20in (198 × 53 × 132mm). While it is obviously larger than a portable drive, it doesn’t dominate the workspace, and the flat top panel, despite the design, means that if you do need to place things on top, you can.
What marks this drive out from others is that it draws power and transfers data through a single USB-C cable. The cable in the box is standard, 50 cm, which is long enough to position the drive beside a monitor or at the edge of a desk without a cable coil, though I did find occasions when a longer cable would be useful.
USB-C has enabled a huge change in the face of hardware development, and the fact that just one cable is used with no other power required is a major step forward, and actually surprising that this hasn’t been done before. Of course, in order for the drive to function, the USB-C port you connect to must supply at least 15W. This means that, unlike many portable HDDs, which are widely backwards compatible with USB-A ports, this drive won’t be.
On both the MacBook Pro M1 Max and the Asus ProArt PZ14, the drive powered up without issue, and when running the MacBook Pro on battery without a mains connection, battery life was slightly reduced but not dramatically, and, as this is really a desktop drive intended to sit on a desk, the laptop is almost always plugged in during use.
Data transfer stability during sustained video editing appears excellent. As the drive worked hard to supply the data required by a variety of applications, the 1,290g chassis stays in with minimal vibration or noise. During a long video editing session across three days, the drive produced barely any audible noise. I could, on occasion, hear the spinning mechanism, but it was so low that it was hardly noticeable, particularly once audio from the edit was playing through the monitors.
After an extended test period across multiple workstations, PC and Mac, the build quality has held up well; after all, it was really just being transferred from one desk to another.
The bus-powered USB-C design is the FireCuda X Vault's unique feature, and one that, as I started to use the drive, seems well overdue. The use of the USB-C cuts out the need for a power brick, meaning one less cable and ultimately freeing up a plug socket. It also makes moving the drive between a MacBook Pro and a Windows laptop simple, as you only need to unplug a single USB-C cable and plug it into the next machine.
During the test period,, I found myself shifting between a MacBook Pro M1 Max and an ProArt PZ14 for different applications, and this ease made the larger-capacity drive as easy to use in the studio as a portable option, just with far more storage for the price.
During the test, I used the drive formatted as exFAT, which was out of the box and ensured cross-platform compatibility between macOS and Windows without the need for reformatting. Setup on both platforms was instant: plug in, mount, start working. As an example, the single-cable transfer of a large Premiere Pro project between the ASUS and the Mac was notably easier than it would have been with a drive requiring a separate power connection, and is something I would usually do with small SSD drives.
One feature of the drive is its RGB lighting, which supports Windows Dynamic Lighting. This is a gaming-focused feature that proved to be a minor aesthetic addition rather than a practical one.
Another game-focused feature is the Xbox on PC certification, which includes a one-month Xbox Game Pass Ultimate, which is aimed at gamers and is largely irrelevant for a content creation use case, though having the gaming library validation does offer some insight into the drive's intended use and the fact that it has been designed to handle sustained random reads.
An interesting addition is the Seagate Toolkit for backup management, which works well on Windows and lets you set up a backup schedule from a working footage folder to a NAS for long-term archive. It all seemed straightforward. However, Seagate Toolkit is not Mac-compatible, which is a notable gap for photographers and videographers working on macOS. Mac users will need to use Time Machine or a third-party backup solution for drive-level protection.
In this test, I’ve looked at the 8TB capacity, although there is a larger 20TB version. For a single drive option used as a working backup and rough-cut editing drive, 8TB provides a good balance for storing multiple concurrent projects over several months without needing to manage capacity.
The 20TB option would provide more headroom for longer-term archiving; however, managing 20TB on a single spinning drive introduces its own risks. The drive proved reliable, and if you have a 20TB backup drive, then why not? For photographers who shoot stills and moderate video, 8TB is a very workable starting point.
All benchmarks run on ASUS ProArt PZ14.
CrystalDiskMark Read: 214.24 MB/s
CrystalDiskMark Write: 207.64 MB/s
ATTO Read: 207.71 MB/s
ATTO Write: 201.26 MB/s
AS SSD Read: 202.82 MB/s
AS SSD Write: 198.78 MB/s
AJA System Test Read: 205 MB/s
AJA System Test Write: 197 MB/s
Getting started with the drive is fast; it’s essentially plug-and-play on both Mac and PC systems, and once the USB-C cable is connected, you’re ready to go. On the Mac, the drive icon appears on the desktop, and on Windows, it can be found alongside other drives in the OS.
To start testing the drive, I went straight to benchmark performance tests and found that across CrystalDiskMark, ATTO, AS SSD, and AJA System Test, the results were consistent. Read speeds across all four tools ranged from 202 MB/s to 214 MB/s, and write speeds ranged from 197 MB/s to 207 MB/s. This essentially shows reliable performance with minimal variation across test methods and, therefore, across the different real-world applications, file sizes, and formats you’re likely to use. More importantly, these speeds remained consistent throughout a three-day video editing test, with no thermal throttling or audible performance reduction.
To double-check the results, I left each AJA System Test Lite running for several hours without any real effect on the final result.
A large part of the real-world test was conducted while editing 4K video; the test footage was from a Canon EOS R5 C, and the files were recorded in 4K UHD (3840 × 2160) at 50 fps, in Canon XF-AVC Long GOP, YCC422 10-bit, in MXF format.
On the MacBook Pro M1 Max in Final Cut Pro X, there were occasional moments during editing when the timeline required the machine to catch up, primarily a codec-decoding issue on the older Mac rather than a drive-throughput problem.
I then tested a similar project in Premiere Pro on the ProArt PZ14 and found that it the edit was significantly smoother. For 1080p content and lighter 4K workflows, the FireCuda X Vault is a workable primary editing drive. For high-bitrate 4K with multiple grades and tracks, an SSD remains the better option, especially the LaCie Big8, which I was also reviewing at the same time.
One of the early indicators of speed was the initial transfer of files from a CFexpress Type B card to the drive. Transferring 1.5TB of Canon EOS R5 C footage from a CFexpress Type B card to the FireCuda X Vault took approximately two hours. The same transfer via a portable SSD took 10 to 12 minutes, just to highlight the difference between an HDD and an SSD.
I’ll also note that this is not an issue with the FireCuda X Vault; it’s working exactly as a 215MB/s spinning drive should, it’s just that SSD is that much faster. If you do look at it from that perspective, in speed terms, then the drive is better suited as a first backup destination after an initial fast offload to an SSD, rather than as the primary offload destination from a card.
Of course, as this drive is designed for gaming, I had to test it with a few Steam titles. After transferring the storage from my machine to the drive, it was time to load up a few games. The first was Indiana Jones and the Great Circle, and this, along with several other Steam titles, loaded from the FireCuda X Vault at speeds comparable to the Asus machine's faster internal SSD, showing that 215MB/s is more than adequate for game loading and save data, and that the gaming library certification is backed by genuine ability.
Noise levels throughout the test were minimal; to be honest, the noise from the video and games drowned out any noise, and it was so slow that I didn’t notice. Even under the sustained seek-and-write loads of a multi-hour video edit, the drive produced only a faint mechanical hum, inaudible over the monitor speakers.
The Seagate FireCuda X Vault 8TB, with its bus-powered USB-C design, is genuinely innovative, and it’s hard to see why this hasn’t been done before. It essentially makes the drive simpler with fewer cables, and while it's larger than a portable hard drive, it’s far cheaper for the capacity. After testing on a MacBook Pro M1 Max and an Asus PZ14, the single-drive design and ease of moving it around were obvious advantages over traditional desktop drives.
While the performance was significantly slower than that of an SSD, it was consistent, especially for the capacity and price. In the benchmark tests, the drive offered roughly 214MB/s read and 207MB/s write across multiple benchmarks and maintained those speeds in real-world tests. For photographers, this makes the FireCuda X Vault a great option as a working and backup drive, essentially offering a price per terabyte that external SSDs cannot match.
For videographers, the drive can handle 1080p and light 4K editing, but when it comes to high-bitrate 4K workflows, the limits are pushed, and as I discovered, the CFexpress Type B offload speed was approximately 2 hours for 1.5 TB, versus 10 to 12 minutes via a portable SSD. For video-heavy workflows, while far more expensive, a fast large-capacity SSD, such as the LaCie Big8, would be a better choice as the primary editing drive, then the FireCuda X Vault as an 8TB accessible project archive sitting on the desk.
Seagate Toolkit's lack of Mac compatibility is a clear gap that Seagate should address. Mac users make up a significant portion of the creative professional market that I think this drive will appeal to, although more creative users are moving away from Mac-based workflows due to the prohibitive costs.
At $270 / £280 for 8TB, this is exceptional value, and thankfully, as the gaming theme is restrained, the drive sits comfortably on a creative workstation without looking out of place. The FireCuda X Vault is a great desktop drive for PC gamers who want high-capacity game storage, and also a good choice for photographers who need accessible bulk working storage, and a useful archive and rough-cut editing drive for videographers, as long as your primary editing workflow runs on a faster internal or external SSD.
Value
8TB with bus-powered USB-C and excellent build quality
5
Design
Gaming aesthetic but understated and stylish
4
Features
Bus-powered USB-C is excellent; Seagate Toolkits backup being PC only is a shame.
4
Performance
Consistent performance at 215MB/s; CFexpress offload times show the HDD limitations on speed
4.5
Total
A useful desktop storage option for gamers, photographers and videographers
4
(Image credit: Alastair Jennings)Buy it if...You need high-capacity
At $270 / £280 for 8TB, the FireCuda X Vault offers a cost-per-terabyte that external SSDs can't match. For photographers archiving large amounts of images and video, the capacity makes it a great choice.
Keeps the desk clear
Bus-powered USB-C on a 3.5-inch drive is a first and a great feature. Not only does it keep your desktop tidy, but if you regularly move between a MacBook and a Windows machine, a single cable for swapping is far easier than moving data cables and power cables.
Don't buy it if...You need fast footage offload.
Offloading 1.5TB of 4K footage from a CFexpress Type B card took roughly 2 hours. While this gave me plenty of spare time, if deadlines are tight, this is not ideal.
You need cross-platform backup software on Mac.
Seagate Toolkit backup is Windows-only. If you’re a Mac user, then you will need to rely on Time Machine or a third-party backup solution.
For more storage options, we've tested the best portable SSDs around.
VMware Workstation Pro is often included among the best virtual machine software, particularly for users who prioritize stability, performance, and flexibility. Its long-standing presence in professional and enthusiast environments makes it a strong alternative to more basic free tools, especially for those who need a more consistent and feature-rich virtualization experience.
VMware Workstation Pro: Plans and pricingVMware Workstation Pro is now available free of charge, marking a significant shift from its previous licensing model. While earlier 2024 releases limited free access to personal use, subsequent updates expanded availability to a broader range of users, including commercial and educational environments.
The full Pro feature set is accessible without a license fee, although this comes with a trade-off. Free users do not receive direct technical support, and organizations that require guaranteed service levels must rely on enterprise agreements and support subscriptions.
VMware Workstation Pro: Features(Image credit: VMWare // Future)VMware Workstation Pro provides a comprehensive set of virtualization features designed for both development and testing scenarios. It supports a wide range of guest operating systems, including multiple versions of Windows and Linux, and allows users to allocate CPU cores, memory, and storage resources with a high degree of control.
Core functionality includes snapshots and cloning, enabling users to save system states and replicate virtual machines for testing or backup purposes. Networking capabilities are particularly strong, with support for NAT, bridged, and custom virtual network configurations, making it suitable for more advanced lab environments.
The platform also supports hardware-assisted virtualization and offers stable compatibility with modern operating systems, allowing users to run multiple environments in parallel without major limitations. These capabilities also make it a practical option for testing and sandboxing different environments, particularly when working with software that requires isolation from the host system.
VMware Workstation Pro also supports more advanced use cases, including running multiple virtual machines simultaneously and configuring more complex testing environments. This makes it particularly suitable for developers and IT professionals who need to simulate real-world scenarios across different systems.
VMware Workstation Pro: Interface and use(Image credit: VMWare // Future)VMware Workstation Pro uses a structured and relatively modern interface, with a central workspace for managing virtual machines and clearly organized configuration menus. Compared to more basic tools, the layout feels more polished and consistent, making it easier to navigate once familiar with the workflow.
Setting up a new virtual machine is a guided process, with predefined profiles for common operating systems that simplify configuration. In most cases, the platform automatically detects installation media and suggests appropriate settings, reducing the need for manual adjustments.
Once a virtual machine is running, interaction is smooth and responsive, with reliable mouse integration and display handling. Everyday tasks such as starting, pausing, or cloning machines are easily accessible, although the overall experience may still feel slightly complex for users without prior virtualization experience.
Accessing the software has become slightly more complicated than before, as downloads are now handled through the Broadcom support portal. This requires account registration and navigation through a less intuitive interface, which may feel unnecessary for a tool that is otherwise free to use.
VMware Workstation Pro: Performance(Image credit: VMWare // Future)In use, VMware Workstation Pro delivers a more consistent and responsive experience than many free alternatives. Virtual machines generally boot quickly and remain stable under typical workloads, particularly when running common Linux distributions or standard Windows environments.
Resource management is handled efficiently, allowing multiple virtual machines to run in parallel without significant slowdowns on capable hardware. While performance will always depend on the host system, VMware tends to make better use of available resources compared to simpler virtualization tools.
Graphics handling is generally more reliable than in many free alternatives, although the platform is not intended for demanding graphical workloads.
In longer sessions, VMware Workstation Pro tends to remain stable, even when running multiple virtual machines or switching between workloads. This consistency is one of its key advantages, particularly for users who rely on virtualization as part of their daily workflow rather than occasional testing.
However, the platform is not lightweight. Running multiple virtual machines or more demanding workloads can place noticeable strain on CPU and memory resources, making it less suitable for lower-end systems.
VMware Workstation Pro: SupportVMware Workstation Pro benefits from extensive documentation and a large user community, making it relatively easy to find guidance for most common issues. Official support is available through VMware’s enterprise channels, although it is primarily aimed at business users and paid support agreements.
For individual users, most troubleshooting relies on community forums, knowledge bases, and third-party resources. While this is sufficient for many scenarios, it may not match the level of direct support offered by some commercial alternatives.
VMware Workstation Pro: The competition(Image credit: VMWare // Future)VMware Workstation Pro operates in a competitive space that includes both free and commercial virtualization tools. Oracle VM VirtualBox remains the most direct free alternative, offering similar core functionality but with a less polished interface and more inconsistent performance.
Compared to VirtualBox, VMware Workstation Pro offers a more refined and stable experience, although it demands more system resources and may feel less accessible to beginners. VirtualBox remains a strong option for users who prioritize simplicity and open-source flexibility, but it often requires more manual configuration.
On macOS systems, Parallels Desktop continues to lead due to its tight system integration and ease of use, particularly for users who want a near-native experience when running Windows applications. VMware’s own Fusion product serves a similar role, although it typically appeals more to technical users.
Overall, VMware Workstation Pro positions itself as a middle ground, combining the accessibility of free tools with a level of polish and consistency that is closer to commercial solutions.
VMWare Workstation Pro: Final VerdictVMware Workstation Pro remains one of the most mature desktop virtualization platforms available, combining strong performance with a well-structured and feature-rich environment. The move to a free model makes it significantly more accessible, while its overall experience continues to feel more polished than many competing tools. It may not be the simplest option for beginners, but for users who need stability and flexibility, it stands out as a reliable choice.
The Ninja French Door Air Fryer and Countertop Oven is an efficient and flexible cooking appliance. It has 10 cook modes: Air Fry, Air Roast, Whole Roast, Bake, Pizza, Broil, Reheat, Dehydrate, Toast, and Bagel. You can quickly cook or heat up just about anything you can fit into its extra-large cooking area.
It pre-heats in seconds, and cooks your food faster than you would expect. Obviously we like fast-working appliances, but it also means you need to keep an eye on your food as it cooks. You can't just follow the directions on the prepared food box and walk away; I found that this appliance cooked some frozen items faster than the box directions indicated.
The Ninja French Door Air Fryer and Countertop Oven uses "Cyclonic Air Technology." It does allow for speedy all-over cooking and eliminates the need to rotate your food mid-cycle that many air fryer require. However, if you like to put foil and/or parchment paper down on your cook tray, make sure it's anchored down with food on all four corners. Otherwise, it will go flying up into the upper heat elements. Ask me how I know that.
Overall, I was very happy with the The Ninja French Door Air Fryer and Countertop Oven. While some parts of the foods got blackened while other parts remained pale, the difference wasn't enough to affect taste. Everything I made came out delicious.
Ninja French Door Air Fryer and Countertop Oven: price and availabilityThe The Ninja French Door Air Fryer and Countertop Oven is available at many major retailers both online and in stores. Find it at Amazon, Target, Best Buy, Walmart, Crate & Barrel, Ninja's own website, and more. It starts at $279.99 (about £210 / AU$420) but is currently only available in the US unless your import it.
The stainless steel version retails for $279.99 while the other shades are $20 more. It comes in four colors: Stone and Gold (mostly gold,) Black (with rose gold hardware,) Stainless Steel (as seen in my photos,) and Cyberspace (dark gray with gold hardware.)
Price
$279.99 (about £210 / AU$390)
Cooking functions:
Air Fry, Air Roast, Whole Roast, Bake, Pizza, Broil, Reheat, Dehydrate, Toast, and Bagel
Size (H x W x D)
13.5 x 15.8 x 16.5 inches / 34.3 x 40.1 x 41.9cm
Weight:
22.77lbs / 10.33kg
Accessories included:
5qt air fry basket, sheet pan, broil rack, recipe booklet
Color options:
Stone and Gold, Black, Stainless Steel, and Cyberspace
Ninja French Door Air Fryer and Countertop Oven: design and featuresThe Ninja French Door Air Fryer and Countertop Oven looks great on the counter. The French doors give it a more upscale look and the control dials are simple and uncluttered. I feared that French doors would require two-handed opening, but that's not the case. The doors work in tandem, so pulling or pushing either door handle moves both doors. The doors are glass, and there is a lightbulb inside, so you can easily see what's cooking.
(Image credit: Karen Freeman / Future)The power button is on the top left side of the control panel. On the right, a large dial spins to select mode, time, and temperature. Press that same dial to start and stop cooking. Next to the dial are four buttons: Temp/Shade, Mode, Time/Slices, and the light bulb.
The rest of the control panel is black when not in use, but lights up when you turn the oven on. It shows all of the cooking modes (Air Fry, Air Roast, Whole Roast, Bake, Pizza, Broil, Reheat, Dehydrate, Toast, and Bagel) and pertinent information for your current mode. For example, when you're toasting, the panel shows the number of slices and the shade you've chosen. If you're using one of the oven or air fry modes, the panel shows the time and temperature.
(Image credit: Karen Freeman / Future)The Ninja French Door Air Fryer and Countertop Oven does take up a fair bit of counter space, but since it replaces both a toaster oven and an air fryer, I didn't mind. It's quite spacious inside, it easily fits my favorite frozen pizza and could fit a modestly-sized chicken. Included accessories are a five-quart air fry basket, sheet pan, broil rack, and a recipe booklet. The interior cooking rack can be moved up or down to accommodate your desired foods. According to Ninja, the cooking surfaces do not contain PFAS. The crumb tray at the bottom is removable for easy cleaning.
(Image credit: Karen Freeman / Future)The Ninja French Door Air Fryer and Countertop Oven preheats in just 90 seconds and heats up to 450F / 232C. It cooks with cyclonic air, which does a couple of things. First of all, it cooks your food all over without you having to move your food around mid-cycle like you do with many air fryers. According to Ninja, the oven cooks up to 60% faster than conventional ovens and you can use 75% less fat than traditional frying in air fry mode.
This cyclonic air feature also means that if you like to place parchment paper or aluminum foil on your bake tray, you must use caution. The cyclonic air will suck it up into the heating element if you don't have it fully weighed down with food at every edge. Yes, I found that out the hard way. Luckily I was standing close by and cut the power before it caught fire.
(Image credit: Karen Freeman / Future)I tested many of the Ninja French Door Air Fryer and Countertop Oven's cooking modes. I had to start with toast, of course. You can adjust for the number of slices and the shade you like, so it's easy to have toast exactly the way you like it. It does take some trial and error. I first did a single slice at level three and got one very dark edge. Later, I did two slices at level four and they both came out perfect.
(Image credit: Karen Freeman / Future)I tested out Air Fry mode with a number of different foods. I made frozen French fries according to the package instructions (though I did end up adding a little more time) and they came out just right, crisp on the outside and soft and fluffy inside. Another time, I made frozen crinkle French fries. There were some very dark spots, but they tasted quite good.
Karen Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureI also made some sweet potato fries from scratch in Air Fry mode. They don't look pretty, they are covered with dark spots, but I like them that way. They were delicious, nice and soft on the inside. I wouldn't say they were super crisp on the outside, but I barely used any oil. The more oil you use, the crisper your food turns out.
(Image credit: Karen Freeman / Future)I made tofu in Air Fry mode, with just a simple baking soda coating. It turned out beautifully, nice and crispy on the outside and soft inside.
(Image credit: Karen Freeman / Future)I made frozen veggies several times, in a number of different modes including both Air Fry and Air Roast mode. I find that the 'air' modes dried out the frozen vegetables a bit, which was what I wanted. Frozen veggies can be quite soggy when cooked in other ways, and I was very happy with how they turned out.
(Image credit: Karen Freeman / Future)I also made a one-pan meal in Air Roast mode. This included a veggie burger, frozen vegetables, and fresh vegetables. This came out great and only took 15 minutes.
(Image credit: Karen Freeman / Future)I didn't roast a whole chicken, but I did make a couple of chicken breasts in Whole Roast mode. They came out perfectly, nice and juicy, and I can't think of an easier and faster way to make chicken breasts.
(Image credit: Karen Freeman / Future)I made frozen pizza in Pizza mode. The first time, I followed the box instructions without watching, and it cooked so fast that it was nearly black at the end (though not too burnt to eat.) The second time, I watched it more closely and stopped it before the time the box indicated. This time it came out great. It's a bit dark around the edges, but it's a big, thick pizza and it was perfectly cooked in the center.
(Image credit: Karen Freeman / Future)I made some very simple 'bagels' in Bake mode. The dough is just Greek yogurt and self-rising flour. These came out amazing — golden brown on the outside and fluffy inside.
Karen Freeman / FutureKaren Freeman / FutureI tried out Reheat mode on two different restaurant leftovers: chicken parmesan and a quesadilla. Both reheated beautifully in just five minutes, without getting burnt or dried out at all.
Karen Freeman / FutureKaren Freeman / FutureI was continually surprised by how quickly the Ninja French Door Air Fryer and Countertop Oven cooked a variety of foods. While some foods did get a bit blackened around the edges, they never tasted burnt. Everything I made was thoroughly cooked in the middle and tasted great.
Attributes
Notes
Rating
Value
This is fairly pricey countertop appliance, though it does replace a toaster oven and air fryer.
4/5
Design
It looks nice enough on the counter and the controls are intuitive to use.
4.5/5
Performance
Baking, cooking, reheating, toasting, and air frying has never been faster or easier.
4.5/5
Overall
You do need to keep an eye on your food, but overall, I was impressed by its speed and efficiency.
4.5/5
Buy it ifYou want to save counter space
While the Ninja French Door Air Fryer and Countertop Oven does have a fairly large footprint, it eliminates the need for a separate countertop oven, toaster, and air fryer.
You want delicious food, fast
I kept being surprised by how quickly the Ninja French Door Air Fryer and Countertop Oven cooked both prepared foods and food from scratch.
You want to cook with less oil
You can make traditionally fried foods with little or even no oil.
Don't buy it ifYou're on a tight budget
You could get a traditional toaster oven plus a dedicated air fryer for a lot less money than this one appliance.
You prefer dedicated appliances
Some people really just prefer a stand-alone air fryer and a separate toaster or toaster oven.
You don't have room
This isn't the sort of appliance you can take on and off your counter to store away when not in use. It's a bit big and unwieldy for that.
Ninja French Door Air Fryer and Countertop Oven: also considerIf the Ninja French Door Air Fryer and Countertop Oven isn't for you, here are some other options you might consider.
Ninja Double Oven Air Fryer
Another all-in-one appliance you might like is the Ninja Double Oven Air Fryer. As the name implies, you can cook two separate items in different chambers at the same time.
Learn more in our full Ninja Double Oven Air Fryer review
Kalorik Vivid Touch Touchscreen Air Fryer
Are you more of a dedicated air fryer enthusiast? This one has a handy touch screen for all your favorite foods and a glass-front drawer so you can keep an eye on the contents cooking.
Check out my full Kalorik Vivid Touch Touchscreen Air Fryer reviewView Deal
Ninja Crispi 4-in-1 Portable Glass Air Fryer Cooking System
If you do want an air fryer that doesn't need to live on your counter, consider the Ninja Crispi. It's portable so you can even take it out with you to air fry or heat up food on the go. This is on our list of the best air fryers.
Read my full Ninja Crispi review
How I tested the Ninja French Door Air Fryer and Countertop OvenI cooked, heated, and reheated a variety of foods, both frozen prepared foods and fresh food from scratch. I used the Air Fry, Air Roast, Whole Roast, Bake, Pizza, Reheat, and Toast cycles multiple times. Over the course of a month, I used it daily, often multiple times per day. I made both fresh and frozen vegetables many, many times. I heated up frozen pizza. I made french fries, both from scratch and frozen, multiple times. I baked two-ingredient "bagels" many times. I reheated a couple of different restaurant leftovers. I air fried some tofu. I made chicken breasts and veggie burgers several times. I toasted bread just about daily.
Read more about how we test.
First reviiewed June 2026
Cape Fear was one of my most anticipated Apple TV shows of 2026, but I was also worried about it. Adapting such an iconic story is no easy task, as people will always end up comparing it to the original. That said, I was impressed by Nick Antosca's take on Max Cady and the terror he unleashes on everyone around him.
To give you a quick synopsis of Cape Fear, it follows Cady, a vicious and unreformed ex-convict who gets revenge on the two attorneys who put him behind bars. That's enough to send a chill down your spine, and it requires a really strong performance to stick the landing.
Fortunately, we get that thanks to Javier Bardem. It might be bold of me to say, but his take on Max Cady is my favorite thing he has ever done, because he left me feeling utterly terrified. Truly, he is deranged in this and brings so much to the role. A good villain is more than just scary, and he has it all: charm, charisma, and even certain moments where you feel sorry for him. It is a well-rounded, chilling performance indeed.
Amy Adams and Patrick Wilson star opposite him in great supporting roles as Anna and Tom Bowden, who are living an affluent and comfortable life when we first meet them. Nice house, nice pool, no deranged convict coming after them... yet.
When that threat does start looming, you're sure to be on the edge of your seat thanks to some superb tension building.
Amy Adams is terrorized by Javier Bardem in Cape Fear. (Image credit: Apple TV)I loved a lot about Cape Fear, but I had the chance to review six episodes, and I'm not entirely convinced it needs to be as long as 10 episodes. I'm happy to be proven wrong with a mind-blowing finale, but I did notice it was starting to suffer from some pacing issues at certain points.
There are also a few silly twists that may cause some division between viewers, and many of these seem to have been added in to keep the momentum going when things started to run out of steam. This is the main issue I have with Cape Fear; outside of that, I've been very impressed.
While not billed as a horror, it does lean into elements I know and love about the genre. I was surprised by some genuinely effective scares throughout, as well as some shocking scenes. This series does not hold back; it is just as intense as the 1991 movie, in case you had any doubts.
On top of that, it's very stylish and well filmed, especially when it comes to the more jarring moments. The series is visually stunning and has a lot of picturesque sets to offset the horrible things that happen within them. It really highlights how quickly Cady rips through this family's life and ruins the comforts they have been enjoying. According to the eerie repetition in the teaser trailer, they deserve this.
I think Cape Fear benefits from its weekly release schedule, rather than a full season drop. This is the kind of show you'll want to savor and tune in for once a week, as it may be too intense to binge all in one go. Some scenes are sure to stick with you and haunt your dreams.
Overall, it's a solid adaptation, and they've assembled a great cast to bring the story to life. It feels like another big win for Apple TV, which has already dipped its toes into horror thanks to Widow's Bay. I'm really excited to see what's next for one of the best streaming services.
If the answer is more Max Cady, I would not complain at all.