The Apple iPhone Duo isn't the first foldable. It’s not even the second foldable. It’s maybe the fourth, the fifth, or the sixth following in the footsteps of fantastic flexible phones like the Samsung Galaxy Z Fold 8 Ultra, the Samsung Galaxy Z Fold 8, Motorola’s Razr Fold, and so many other really strong, solid, and sometimes excellent foldables.But that doesn’t make it any less special. To understand Apple’s iPhone Duo, you need to compare it to its nearest competitor, the one we saw just months earlier from Samsung: the passport-sized Samsung Galaxy Z Fold 8.There are a lot of similarities. Let’s start with the screens. Both have 7.6-inch inside, or main, screens. Those are the foldable ones. Apple’s is a Super Retina XDR OLED, and the Samsung Galaxy Z Fold 8 is a dynamic OLED. (Image credit: Lance Ulanoff / Future)The cover screens are also quite similar. On the Apple iPhone duo, we have a 5.4-inch Super Retina XDR display, and on the Samsung Galaxy Z Fold 8, a 5.5-inch AMOLED.At a glance, they share that sort of nearly passport-sized shape, although Samsung went for more symmetry, giving its foldable pretty much square corners, while Apple went for a slightly unusual asymmetrical design on its 5.4-inch cover display, which is flat on one side with the hinge and curved on the other (and something we've seen before with Google's Pixel Pro Fold line).There are a lot of contrasts like this, and I think one of the things that people have tried to do is get me to “admit" that Samsung is better, maybe simply because it’s first, but also because there are areas in which the Samsung Galaxy Z Fold 8 is obviously better than the iPhone Duo. There are also places where the iPhone Duo outshines the Z Fold 8. Let’s dig into some of the key differences and why, ultimately, it may not add up to a conclusive win for either side.Design and DisplaysFrom a build-materials standpoint, these are both excellent devices. Apple starts with titanium, polishes it to a fingerprint-attracting shine, and Samsung opts for a pleasing brushed aluminum frame, though there is some titanium underneath the screen.They both have some really strong glass covers and backs: Apple has the Ceramic Shield 2 on the front and back, and Samsung has Corning Gorilla Glass Victus 2. They're both durable materials. Admittedly, I have had the Z Fold 8 for a little bit longer, and it has a couple of noticeable scratches on the cover screen. I honestly have no idea how they got there.Lance Ulanoff / FutureLance Ulanoff / FutureOn the flexible displaysSwitching to the all-important flexible inner displays, both are 7.6 inches, so it’s kind of a wash on screen real estate. They both have roughly the same bezel: it's quite thin on the Z Fold 8, and maybe a tiny bit thinner on the iPhone Duo.One device has squared corners, and one has curved corners. Both support 3000 nits of brightness, but again, the iPhone Duo's inner display has slightly higher resolution. It’s 1878 x 2670, while the Samsung Galaxy Z Fold 8 has 1848 x 2448. Again, that is a relatively small difference, but I think that you notice just a tiny bit more sharpness on the Duo. Ultimately, that minor resolution disparity isn't what really matters on the inner screen. Let’s look at one of the biggest differences, and a place where the iPhone Duo stands significantly above the Galaxy Z Fold 8.Lance Ulanoff / FutureLance Ulanoff / FutureLance Ulanoff / FutureIf you’re lucky enough to have the two devices side by side, just shine a light on them, and you will see a difference. Samsung Galaxy Z Fold 8’s flexible display is really lovely, and it is pretty hard to see the crease, except when you shine a light on it; then you can really notice this sort of little half-inch-wide, wavy area that runs vertically on the display.On the iPhone Duo, it is much harder to see the same thing, thanks to the nano texture covering, a really smart bit of material design on Apple’s part. To be clear, Apple didn’t get rid of the crease entirely. You can feel it if you put your finger in the right place, but it is difficult, especially when you’re using the screen and looking directly at it in any light, to see the crease because the nano texture disperses the light. It’s just such a smart way to handle this, and it makes for a better experience when you’re using the inner screen.It all hinges on thisUnderneath that visible or invisible crease is the hinge. Samsung has spent nearly a decade perfecting this technology, building ever thinner, lighter, and smaller devices with less noticeable creases and hinges, and the Samsung Galaxy Z Fold 8 is an excellent example of that effort. The hinge sits neatly against the back, and when you open it, you can barely notice the mechanics.@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap'); #fv-chart-1793036571740-za9sm7t61 *, #fv-chart-1793036571740-za9sm7t61 *:before, #fv-chart-1793036571740-za9sm7t61 *:after, #fv-chart-1793036571740-za9sm7t61-slideshow *, #fv-chart-1793036571740-za9sm7t61-slideshow *:before, #fv-chart-1793036571740-za9sm7t61-slideshow *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1793036571740-za9sm7t61, #fv-chart-1793036571740-za9sm7t61-slideshow { font-family: 'Open Sans', sans-serif !important; } #fv-chart-1793036571740-za9sm7t61 { position: relative !important; overflow: visible !important; --riv-primary: #2E6E93; } #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .fv-inner-wrapper.fv-no-header.fv-is-image-compare { padding-top: 0 !important; } #fv-chart-1793036571740-za9sm7t61.fv-full-bleed { width: 100vw !important; margin-left: calc(50% - 50vw) !important; } body { overflow-x: clip !important; } #fv-chart-1793036571740-za9sm7t61.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-1793036571740-za9sm7t61 .fv-inner-wrapper.fv-is-shop-the-look { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1793036571740-za9sm7t61-slideshow { position: relative !important; width: 100% !important; margin: 1rem 0 !important; --riv-primary: #2E6E93; } #fv-chart-1793036571740-za9sm7t61-slideshow .fv-slides-wrapper { position: relative !important; width: 100% !important; } #fv-chart-1793036571740-za9sm7t61-slideshow .fv-slide { width: 100% !important; animation: fv-fade-in 0.3s ease-in-out; } #fv-chart-1793036571740-za9sm7t61-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-1793036571740-za9sm7t61-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-1793036571740-za9sm7t61-slideshow .fv-nav-btn svg { width: 18px !important; height: 18px !important; stroke-width: 3px !important; filter: none !important; } #fv-chart-1793036571740-za9sm7t61-slideshow .fv-nav-btn:hover { opacity: 0.9 !important; transform: translateY(-1px) !important; } #fv-chart-1793036571740-za9sm7t61-slideshow .fv-nav-btn.disabled, #fv-chart-1793036571740-za9sm7t61-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-1793036571740-za9sm7t61-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; user-select: none !important; } #fv-chart-1793036571740-za9sm7t61-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-1793036571740-za9sm7t61-slideshow .fv-slideshow-select:focus { outline: 2px solid #2E6E93 !important; border-color: #2E6E93 !important; } @keyframes fv-fade-in { from { opacity: 0; } to { opacity: 1; } } #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .rv-chart-caption { font-size: 15px !important; color: #374151 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1793036571740-za9sm7t61 .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; } #fv-chart-1793036571740-za9sm7t61 .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; } #fv-chart-1793036571740-za9sm7t61 .fv-versus-select-wrapper { flex: 1; min-width: 0; } #fv-chart-1793036571740-za9sm7t61 .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; } #fv-chart-1793036571740-za9sm7t61 .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; } #fv-chart-1793036571740-za9sm7t61 .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; } #fv-chart-1793036571740-za9sm7t61 .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; } #fv-chart-1793036571740-za9sm7t61 .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; } #fv-chart-1793036571740-za9sm7t61 .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; } #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; } #fv-chart-1793036571740-za9sm7t61 .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; } #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; } #fv-chart-1793036571740-za9sm7t61 .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; } #fv-chart-1793036571740-za9sm7t61 .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; } #fv-chart-1793036571740-za9sm7t61 .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; } #fv-chart-1793036571740-za9sm7t61 .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; } #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; } #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .fv-inside-left { white-space: nowrap; flex-shrink: 0; } #fv-chart-1793036571740-za9sm7t61 .fv-inside-right { white-space: nowrap; flex-shrink: 0; } #fv-chart-1793036571740-za9sm7t61 .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; } #fv-chart-1793036571740-za9sm7t61 .fv-versus-pct-diff { font-size: 12px; font-weight: 600; } #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } #fv-chart-1793036571740-za9sm7t61 .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1793036571740-za9sm7t61 .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1793036571740-za9sm7t61 .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; min-width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; flex-shrink: 0 !important; } #fv-chart-1793036571740-za9sm7t61 .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; } #fv-chart-1793036571740-za9sm7t61 .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; } #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .fv-dropdown-title:focus { outline: none !important; } #fv-chart-1793036571740-za9sm7t61 .fv-dropdown-title::-ms-expand { display: none !important; } #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1793036571740-za9sm7t61 .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; } #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; } #fv-chart-1793036571740-za9sm7t61 .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; } #fv-chart-1793036571740-za9sm7t61 .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .fv-bar-row, #fv-chart-1793036571740-za9sm7t61 .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; } #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .fv-bar-commentary-inline { display: none !important; position: absolute !important; left: 150px !important; top: 0 !important; bottom: 0 !important; right: 0 !important; width: calc(100% - 150px) !important; margin: 0 !important; padding: 0 8px !important; font-size: 13px !important; color: #fff !important; background: rgba(0,0,0,0.8) !important; border-radius: 4px !important; line-height: 1.4 !important; font-weight: normal !important; text-transform: none !important; word-wrap: break-word !important; z-index: 10 !important; align-items: center !important; overflow-y: auto !important; } #fv-chart-1793036571740-za9sm7t61.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1793036571740-za9sm7t61.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1793036571740-za9sm7t61.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; } #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1793036571740-za9sm7t61 .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } #fv-chart-1793036571740-za9sm7t61 .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; } #fv-chart-1793036571740-za9sm7t61 .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; } #fv-chart-1793036571740-za9sm7t61 .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1793036571740-za9sm7t61 .fv-segment-value { font-size: 14px !important; font-weight: bold !important; } #fv-chart-1793036571740-za9sm7t61 .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1793036571740-za9sm7t61 .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1793036571740-za9sm7t61 .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1793036571740-za9sm7t61 .fv-bar-cluster .fv-bar-container { height: 20px !important; } #fv-chart-1793036571740-za9sm7t61 .fv-dials-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important; gap: 1.5rem 1rem !important; width: 100% !important; margin: 0.75rem 0 1.25rem !important; align-items: start !important; justify-items: center !important; } #fv-chart-1793036571740-za9sm7t61 .fv-dial-card { display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; width: 100% !important; max-width: 220px !important; } #fv-chart-1793036571740-za9sm7t61 .fv-dial-title { font-family: 'Poppins', 'Open Sans', sans-serif !important; font-size: 18px !important; font-weight: 700 !important; color: #2b2b2b !important; line-height: 1.25 !important; margin-bottom: 0.35rem !important; text-align: center !important; width: 100% !important; overflow-wrap: break-word !important; text-transform: none !important; } #fv-chart-1793036571740-za9sm7t61 .fv-dial-svg-wrapper { width: 100% !important; max-width: 200px !important; display: flex !important; justify-content: center !important; } #fv-chart-1793036571740-za9sm7t61 .fv-dial-svg { width: 100% !important; height: auto !important; display: block !important; overflow: visible !important; } #fv-chart-1793036571740-za9sm7t61 .fv-dial-needle { transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) !important; } #fv-chart-1793036571740-za9sm7t61 .fv-dial-commentary { margin-top: 0.35rem !important; font-size: 13px !important; line-height: 1.45 !important; color: #4B5563 !important; text-align: center !important; width: 100% !important; padding: 0 4px !important; font-family: 'Open Sans', sans-serif !important; word-wrap: break-word !important; } #fv-chart-1793036571740-za9sm7t61.preview-wrapper .fv-dial-commentary-input { min-height: 22px !important; border: 1px dashed transparent !important; border-radius: 4px !important; transition: border-color 0.15s ease, background-color 0.15s ease !important; } #fv-chart-1793036571740-za9sm7t61.preview-wrapper .fv-dial-card:hover .fv-dial-commentary-input, #fv-chart-1793036571740-za9sm7t61.preview-wrapper .fv-dial-commentary-input:focus { border-color: #CBD5E1 !important; background-color: rgba(241, 245, 249, 0.6) !important; } #fv-chart-1793036571740-za9sm7t61 .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } #fv-chart-1793036571740-za9sm7t61 .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1793036571740-za9sm7t61 .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1793036571740-za9sm7t61 .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1793036571740-za9sm7t61 .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1793036571740-za9sm7t61 .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .fv-y-axis-title { font-size: 15px !important; color: #374151 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } #fv-chart-1793036571740-za9sm7t61 .fv-image-compare-container { width: auto !important; margin-left: -1.5rem !important; margin-right: -1.5rem !important; margin-bottom: 2rem !important; } #fv-chart-1793036571740-za9sm7t61.fv-full-bleed .fv-image-compare-container { width: 100% !important; max-width: none !important; margin: 0 auto !important; } #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .fv-image-compare-handle.fv-image-compare-handle-square { border-radius: 6px !important; } #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .fv-image-compare-label-left { left: 1rem !important; } #fv-chart-1793036571740-za9sm7t61 .fv-image-compare-label-right { right: 1rem !important; } #fv-chart-1793036571740-za9sm7t61 .fv-image-compare-expand-btn, #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .fv-image-compare-expand-btn:hover, #fv-chart-1793036571740-za9sm7t61 .fv-image-compare-close-btn:hover { background-color: rgba(0, 0, 0, 0.7) !important; } #fv-chart-1793036571740-za9sm7t61 .fv-image-compare-close-btn { display: none !important; top: 1rem !important; bottom: auto !important; } #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner:active { cursor: grabbing !important; } #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-expand-btn { display: none !important; } #fv-chart-1793036571740-za9sm7t61 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-close-btn { display: flex !important; } #fv-chart-1793036571740-za9sm7t61 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-label-right { right: 4rem !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-pie-container, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-grouped-product-title-wrapper, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-bar-row, #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-stacked-product, #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-grouped-bar-product, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-bar-row, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-stacked-product, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-bar-label:not(.fv-grouped-product-title), #fv-chart-1793036571740-za9sm7t61.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-1793036571740-za9sm7t61.mobile-view .fv-bar-label, #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-grouped-product-title, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-bar-label, #fv-chart-1793036571740-za9sm7t61.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-1793036571740-za9sm7t61.mobile-view .fv-bar-container, #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-bar-cluster, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-bar-container, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-bar-cluster { width: 100% !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-x-axis-wrapper, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-x-axis-label-space, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-x-axis-label-space { display: none !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-x-axis-chart-space, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-benchmark-title, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-dropdown-title, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-carousel-nav-btn, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-chart-title, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-chart-title { padding: 0 8px !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-chart-subhead, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-versus-header, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-versus-select-wrapper, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-versus-select-wrapper.fv-left, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-versus-select-wrapper.fv-right, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-versus-select.fv-select-left, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-versus-select.fv-select-right, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-versus-vs, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-versus-select-container, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-versus-select, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-stl-shop-all-btn, #fv-chart-1793036571740-za9sm7t61.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-1793036571740-za9sm7t61.mobile-view .fv-stl-shop-all-logo, #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-stl-shop-all-icon, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-stl-shop-all-logo, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-stl-shop-all-icon svg, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-bar-commentary-inline, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-dials-grid, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-dial-title, #fv-chart-1793036571740-za9sm7t61.labels-on-top .fv-dial-title { font-size: 16px !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1793036571740-za9sm7t61.mobile-view.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } @media (max-width: 599px) { #fv-chart-1793036571740-za9sm7t61 .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1793036571740-za9sm7t61 .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1793036571740-za9sm7t61 .fv-bar-row, #fv-chart-1793036571740-za9sm7t61 .fv-stacked-product, #fv-chart-1793036571740-za9sm7t61 .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .fv-bar-label, #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .fv-bar-container, #fv-chart-1793036571740-za9sm7t61 .fv-bar-cluster { width: 100% !important; } #fv-chart-1793036571740-za9sm7t61 .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1793036571740-za9sm7t61 .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1793036571740-za9sm7t61 .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1793036571740-za9sm7t61 .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1793036571740-za9sm7t61 .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1793036571740-za9sm7t61 .fv-x-axis-label-space { display: none !important; } #fv-chart-1793036571740-za9sm7t61 .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1793036571740-za9sm7t61 .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1793036571740-za9sm7t61 .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1793036571740-za9sm7t61 .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1793036571740-za9sm7t61 .fv-chart-title { padding: 0 8px !important; } #fv-chart-1793036571740-za9sm7t61 .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1793036571740-za9sm7t61 .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1793036571740-za9sm7t61 .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1793036571740-za9sm7t61 .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1793036571740-za9sm7t61 .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1793036571740-za9sm7t61 .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1793036571740-za9sm7t61 .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1793036571740-za9sm7t61 .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1793036571740-za9sm7t61 .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1793036571740-za9sm7t61 .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1793036571740-za9sm7t61 .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-1793036571740-za9sm7t61 .fv-stl-shop-all-logo, #fv-chart-1793036571740-za9sm7t61 .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1793036571740-za9sm7t61 .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1793036571740-za9sm7t61 .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1793036571740-za9sm7t61 .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1793036571740-za9sm7t61 .fv-dial-title { font-size: 16px !important; } #fv-chart-1793036571740-za9sm7t61 .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1793036571740-za9sm7t61.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } }{ "@context": "https://schema.org", "@type": "Dataset", "name": "iPhone Duo vs Galaxy Z Fold 8", "description": "Hinge mechanism closeup of the two phones", "creator": { "@type": "Organization", "name": "TechRadar", "logo": "https://cdn.mos.cms.futurecdn.net/dAwPEozB9GMMhAngdFJTHb.png" }, "isAccessibleForFree": true, "dateCreated": "2026-10-26T17:42:51.740Z", "citation": "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized", "keywords": [ "Image Comparison", "benchmark", "comparison", "performance", "review", "TechRadar" ], "measurementTechnique": "Performance Benchmarking", "variableMeasured": []}{"version":2,"exportedAt":"2026-10-26T17:42:51.740Z","state":{"data":[],"products":[],"attributes":[],"selectedProducts":[],"selectedPrimaryProduct":null,"selectedAttributes":[],"productColors":[],"initialProductColors":[],"attributeColors":[],"attributeGroups":[],"chartType":"Image Comparison","roundupViewType":"bars","stlSelectedHotspotId":null,"iaSelectedNodeId":null,"barChartMaxValueOverrides":{},"barChartMinValueOverrides":{},"displayMode":"All Charts","brand":{"name":"TechRadar","logoUrl":"https://cdn.mos.cms.futurecdn.net/dAwPEozB9GMMhAngdFJTHb.png","sliderLogoUrl":"https://proof.vanilla.tools/media/images/brandLogos/techradar.png","colors":{"primary":"#2E6E93","secondary":"#E8238C","accent":"#FFFFFF","background":"#ffffff","text":"#1F2937","productColors":["#2E6E93","#E8238C","#5DA8D4","#F06EAF","#1A4E6B","#B81C70","#8CC3E0","#F499C9"]}},"textContent":{"title":"iPhone Duo vs Galaxy Z Fold 8","subhead":"Hinge mechanism closeup of the two phones","caption":"Add your caption to explain the data, the learnings and the key takeaways of the data being visualized","productNameOverrides":{},"attributeNameOverrides":{},"chartTitleOverrides":{},"xAxisLabelOverrides":{},"subheadOverrides":{},"captionOverrides":{},"unitOverrides":{},"multiValueLegendOverrides":{},"barCommentaryOverrides":{}},"dataEverLoaded":true,"showAISuggestionsButton":false,"barChartShowXAxis":true,"groupedBarChartShowProductName":false,"barChartLabelsOnTop":false,"experimentalEnablePieChart":false,"slideshowUseDropdown":false,"imageCompareData":{"image1Url":"https://cdn.mos.cms.futurecdn.net/uAp9mTJDGBvQ5CtDgNbfrG.jpg","image2Url":"https://cdn.mos.cms.futurecdn.net/HEF9gkPoYsrE8ogiFVwvsG.jpg","label1":"iPhone Duo","label2":"Galaxy Z Fold 8","showTitle":true,"showSubhead":true}},"slides":[]}iPhone Duo vs Galaxy Z Fold 8Hinge mechanism closeup of the two phonesiPhone DuoGalaxy Z Fold 8 window.iFrameResizer = { heightCalculationMethod: 'taggedElement' }; (function() { function createChartAnimator() { return function animateChartWrapper(chartWrapper) { if (!chartWrapper) return; function animateBars(chartElement) { if (!chartElement) return; var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment'); bars.forEach(function(bar, index) { bar.style.setProperty('width', '0%', 'important'); bar.style.setProperty('transition', 'none', 'important'); var targetWidth = bar.dataset.targetWidth; if (targetWidth === undefined) return; void bar.offsetWidth; var targetMargin = bar.dataset.targetMargin; var baseMargin = bar.dataset.baseMargin; if (baseMargin !== undefined) { bar.style.setProperty('margin-left', baseMargin + '%', 'important'); } setTimeout(function() { var marginTransition = baseMargin !== undefined ? ', margin-left 0.8s ease-out' : ''; bar.style.setProperty('transition', 'opacity 0.2s ease, width 0.8s ease-out' + marginTransition, 'important'); bar.style.setProperty('width', targetWidth + '%', 'important'); if (targetMargin !== undefined && baseMargin !== undefined) { bar.style.setProperty('margin-left', targetMargin + '%', 'important'); } }, index * 50 + 50); }); } function animateLineChart(chartElement) { if (!chartElement) return; var lineSvg = chartElement.querySelector('svg'); if (!lineSvg) return; var paths = lineSvg.querySelectorAll('.riv-line-path'); paths.forEach(function(p, i) { if (typeof p.getTotalLength === 'function') { var len = p.getTotalLength(); p.style.transition = 'none'; p.style.strokeDasharray = len; p.style.strokeDashoffset = len; p.getBoundingClientRect(); setTimeout(function() { p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's, stroke-width 0.2s, opacity 0.2s'; p.style.strokeDashoffset = '0'; }, 100); } }); var dots = lineSvg.querySelectorAll('.riv-dot'); dots.forEach(function(dot, i) { dot.style.opacity = '0'; setTimeout(function() { dot.style.transition = 'opacity 0.3s ease'; dot.style.opacity = '1'; }, 500 + i * 10); }); } function animateDials(chartElement) { if (!chartElement) return; var needles = chartElement.querySelectorAll('.fv-dial-needle'); needles.forEach(function(needle, index) { var targetAngle = needle.dataset.targetAngle; var baseAngle = needle.dataset.baseAngle || '-132'; if (targetAngle === undefined) return; needle.style.setProperty('transition', 'none', 'important'); needle.style.setProperty('transform', 'rotate(' + baseAngle + 'deg)', 'important'); void needle.getBoundingClientRect(); setTimeout(function() { needle.style.setProperty('transition', 'transform 0.9s cubic-bezier(0.22, 1, 0.36, 1)', 'important'); needle.style.setProperty('transform', 'rotate(' + targetAngle + 'deg)', 'important'); }, index * 60 + 50); }); } var charts = chartWrapper.querySelectorAll('.fv-chart-item'); charts.forEach(function(chart) { if (window.getComputedStyle(chart).display === 'none') return; var chartType = chart.dataset.chartType; if (chartType === 'Line') { animateLineChart(chart); } else if (chartType !== 'Pie') { animateBars(chart); animateDials(chart); } }); }; } var fvLocalAnimate = createChartAnimator(); window.fvAnimateCharts = fvLocalAnimate; function initialize(uniqueId, isSlideshow) { var root = document.getElementById(uniqueId); if (!root && !isSlideshow) return; 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) 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 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); }); /* Bar Commentary Hover Logic */ var barRows = chartWrapper.querySelectorAll('.fv-bar-row'); var globalCaptionEl = chartWrapper.querySelector('.rv-chart-caption'); var fallbackCaptionHtml = globalCaptionEl ? globalCaptionEl.innerHTML : ''; barRows.forEach(function(row) { var commentaryEl = row.querySelector('[data-commentary-key]'); if (commentaryEl) { var commentaryText = commentaryEl.textContent; if (commentaryText && commentaryText.trim().length > 0) { row.addEventListener('mouseenter', function() { if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) { globalCaptionEl.innerHTML = commentaryText; globalCaptionEl.classList.add('fv-bar-active-caption'); } }); row.addEventListener('mouseleave', function() { if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) { globalCaptionEl.innerHTML = fallbackCaptionHtml; globalCaptionEl.classList.remove('fv-bar-active-caption'); } }); } } }); /* 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'); 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 !== 'Pie') { fvLocalAnimate(chartWrapper); } var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true'; if (labelsOnTop && (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus')) { chartWrapper.classList.add('labels-on-top'); } else { chartWrapper.classList.remove('labels-on-top'); } } }); if (dropdown) dropdown.value = index; if (carouselTitle && titles[index]) carouselTitle.textContent = titles[index]; if (counter) counter.textContent = (index + 1) + ' of ' + charts.length; var activeChart = charts[index]; if (activeChart) { var newSubhead = activeChart.getAttribute('data-subhead'); var newCaption = activeChart.getAttribute('data-caption'); var currentChartType = activeChart.getAttribute('data-chart-type'); var hideGlobalCaption = currentChartType === 'Countdown' || currentChartType === 'Image Comparison' || currentChartType === 'Shop the Collection'; if (subheadEl) subheadEl.textContent = newSubhead || ''; if (captionEl) { captionEl.textContent = newCaption || ''; fallbackCaptionHtml = newCaption || ''; } if (footerContentEl) { if (newCaption && newCaption.trim().length > 0 && !hideGlobalCaption) { footerContentEl.style.display = 'block'; if (bottomBarEl) bottomBarEl.style.display = 'flex'; } else { footerContentEl.style.display = 'none'; if (bottomBarEl && !logoEl) { bottomBarEl.style.display = 'none'; } } } } } if (dropdown) dropdown.addEventListener('change', function(e) { showInternalChart(parseInt(e.target.value)); }); if (prevBtn) prevBtn.addEventListener('click', function() { showInternalChart(currentChartIndex - 1); }); if (nextBtn) nextBtn.addEventListener('click', function() { showInternalChart(currentChartIndex + 1); }); } /* 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; var scale = 1; var panX = 0; var panY = 0; var isPanning = false; var hasPanned = false; var lastClientX = 0; var lastClientY = 0; var initialDistance = null; var lastCenterX = null; var lastCenterY = null; function updateTransform() { if (wrapper.classList.contains('fv-image-compare-fullscreen')) { inner.style.setProperty('transform', 'translate(' + panX + 'px, ' + panY + 'px) scale(' + scale + ')', 'important'); } else { inner.style.removeProperty('transform'); scale = 1; panX = 0; panY = 0; } } function constrainPan() { var rect = wrapper.getBoundingClientRect(); var maxPanX = Math.max(0, (rect.width * scale - rect.width) / 2); var maxPanY = Math.max(0, (rect.height * scale - rect.height) / 2); panX = Math.max(-maxPanX, Math.min(panX, maxPanX)); panY = Math.max(-maxPanY, Math.min(panY, maxPanY)); } wrapper.addEventListener('wheel', function(e) { if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return; e.preventDefault(); var zoomSensitivity = 0.005; var zoomFactor = Math.exp(-e.deltaY * zoomSensitivity); var newScale = Math.max(1, Math.min(scale * zoomFactor, 5)); if (newScale === scale) return; var rect = wrapper.getBoundingClientRect(); var mouseX = e.clientX - rect.left - rect.width / 2; var mouseY = e.clientY - rect.top - rect.height / 2; var ratio = newScale / scale; panX = mouseX - (mouseX - panX) * ratio; panY = mouseY - (mouseY - panY) * ratio; scale = newScale; constrainPan(); updateTransform(); }, { passive: false }); wrapper.addEventListener('mousedown', function(e) { if (!wrapper.classList.contains('fv-image-compare-fullscreen') || scale 2 || Math.abs(dy) > 2) { hasPanned = true; } lastClientX = e.clientX; lastClientY = e.clientY; panX += dx; panY += dy; constrainPan(); updateTransform(); }); window.addEventListener('mouseup', function() { isPanning = false; }); wrapper.addEventListener('touchstart', function(e) { if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return; if (e.touches.length === 2) { e.preventDefault(); var dx = e.touches[0].clientX - e.touches[1].clientX; var dy = e.touches[0].clientY - e.touches[1].clientY; initialDistance = Math.sqrt(dx * dx + dy * dy); var rect = wrapper.getBoundingClientRect(); lastCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2; lastCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2; hasPanned = true; } else if (e.touches.length === 1 && scale > 1) { if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return; isPanning = true; hasPanned = false; lastClientX = e.touches[0].clientX; lastClientY = e.touches[0].clientY; } }, { passive: false }); wrapper.addEventListener('touchmove', function(e) { if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return; if (e.touches.length === 2 && initialDistance !== null) { e.preventDefault(); var dx = e.touches[0].clientX - e.touches[1].clientX; var dy = e.touches[0].clientY - e.touches[1].clientY; var distance = Math.sqrt(dx * dx + dy * dy); if (initialDistance > 0) { var zoomFactor = distance / initialDistance; var newScale = Math.max(1, Math.min(scale * zoomFactor, 5)); var rect = wrapper.getBoundingClientRect(); var centerX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2; var centerY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2; var ratio = newScale / scale; panX = centerX - (centerX - panX) * ratio; panY = centerY - (centerY - panY) * ratio; if (lastCenterX !== null && lastCenterY !== null) { panX += (centerX - lastCenterX); panY += (centerY - lastCenterY); } scale = newScale; lastCenterX = centerX; lastCenterY = centerY; constrainPan(); updateTransform(); } initialDistance = distance; } else if (e.touches.length === 1 && isPanning) { e.preventDefault(); var dx = e.touches[0].clientX - lastClientX; var dy = e.touches[0].clientY - lastClientY; if (Math.abs(dx) > 2 || Math.abs(dy) > 2) { hasPanned = true; } lastClientX = e.touches[0].clientX; lastClientY = e.touches[0].clientY; panX += dx; panY += dy; constrainPan(); updateTransform(); } }, { passive: false }); wrapper.addEventListener('touchend', function(e) { if (e.touches.length < 2) { initialDistance = null; } if (e.touches.length === 0) { isPanning = false; } }); function handleMove(clientX) { var rect = inner.getBoundingClientRect(); var x = Math.max(0, Math.min(clientX - rect.left, rect.width)); var percent = Math.max(0, Math.min((x / rect.width) * 100, 100)); if (slider) slider.style.setProperty('left', percent + '%', 'important'); if (fgImage) fgImage.style.setProperty('clip-path', 'polygon(0 0, ' + percent + '% 0, ' + percent + '% 100%, 0 100%)', 'important'); if (labelLeft) { if (percent < 10) { labelLeft.style.setProperty('opacity', '0', 'important'); } else { labelLeft.style.setProperty('opacity', '1', 'important'); } } if (labelRight) { if (percent > 90) { labelRight.style.setProperty('opacity', '0', 'important'); } else { labelRight.style.setProperty('opacity', '1', 'important'); } } } function onMouseMove(e) { if (!isDragging) return; handleMove(e.clientX); } function onTouchMove(e) { if (!isDragging) return; e.preventDefault(); handleMove(e.touches[0].clientX); } function stopDragging() { isDragging = false; window.removeEventListener('mousemove', onMouseMove); window.removeEventListener('mouseup', stopDragging); window.removeEventListener('touchmove', onTouchMove); window.removeEventListener('touchend', stopDragging); } if (slider) { var startDrag = function(clientX) { isDragging = true; handleMove(clientX); window.addEventListener('mousemove', onMouseMove); window.addEventListener('mouseup', stopDragging); }; var startTouchDrag = function(clientX) { isDragging = true; handleMove(clientX); window.addEventListener('touchmove', onTouchMove, { passive: false }); window.addEventListener('touchend', stopDragging); }; slider.addEventListener('mousedown', function(e) { e.preventDefault(); startDrag(e.clientX); }); slider.addEventListener('touchstart', function(e) { e.preventDefault(); startTouchDrag(e.touches[0].clientX); }, { passive: false }); } var expandBtn = wrapper.querySelector('.fv-image-compare-expand-btn'); var closeBtn = wrapper.querySelector('.fv-image-compare-close-btn'); if (expandBtn) { if (window !== window.parent) { expandBtn.style.display = 'none'; } else { expandBtn.addEventListener('click', function(e) { e.stopPropagation(); wrapper.classList.add('fv-image-compare-fullscreen'); document.body.style.overflow = 'hidden'; if (fgImage && fgImage.dataset.highresSrc) { fgImage.src = fgImage.dataset.highresSrc; fgImage.removeAttribute('srcset'); fgImage.removeAttribute('sizes'); } if (bgImage && bgImage.dataset.highresSrc) { bgImage.src = bgImage.dataset.highresSrc; bgImage.removeAttribute('srcset'); bgImage.removeAttribute('sizes'); } }); } } if (closeBtn) { closeBtn.addEventListener('click', function(e) { e.stopPropagation(); wrapper.classList.remove('fv-image-compare-fullscreen'); document.body.style.overflow = ''; updateTransform(); }); } document.addEventListener('keydown', function(e) { if (e.key === 'Escape' && wrapper.classList.contains('fv-image-compare-fullscreen')) { wrapper.classList.remove('fv-image-compare-fullscreen'); document.body.style.overflow = ''; updateTransform(); } }); }); /* 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 stlContainer = chartWrapper.querySelector('.fv-stl-container'); function closeAllModals() { if (allProductsModal) { allProductsModal.classList.remove('is-active'); var items = allProductsModal.querySelectorAll('.fv-stl-all-products-item'); items.forEach(function(item) { item.classList.remove('is-highlighted'); }); if (stlContainer) { setTimeout(function() { if (!allProductsModal.classList.contains('is-active')) { stlContainer.style.minHeight = ''; if ('parentIFrame' in window) { window.parentIFrame.size(); } } }, 300); } } hotspots.forEach(function(btn) { btn.setAttribute('aria-expanded', 'false'); }); if ('parentIFrame' in window) { window.parentIFrame.size(); } } hotspots.forEach(function(btn) { btn.addEventListener('click', function(e) { e.stopPropagation(); var hotspotId = btn.getAttribute('data-hotspot-id'); var isExpanded = btn.getAttribute('aria-expanded') === 'true'; closeAllModals(); if (!isExpanded && allProductsModal) { btn.setAttribute('aria-expanded', 'true'); allProductsModal.classList.add('is-active'); var container = btn.closest('.fv-stl-container'); if (container && container.offsetHeight < 450) { container.style.minHeight = '450px'; } var targetItem = allProductsModal.querySelector('.fv-stl-all-products-item[data-product-id="' + hotspotId + '"]'); if (targetItem) { targetItem.classList.add('is-highlighted'); setTimeout(function() { targetItem.scrollIntoView({ behavior: 'smooth', block: 'center' }); }, 100); } if ('parentIFrame' in window) { window.parentIFrame.size(); } } }); }); if (shopAllBtn && allProductsModal) { shopAllBtn.addEventListener('click', function(e) { e.stopPropagation(); closeAllModals(); allProductsModal.classList.add('is-active'); var container = shopAllBtn.closest('.fv-stl-container'); if (container && container.offsetHeight < 450) { container.style.minHeight = '450px'; } if ('parentIFrame' in window) { window.parentIFrame.size(); } }); } if (allProductsModal) { var closeAllBtn = allProductsModal.querySelector('.fv-stl-all-products-close'); if (closeAllBtn) { closeAllBtn.addEventListener('click', function(e) { e.stopPropagation(); closeAllModals(); }); } } chartWrapper.addEventListener('click', function(e) { if (!e.target.closest('.fv-stl-all-products-content')) { closeAllModals(); } }); if (allProductsModal) { allProductsModal.addEventListener('click', function(e) { if (!e.target.closest('.fv-stl-all-products-content')) { closeAllModals(); } }); } /* 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 */ chartWrapper._fvAnimate = fvLocalAnimate; fvLocalAnimate(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 pad = function(n) { return (n < 10 ? '0' : '') + n; }; var updateCountdown = function() { var difference = +targetDate - +new Date(); var d = 0, h = 0, m = 0, s = 0; if (difference > 0) { d = Math.floor(difference / (1000 * 60 * 60 * 24)); h = Math.floor((difference / (1000 * 60 * 60)) % 24); m = Math.floor((difference / 1000 / 60) % 60); s = Math.floor((difference / 1000) % 60); } var daysEl = countdownContainer.querySelector('[data-time="days"]'); var hoursEl = countdownContainer.querySelector('[data-time="hours"]'); var minsEl = countdownContainer.querySelector('[data-time="minutes"]'); var secsEl = countdownContainer.querySelector('[data-time="seconds"]'); if (daysEl) daysEl.textContent = d; if (hoursEl) hoursEl.textContent = pad(h); if (minsEl) minsEl.textContent = pad(m); if (secsEl) secsEl.textContent = pad(s); }; updateCountdown(); setInterval(updateCountdown, 1000); } } } if (false) { var slideshowContainer = document.getElementById(uniqueId + '-slideshow'); if (slideshowContainer) { var slides = slideshowContainer.querySelectorAll('.fv-slide'); slides.forEach(function(slide) { setupWrapper(slide.querySelector('.fv-chart-wrapper')); }); } } else { setupWrapper(root); } } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function() { initialize('fv-chart-1793035057374-fd7hxxuae', false); }); } else { initialize('fv-chart-1793035057374-fd7hxxuae', false); } })(); Tangentially related to cameras, the iPhone Duo lacks Face ID (you do get Touch ID) or a facial recognition camera. It's a big oversight for such an expensive iPhone. Samsung provides face unlocking, which basically makes it easier to unlock and access password-protected systems on the Galaxy Z Fold 8.The software touchLet’s talk a little bit about software.Samsung’s been doing this a really long time, and it's clear that it's figured out the platform for a 2-in-1 device. The software never feels awkward. You get the full use of the space on both screens. On the iPhone Duo, it’s a little bit different because it can feel like Apple is still figuring things out in real time.The iPhone Duo runs iOS 27, but it’s really a tablet/phone hybrid. The dock always sits vertically on the right-hand side, whether on the inner or outer screen. It has split-screen multitasking, but it supports a maximum of two apps — never the same app. You could have sort of a third thing going on with picture-in-picture, but I'm not sure that counts.With the Samsung Galaxy Z Fold 8 and other Z Fold devices, you get three full apps: two side-by-side, and a floating screen on top. Still, it's only a 7.6-inch display, and I can't say how much use you’re gonna get out of that tiny third app. Things get a little crowded, but again, it just feels like Samsung has figured this out, and Apple is still working on it. (Image credit: Lance Ulanoff / Future)Let's talk performance: Apple’s iPhone Duo features the A20 Pro, and the Samsung Galaxy Z Fold 8 is powered by Qualcomm's Snapdragon 8 Elite Gen 5 for Galaxy. Both are excellent, efficient 2-nanometer mobile CPUs that help give you all-day battery life. The phones also have similarly sized batteries — in the 4800 mAh range.In our benchmark testing, performance was very close, though Apple has the edge here. Both can do video editing (Apple shoots up to 4K video; Samsung ramps up to 8K). They both can play console-grade games. They both can browse the web, do email, and multitask. Performance is excellent on both sides.With Apple finally jumping into the folding space, we are seeing developers play catch-up, and many apps still don’t look right on the inner screen, or even the main screen. Some do, and some are exceptional. Some developers have done really wild and silly things and built custom apps (Toastie, DeckMan, Tiny Computers), and we haven't seen that with Samsung. But Samsung’s been doing this so long that 99% of major app vendors seem to have figured out how to properly support their folding device on Android.There's no doubt that Apple will catch up in this area because it’s early days, and Apple’s now committed to the folding space. We will see an iPhone Duo 2 maybe in a year or two, and by then we won’t really be talking about app support, though we may still be talking about Apple’s decision to put the dock on the side. I’m hopeful that by iPhone Duo 2 or iOS 28, Apple will have decided to give people more customization options, including letting them put the dock on the bottom.(Image credit: Lance Ulanoff / Future)Finally, we get to price. The iPhone Duo starts at $1,999 / £1,999 / AU$3,499 for the 256-gigabyte model, and the Samsung Galaxy Z Fold 8 starts at $1,899 / £1,699 / AU$2,699 for the 256-gigabyte model. With the Z Fold 8, you can go up to 1 terabyte, and with the iPhone duo, you can go up to 2 terabytes, though you’re gonna pay over $3,000.These are expensive devices, and while I think people will use trade-ins, payment plans, or leases, none of them beats the others on affordability. When people ask about the overall value of these devices, I tell them that, as true 2-in-1 devices (phone and tablet), they're better values than you might think.So, overall, who’s the winner? No one. Everyone. The truth is, I’ve struggled to decide which foldable I truly like better. I love that the Samsung Galaxy Z Fold 8 is a really thin and light device, but the iPhone Duo's virtually creaseless inner screen is a game changer. It is a beautiful phone and tablet. Yes, the Duo is a little heavier, and I don’t love that, but I think Apple will improve that over time too. In the end, there is no winner. There is no loser. These are two excellent passport-style foldable devices. The iPhone Duo clearly appeals to iOS, Apple, and Apple ecosystem fans. They’ve been waiting for this. With the Samsung Galaxy Z Fold 8, Samsung introduced a new form factor that I think almost perfectly splits the difference between the bigger, taller Samsung Galaxy Z Fold 8 Ultra and the smaller Samsung Galaxy Z Flip 8. It's a content-consumption and productivity device that fits neatly in your pocket, and it does so more lightly than the iPhone Duo.What I encourage you to do is take a close look at the specs of both, decide which lane you live in, iOS or Android, and then make your choice. I honestly think you’ll be happy either way.