Pc Gamers

I spent a full week testing different VPNs and I’m changing my no-VPNs-while-gaming advice | ongames

I <a href=ongames.cc">spent a full week testing different VPNs and I'm changing my no-VPNs-while-gaming advice" style="max-width:100%;border-radius:12px;margin-bottom:25px">

I spent a full week testing different VPNs and I'm changing my no-VPNs-while-gaming advice

I’ve always been an advocate of keeping your personal data as private as you can to stave off the creeping hand of digital tyranny, but for gaming? Nah, no chance. I’m a (wannabe) competitive gamer and I need my latency as low as possible, and VPNs are a no-go. At least, that’s what I thought until I actually tried a bunch of them out for an extended period.

During my testing of the best VPNs for gaming, I was surprised to find that—at least with some of them, in my location—it wasn’t a case of making the best of a bad situation. In fact, in some cases my ping actually dropped lower than without a VPN on.

This is good news not just because it means you don’t have to keep toggling your VPN off and on, or keep adding an app to your ‘split tunnel’ in the VPN software each time you install a new game, but also because you get to keep all the benefits of a VPN while playing your games.

If you’re cautious about sketchy enemies or teammates potentially trying to don their 1337 hacker gloves and doxx you, for instance, keeping your VPN on can give you some more peace of mind. And if your ISP throttles gaming speeds, as some are known to do, a VPN should be able to hide what you’re doing so speeds are kept high.

It might be counterintuitive at first, but the fact that a VPN might not actually cause much of a problem for your ping and even improve it, in some cases, makes sense when you consider that really all that’s going on is your data is still just travelling to and from a given destination.

@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’); /* Reset & Base */ #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper *, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper *:before, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper *:after, #fv-chart-1777388404907-3j17eyssr-slideshow *, #fv-chart-1777388404907-3j17eyssr-slideshow *:before, #fv-chart-1777388404907-3j17eyssr-slideshow *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper, #fv-chart-1777388404907-3j17eyssr-slideshow { font-family: ‘Open Sans’, sans-serif !important; } /* Main Wrappers */ #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper { position: relative !important; overflow: visible !important; –riv-primary: #E33235; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-inner-wrapper { color: #1F2937 !important; background-color: #ededed !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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-inner-wrapper.fv-no-header.fv-is-image-compare { padding-top: 0 !important; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.fv-full-bleed { width: 100vw !important; margin-left: calc(50% – 50vw) !important; } body { overflow-x: clip !important; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow { position: relative !important; width: 100% !important; margin: 1rem 0 !important; –riv-primary: #E33235; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-slides-wrapper { position: relative !important; width: 100% !important; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-nav-btn svg { width: 18px !important; height: 18px !important; stroke-width: 3px !important; filter: none !important; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-nav-btn:hover { opacity: 0.9 !important; transform: translateY(-1px) !important; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-slideshow-select:focus { outline: 2px solid #E33235 !important; border-color: #E33235 !important; } /* Typography */ #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-versus-select-wrapper { flex: 1; min-width: 0; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-inside-left { white-space: nowrap; flex-shrink: 0; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-inside-right { white-space: nowrap; flex-shrink: 0; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-versus-val-text { font-family: ‘Poppins’, sans-serif; font-weight: 700; font-size: 14px; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-versus-pct-diff { font-size: 12px; font-weight: 600; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.fv-full-bleed .fv-image-compare-container { width: 100% !important; max-width: none !important; margin: 0 auto !important; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-image-compare-handle.fv-image-compare-handle-square { border-radius: 6px !important; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-image-compare-label-left { left: 1rem !important; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-image-compare-label-right { right: 1rem !important; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-image-compare-expand-btn, #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-image-compare-expand-btn:hover, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-image-compare-close-btn:hover { background-color: rgba(0, 0, 0, 0.7) !important; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-image-compare-close-btn { display: none !important; top: 1rem !important; bottom: auto !important; } /* Fullscreen State */ #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner:active { cursor: grabbing !important; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-expand-btn { display: none !important; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-close-btn { display: flex !important; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-label-right { right: 4rem !important; } /* Footer */ #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-dropdown-title:focus { outline: none !important; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-dropdown-title::-ms-expand { display: none !important; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } /* Multi-Value Legend */ #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; } /* Chart Core Styles */ #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-bar-row, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-segment-value { font-size: 14px !important; font-weight: bold !important; } /* Grouped Bar */ #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-bar-cluster .fv-bar-container { height: 20px !important; } /* Line Chart Grid */ #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } /* X-Axis */ #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-stl-wrapper { position: relative !important; width: auto !important; display: block !important; margin: 0 auto !important; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.fv-full-bleed .fv-stl-container { width: 100% !important; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.fv-full-bleed .fv-stl-wrapper { width: 100% !important; max-width: none !important; margin: 0 auto !important; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-stl-image { display: block !important; width: 100% !important; height: auto !important; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-stl-hotspot-container { position: absolute !important; z-index: 10 !important; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-stl-hotspot-btn:hover { transform: scale(1.1) !important; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-stl-hotspot-pulse { position: absolute !important; inset: 0 !important; border-radius: 9999px !important; background-color: #E33235 !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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-stl-hotspot-pulse { animation-fill-mode: none !important; } } /* Shop the look button */ #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-stl-shop-all-btn span { overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-stl-shop-all-btn:hover { background-color: #ffffff !important; transform: scale(1.05) !important; } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr { 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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view #fv-stl-all-products-modal-fv-chart-1777388404907-3j17eyssr { position: absolute !important; padding: 0 !important; align-items: flex-end !important; } #fv-stl-all-products-modal-fv-chart-1777388404907-3j17eyssr.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-1777388404907-3j17eyssr .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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view #fv-stl-all-products-modal-fv-chart-1777388404907-3j17eyssr .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-1777388404907-3j17eyssr.is-active .fv-stl-all-products-content { opacity: 1 !important; transform: scale(1) !important; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view #fv-stl-all-products-modal-fv-chart-1777388404907-3j17eyssr.is-active .fv-stl-all-products-content { transform: translateY(0) !important; } /* V2 Bottom Sheet Style */ #fv-stl-all-products-modal-fv-chart-1777388404907-3j17eyssr.v2 { align-items: flex-end !important; padding: 0 !important; } @media (min-width: 640px) { #fv-stl-all-products-modal-fv-chart-1777388404907-3j17eyssr.v2:not(.mobile-view *) { justify-content: flex-end !important; } } #fv-stl-all-products-modal-fv-chart-1777388404907-3j17eyssr.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-1777388404907-3j17eyssr.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-1777388404907-3j17eyssr.v2.is-active .fv-stl-all-products-content { transform: translateY(0) !important; opacity: 1 !important; } #fv-stl-all-products-modal-fv-chart-1777388404907-3j17eyssr .fv-stl-all-products-header { display: flex !important; align-items: center !important; justify-content: space-between !important; padding: 1rem 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.5) !important; backdrop-filter: blur(12px) !important; -webkit-backdrop-filter: blur(12px) !important; z-index: 10 !important; } #fv-stl-all-products-modal-fv-chart-1777388404907-3j17eyssr .fv-stl-all-products-title { font-size: 1.25rem !important; font-weight: 700 !important; color: #111827 !important; margin: 0 !important; } #fv-stl-all-products-modal-fv-chart-1777388404907-3j17eyssr .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-1777388404907-3j17eyssr .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-1777388404907-3j17eyssr .fv-stl-all-products-list { list-style: none !important; padding: 0.75rem !important; margin: 0 !important; overflow-y: auto !important; flex: 1 !important; display: flex !important; flex-direction: column !important; gap: 0.5rem !important; } #fv-stl-all-products-modal-fv-chart-1777388404907-3j17eyssr .fv-stl-all-products-item { margin: 0 !important; padding: 0.25rem !important; } #fv-stl-all-products-modal-fv-chart-1777388404907-3j17eyssr .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-stl-all-products-modal-fv-chart-1777388404907-3j17eyssr .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-1777388404907-3j17eyssr .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-1777388404907-3j17eyssr .fv-stl-all-products-image-container { position: relative !important; margin-right: 1.25rem !important; flex-shrink: 0 !important; } #fv-stl-all-products-modal-fv-chart-1777388404907-3j17eyssr .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-stl-all-products-modal-fv-chart-1777388404907-3j17eyssr .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-stl-all-products-modal-fv-chart-1777388404907-3j17eyssr .fv-stl-all-products-image { width: 100% !important; height: 100% !important; object-fit: cover !important; } #fv-stl-all-products-modal-fv-chart-1777388404907-3j17eyssr .fv-stl-all-products-placeholder { width: 2rem !important; height: 2rem !important; color: #d1d5db !important; } #fv-stl-all-products-modal-fv-chart-1777388404907-3j17eyssr .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-stl-all-products-modal-fv-chart-1777388404907-3j17eyssr .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-stl-all-products-modal-fv-chart-1777388404907-3j17eyssr .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-stl-all-products-modal-fv-chart-1777388404907-3j17eyssr .fv-stl-all-products-meta { display: flex !important; align-items: center !important; font-size: 0.875rem !important; margin-bottom: 0.375rem !important; } #fv-stl-all-products-modal-fv-chart-1777388404907-3j17eyssr .fv-stl-all-products-price { font-weight: 700 !important; color: #111827 !important; } #fv-stl-all-products-modal-fv-chart-1777388404907-3j17eyssr .fv-stl-all-products-sale-price { font-weight: 700 !important; color: #dc2626 !important; margin-right: 0.5rem !important; } #fv-stl-all-products-modal-fv-chart-1777388404907-3j17eyssr .fv-stl-all-products-original-price { color: #9ca3af !important; text-decoration: line-through !important; font-size: 0.75rem !important; } #fv-stl-all-products-modal-fv-chart-1777388404907-3j17eyssr .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-stl-all-products-modal-fv-chart-1777388404907-3j17eyssr .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-stl-all-products-modal-fv-chart-1777388404907-3j17eyssr .fv-stl-all-products-link:hover .fv-stl-all-products-action { background-color: #111827 !important; color: #ffffff !important; border-color: #111827 !important; } /* Mobile / Forced Mobile View / Labels on Top */ #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-pie-container, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.labels-on-top .fv-pie-container { flex-direction: column !important; gap: 1rem !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-grouped-product-title-wrapper, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.labels-on-top .fv-grouped-product-title-wrapper { padding-left: 0 !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-bar-row, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-stacked-product, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-grouped-bar-product, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-row, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.labels-on-top .fv-stacked-product, #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-bar-label:not(.fv-grouped-product-title), #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-bar-label, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-grouped-product-title, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-label, #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-bar-container, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-bar-cluster, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-container, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-cluster { width: 100% !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-x-axis-wrapper, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.labels-on-top .fv-x-axis-wrapper { margin-left: 0 !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-x-axis-label-space, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.labels-on-top .fv-x-axis-label-space { display: none !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-x-axis-chart-space, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.labels-on-top .fv-x-axis-chart-space { padding-right: 0 !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-benchmark-title, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.labels-on-top .fv-benchmark-title { font-size: 16px !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-dropdown-title, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.labels-on-top .fv-dropdown-title { font-size: 16px !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-carousel-nav-btn, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.labels-on-top .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-chart-title, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.labels-on-top .fv-chart-title { padding: 0 8px !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-chart-subhead, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.labels-on-top .fv-chart-subhead { padding: 0 8px !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-versus-header, #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select-wrapper, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select-wrapper.fv-left, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select-wrapper.fv-right, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select.fv-select-left, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select.fv-select-left { text-align: center !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select.fv-select-right, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select.fv-select-right { text-align: center !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-versus-vs, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select-container, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select-container { max-width: 100% !important; width: 100% !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper.mobile-view .fv-y-axis-title { padding-left: 5% !important; /* (30/600) for mobile view */ } #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-pie-container { flex-direction: column !important; gap: 1rem !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-grouped-product-title-wrapper { padding-left: 0 !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-bar-row, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-stacked-product, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; }#fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-bar-label, #fv-chart-1777388404907-3j17eyssr-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-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-bar-container, #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-bar-cluster { width: 100% !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-x-axis-wrapper { margin-left: 0 !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-x-axis-label-space { display: none !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-x-axis-chart-space { padding-right: 0 !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-benchmark-title { font-size: 16px !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-dropdown-title { font-size: 16px !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-chart-title { padding: 0 8px !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-chart-subhead { padding: 0 8px !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-versus-select.fv-select-left { text-align: center !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-versus-select.fv-select-right { text-align: center !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-versus-select-container { max-width: 100% !important; width: 100% !important; }#fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1777388404907-3j17eyssr-slideshow .fv-chart-wrapper .fv-y-axis-title { padding-left: 5% !important; /* (30/600) for mobile view */ } #fv-chart-1777388404907-3j17eyssr-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”: “VPN performance comparison”, “description”: “Subhead to describe the test and what’s being measured and why”, “creator”: { “@type”: “Organization”, “name”: “PC Gamer”, “logo”: “https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png” }, “isAccessibleForFree”: true, “dateCreated”: “2026-04-28T15:00:04.908Z”, “citation”: “Average ping in CS2 Deathmatch games in the same country (UK) and connected to the same game server, with data collected over multiple runs.”, “keywords”: [ “No VPN”, “NordVPN”, “Windscribe”, “Surfshark”, “Mullvad”, “Proton”, “ExpressVPN”, “Local ping (Counter-Strike 2)”, “benchmark”, “comparison”, “performance”, “review”, “PC Gamer” ], “measurementTechnique”: “Performance Benchmarking”, “variableMeasured”: [ { “@type”: “PropertyValue”, “name”: “ExpressVPN – Local ping (Counter-Strike 2)”, “value”: 12.22, “unitText”: “Ping (ms)” }, { “@type”: “PropertyValue”, “name”: “Mullvad – Local ping (Counter-Strike 2)”, “value”: 12.55, “unitText”: “Ping (ms)” }, { “@type”: “PropertyValue”, “name”: “No VPN – Local ping (Counter-Strike 2)”, “value”: 12.58, “unitText”: “Ping (ms)” }, { “@type”: “PropertyValue”, “name”: “NordVPN – Local ping (Counter-Strike 2)”, “value”: 12.73, “unitText”: “Ping (ms)” }, { “@type”: “PropertyValue”, “name”: “Proton – Local ping (Counter-Strike 2)”, “value”: 13.8, “unitText”: “Ping (ms)” }, { “@type”: “PropertyValue”, “name”: “Surfshark – Local ping (Counter-Strike 2)”, “value”: 13.54, “unitText”: “Ping (ms)” }, { “@type”: “PropertyValue”, “name”: “Windscribe – Local ping (Counter-Strike 2)”, “value”: 12.34, “unitText”: “Ping (ms)” } ]},{ “@context”: “https://schema.org”, “@type”: “Dataset”, “name”: “VPN performance comparison”, “description”: “Subhead to describe the test and what’s being measured and why”, “creator”: { “@type”: “Organization”, “name”: “PC Gamer”, “logo”: “https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png” }, “isAccessibleForFree”: true, “dateCreated”: “2026-04-28T15:00:04.908Z”, “citation”: “Average jitter as measured over multiple runs on speed.cloudflare.com”, “keywords”: [ “No VPN”, “NordVPN”, “Windscribe”, “Surfshark”, “Mullvad”, “Proton”, “ExpressVPN”, “Jitter (Cloudflare speed test)”, “benchmark”, “comparison”, “performance”, “review”, “PC Gamer” ], “measurementTechnique”: “Performance Benchmarking”, “variableMeasured”: [ { “@type”: “PropertyValue”, “name”: “ExpressVPN – Jitter (Cloudflare speed test)”, “value”: 12.07, “unitText”: “Jitter (ms)” }, { “@type”: “PropertyValue”, “name”: “Mullvad – Jitter (Cloudflare speed test)”, “value”: 12.4, “unitText”: “Jitter (ms)” }, { “@type”: “PropertyValue”, “name”: “No VPN – Jitter (Cloudflare speed test)”, “value”: 10.66, “unitText”: “Jitter (ms)” }, { “@type”: “PropertyValue”, “name”: “NordVPN – Jitter (Cloudflare speed test)”, “value”: 14.06, “unitText”: “Jitter (ms)” }, { “@type”: “PropertyValue”, “name”: “Proton – Jitter (Cloudflare speed test)”, “value”: 20.7, “unitText”: “Jitter (ms)” }, { “@type”: “PropertyValue”, “name”: “Surfshark – Jitter (Cloudflare speed test)”, “value”: 12.37, “unitText”: “Jitter (ms)” }, { “@type”: “PropertyValue”, “name”: “Windscribe – Jitter (Cloudflare speed test)”, “value”: 12.9, “unitText”: “Jitter (ms)” } ]},{ “@context”: “https://schema.org”, “@type”: “Dataset”, “name”: “VPN performance comparison”, “description”: “Subhead to describe the test and what’s being measured and why”, “creator”: { “@type”: “Organization”, “name”: “PC Gamer”, “logo”: “https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png” }, “isAccessibleForFree”: true, “dateCreated”: “2026-04-28T15:00:04.908Z”, “citation”: “Time taken (in seconds) to download the same 15.3 GB on Steam, connected to the same Steam download server.”, “keywords”: [ “No VPN”, “NordVPN”, “Windscribe”, “Surfshark”, “Mullvad”, “Proton”, “ExpressVPN”, “Download time (15.3 GB, Team Fortress 2 on Steam)”, “benchmark”, “comparison”, “performance”, “review”, “PC Gamer” ], “measurementTechnique”: “Performance Benchmarking”, “variableMeasured”: [ { “@type”: “PropertyValue”, “name”: “ExpressVPN – Download time (15.3 GB, Team Fortress 2 on Steam)”, “value”: 287, “unitText”: “Time (seconds)” }, { “@type”: “PropertyValue”, “name”: “Mullvad – Download time (15.3 GB, Team Fortress 2 on Steam)”, “value”: 276, “unitText”: “Time (seconds)” }, { “@type”: “PropertyValue”, “name”: “No VPN – Download time (15.3 GB, Team Fortress 2 on Steam)”, “value”: 271, “unitText”: “Time (seconds)” }, { “@type”: “PropertyValue”, “name”: “NordVPN – Download time (15.3 GB, Team Fortress 2 on Steam)”, “value”: 275, “unitText”: “Time (seconds)” }, { “@type”: “PropertyValue”, “name”: “Proton – Download time (15.3 GB, Team Fortress 2 on Steam)”, “value”: 275, “unitText”: “Time (seconds)” }, { “@type”: “PropertyValue”, “name”: “Surfshark – Download time (15.3 GB, Team Fortress 2 on Steam)”, “value”: 276, “unitText”: “Time (seconds)” }, { “@type”: “PropertyValue”, “name”: “Windscribe – Download time (15.3 GB, Team Fortress 2 on Steam)”, “value”: 276, “unitText”: “Time (seconds)” } ]},{ “@context”: “https://schema.org”, “@type”: “Dataset”, “name”: “VPN performance comparison”, “description”: “Subhead to describe the test and what’s being measured and why”, “creator”: { “@type”: “Organization”, “name”: “PC Gamer”, “logo”: “https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png” }, “isAccessibleForFree”: true, “dateCreated”: “2026-04-28T15:00:04.908Z”, “citation”: “Ping in CS2 Deathmatch games in a different country (USA) and connected to the same game server.”, “keywords”: [ “NordVPN”, “Windscribe”, “Surfshark”, “Mullvad”, “Proton”, “ExpressVPN”, “Distance ping (Counter-Strike 2)”, “benchmark”, “comparison”, “performance”, “review”, “PC Gamer” ], “measurementTechnique”: “Performance Benchmarking”, “variableMeasured”: [ { “@type”: “PropertyValue”, “name”: “ExpressVPN – Distance ping (Counter-Strike 2)”, “value”: 85.79, “unitText”: “Ping (ms)” }, { “@type”: “PropertyValue”, “name”: “Mullvad – Distance ping (Counter-Strike 2)”, “value”: 87.69, “unitText”: “Ping (ms)” }, { “@type”: “PropertyValue”, “name”: “NordVPN – Distance ping (Counter-Strike 2)”, “value”: 85.13, “unitText”: “Ping (ms)” }, { “@type”: “PropertyValue”, “name”: “Proton – Distance ping (Counter-Strike 2)”, “value”: 86.93, “unitText”: “Ping (ms)” }, { “@type”: “PropertyValue”, “name”: “Surfshark – Distance ping (Counter-Strike 2)”, “value”: 86.58, “unitText”: “Ping (ms)” }, { “@type”: “PropertyValue”, “name”: “Windscribe – Distance ping (Counter-Strike 2)”, “value”: 86.19, “unitText”: “Ping (ms)” } ]}]

1 / 4

VPN performance comparison

Local ping (Counter-Strike 2)

No VPN
12.58

NordVPN
12.73

Windscribe
12.34

Surfshark
13.54

Mullvad
12.55

Proton
13.8

ExpressVPN
12.22

03.757.511.2515
Ping (ms)

Local ping (Counter-Strike 2) Data
Product Value
No VPN 12.58
NordVPN 12.73
Windscribe 12.34
Surfshark 13.54
Mullvad 12.55
Proton 13.8
ExpressVPN 12.22

VPN performance comparison

Jitter (Cloudflare speed test)

No VPN
10.66

NordVPN
14.06

Windscribe
12.9

Surfshark
12.37

Mullvad
12.4

Proton
20.7

ExpressVPN
12.07

07.51522.530
Jitter (ms)

Jitter (Cloudflare speed test) Data
Product Value
No VPN 10.66
NordVPN 14.06
Windscribe 12.9
Surfshark 12.37
Mullvad 12.4
Proton 20.7
ExpressVPN 12.07

VPN performance comparison

Download time (15.3 GB, Team Fortress 2 on Steam)

No VPN
271

NordVPN
275

Windscribe
276

Surfshark
276

Mullvad
276

Proton
275

ExpressVPN
287

075150225300
Time (seconds)

Download time (15.3 GB, Team Fortress 2 on Steam) Data
Product Value
No VPN 271
NordVPN 275
Windscribe 276
Surfshark 276
Mullvad 276
Proton 275
ExpressVPN 287

VPN performance comparison

Distance ping (Counter-Strike 2)

NordVPN
85.13

Windscribe
86.19

Surfshark
86.58

Mullvad
87.69

Proton
86.93

ExpressVPN
85.79

0255075100
Ping (ms)

Distance ping (Counter-Strike 2) Data
Product Value
NordVPN 85.13
Windscribe 86.19
Surfshark 86.58
Mullvad 87.69
Proton 86.93
ExpressVPN 85.79

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; setTimeout(function() { bar.style.setProperty(‘transition’, ‘opacity 0.2s ease, width 0.8s ease-out’, ‘important’); bar.style.setProperty(‘width’, targetWidth + ‘%’, ‘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 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 = 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’); if (subheadEl) subheadEl.textContent = newSubhead || ”; if (captionEl) captionEl.textContent = newCaption || ”; if (footerContentEl) { if (newCaption && newCaption.trim().length > 0) { 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 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 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(); } }); } // Initial Animation window.fvAnimateCharts(chartWrapper); } 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 = 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-1777388404907-3j17eyssr’, true); }); } else { initialize(‘fv-chart-1777388404907-3j17eyssr’, true); } })();

It can either travel along a route and to a server that your internet service provider (ISP) dictates, or that the VPN dictates (or, as actually happens, a mix of the two). If a VPN server you’re connecting to is closer to a game server than your ISP’s server, or if the VPN route gets you there more directly, you might end up with better ping and lower latency.

For instance, as you can see in my benchmark results above, my ping actually dropped to 12.34 ms connected to Windscribe, my pick as the best VPN for low ping. Sure, the difference isn’t massive given my ping was already a relatively low 12.58 ms, but the fact it dropped at all over multiple benchmarks is impressive. I will say that ExpressVPN was even lower, but all things considered I’m picking Windscribe over that one, personally, based on the companies and how much I’d trust my data in their hands.

Those results are averages across multiple runs in-game, and actually if I look at the raw data, one run for Windscribe gave me an average ping of 12.27 ms, and one with ExpressVPN gave 12.16 ms. And even when pings were higher, they were usually only ever more slightly so. NordVPN, for instance, would be my own personal VPN of choice because, while it might give me a slightly higher ping than my native connection, the difference really is very slight and there are other benefits to the VPN (overall compatibility, number of servers, other features like adblocks, etc.).

Three screenshots from Windscribe VPN showing the split tunnelling feature.

(Image credit: Future)

If you want your VPN to work across the board, compatibility will be an important factor. With Windscribe and Surfshark, for instance, I couldn’t get Valorant up and running at all. I was either blocked from logging into the Riot app or from booting up the game, and I struggled to load Riot’s website, too.

That being said, if you have a problem using a VPN with a particular app or website, you can permit the latter to not go through your VPN without disconnecting everything else from it. This is called ‘split tunnelling’. In Windscribe, for instance, I can turn split tunnelling on and set it to ‘exclusive’, meaning everything goes through the VPN excluding the apps and sites I choose. After doing this, I added the Riot app and the Valorant executable(s) to the list—including ‘Valorant-Win64-Shipping’ which I had to find by inspecting the process in Task Manager.

That’s more of a workaround than actually getting an app or website working with the VPN, but it’s an option. Every VPN I tested allowed for split tunnelling, so if you don’t mind having some things route outside your VPN then any should be fine. But if you want everything on the VPN, that will eliminate some options which leaves NordVPN as the best overall.

The long and short of it, though, is that if you can manage to get everything on the VPN, it doesn’t have to be as much of a death sentence for your online gaming connection as I thought—far from it. If your ISP throttles gaming speeds, as some have been known to do, then it can help with that, but even if you have a pretty great connection for online gaming to begin with, I’ve found it can still help or at the very least not hinder anything.