tomshardware.co.uk

Website review tomshardware.co.uk

Tom's Hardware: For The Hardcore PC Enthusiast

 Generated on March 19 2026 07:26 AM

Old data? UPDATE !

The score is 56/100

SEO Content

Title

Tom's Hardware: For The Hardcore PC Enthusiast

Length : 46

Perfect, your title contains between 10 and 70 characters.

Description

Tom's Hardware helps you buy the best hardware and build the best PC to play, create and work..

Length : 95

Great, your meta description contains between 70 and 160 characters.

Keywords

Very bad. We haven't found meta keywords on your page. Use this free online meta tags generator to create keywords.

Og Meta Properties

Good, your page take advantage of Og Properties.

Property Content
site_name Tom's Hardware
type website
url https://www.tomshardware.com/uk

Headings

H1 H2 H3 H4 H5 H6
0 15 95 0 0 0
  • [H2] News Stream
  • [H2]
  • [H2] Reviews
  • [H2] Best Picks
  • [H2] CPUs
  • [H2] Graphics Cards
  • [H2] Meet The Team
  • [H2] Laptops
  • [H2] Features
  • [H2] PC Components
  • [H2] Desktops and PC Building
  • [H2] Deals
  • [H2] Coupons
  • [H2] Help Us Test Our AI Chatbot
  • [H2] More from Tom's Hardware
  • [H3] Monthly \u00a36 per month Subscribe Now Included: \u2713 Flexible 30-day rolling contract Best Deal Annual \u00a325 per year Subscribe Now Included: \u2713 Save 65% on annual plans console.log('salut v7'); let scrollPositionB = 0; const subscriptionModule = document.getElementById('subscription-module'); if (window.self !== window.top) { subscriptionModule.classList.add('active'); } if (subscriptionModule) { const subscriptionOverlay = subscriptionModule.querySelector('.subscription-overlay'); const subscriptionCloseBtn = subscriptionModule.querySelector('.subscription-close'); function closeSubscriptionModal() { subscriptionModule.classList.remove('active'); const savedScroll = scrollPositionB; const html = document.documentElement; html.classList.remove('body-no-scroll'); html.style.top = ''; requestAnimationFrame(() => { window.scrollTo(0, savedScroll); }); } if (subscriptionOverlay) { subscriptionOverlay.addEventListener('click', closeSubscriptionModal); } if (subscriptionCloseBtn) { subscriptionCloseBtn.addEventListener('click', closeSubscriptionModal); } } const emailButtons = Array.from(document.getElementsByClassName('openEmailModalBtn')); emailButtons.forEach(btn => { btn.addEventListener('click', () => { if (subscriptionModule) closeSubscriptionModal(); const itemId = btn.getAttribute('data-item-id'); if (window.FUTR?.Kiosq?.ChargebeeCheckout) { window.FUTR.Kiosq.ChargebeeCheckout.open(itemId); } }); }); (function(){ console.debug(\"Tomshardware v3 offers multicurrency 1\"); document.getElementById(\"subscribe-now-redirection\").addEventListener('click', () => { scrollPositionB = window.pageYOffset; const subscriptionModule = document.getElementById('subscription-module'); if (subscriptionModule) { subscriptionModule.classList.add('active'); const html = document.documentElement; html.classList.add('body-no-scroll'); html.style.top = `-${scrollPositionB}px`; } }); window.FUTR.Kiosq.Gates.show('kiosq-subscription-gate_58cca5a8', { container: '#subscription-module', position: 'replace' }); })(); ","main_layer_premium_enabled":true,"main_layer_premium":" .frame-27, .frame-27 * { box-sizing: border-box; } .content-frame-27{ float: left; margin-top: 20px; width: 100%; border-radius: 1rem; \/* coins arrondis *\/ box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2); \/* ombre port\u00e9e *\/ padding: 2rem; z-index: 10; animation: floatIn 0.3s ease-out; background: white; border: 0px; --pay-secondary-color: #6b7280; } .kiosq-gradient-frame-27 { height: 100px; position: relative; background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 85%); } .frame-27 { background: #ffffff; border-style: solid; border-color: #db3330; border-width: 4px 0px 4px 0px; padding: 20px; display: flex; flex-direction: column; gap: 20px; align-items: center; justify-content: flex-start; flex-shrink: 0; width: 100%; position: relative; } .you-ve-reached-your-free-article-access-limit-this-month { color: #1b1b1b; text-align: center; font: 300 20px \"PalatinoLinotype-Regular\", sans-serif; position: relative; } .frame-10 { background: #f5f5f5; display: flex; flex-direction: row; gap: 20px; align-items: flex-start; justify-content: center; flex-shrink: 0; width: 100%; position: relative; } .frame-9 { background: #f5f5f5; border-style: solid; border-color: rgba(0, 0, 0, 0); border-width: 1px; display: flex; flex-direction: column; gap: 5px; align-items: center; justify-content: flex-start; align-self: stretch; flex-shrink: 0; width: 100%; position: relative; } .frame-4 { background: #f5f5f5; border-style: solid; border-color: transparent; border-width: 1px; display: flex; flex-direction: column; gap: 0px; align-items: center; justify-content: flex-start; align-self: stretch; flex-shrink: 0; position: relative; } .frame-3 { padding: 30px; display: flex; flex-direction: column; gap: 15px; align-items: center; justify-content: flex-start; flex-shrink: 0; width: 100%; position: relative; } .frame-7 { display: flex; flex-direction: column; gap: 10px; align-items: center; justify-content: flex-start; align-self: stretch; flex-shrink: 0; position: relative; color: var(--pay-secondary-color); & ul { margin: 1em; padding:0; display: flex; flex-direction: column; align-items: center; font-family: sans-serif; list-style-type: disc; } } .subscribe-to-the-week-to-continue-reading { color: #1b1b1b; text-align: center; font: 300 26px \"PalatinoLinotype-Regular\", sans-serif; position: relative; align-self: stretch; } .get-unlimited-website-access-exclusive-newsletters-plus-much-more-with-a-subscription-to-the-week-for-less-than-3-per-week { color: #1b1b1b; text-align: center; font: 300 18px\/21px \"Arial-Regular\", sans-serif; position: relative; align-self: stretch; } .frame-17 { display: flex; flex-direction: column; gap: 5px; align-items: flex-start; justify-content: flex-start; flex-shrink: 0; position: relative; color: #ffffff; text-align: left; font: 700 14px \"Arial-Bold\", sans-serif; text-transform: uppercase; } .frame-12 { background: #db3330; color: #fff; padding: 12px 32px; display: flex; flex-direction: row; gap: 12px; align-items: center; justify-content: center; width: fit-content; min-width: 210px; position: relative; cursor: pointer; border: none; border-radius: 8px; font-size: 1rem; font-weight: 600; text-align: center; text-decoration: none; transition: background 0.25s ease, box-shadow 0.25s ease, transform 0.15s ease; box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15); } .frame-12:hover { background: #b82b28; box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2); transform: translateY(-2px); } html[data-locale=\"US\"] .flexi-page.progressive .frame-27 .frame-12 { background: #005ba5; } .cancel-or-pause-at-anytime { color: #1b1b1b; text-align: center; font: 400 12px\/18px \"Arial-Regular\", sans-serif; position: relative; align-self: stretch; } .frame-32 { padding: 10px 0px 10px 0px; display: flex; flex-direction: column; gap: 20px; align-items: center; justify-content: flex-start; flex-shrink: 0; width: 100%; position: relative; } .already-subscribe-to-the-week { color: #1b1b1b; text-align: center; font: 400 24px \"PalatinoLinotype-Regular\", sans-serif; position: relative; align-self: stretch; } .think-this-paywall-popped-up-by-mistake-let-s-get-it-sorted-contact-us { color: #1b1b1b; text-align: center; font: 400 16px\/24px \"-\", sans-serif; position: relative; align-self: stretch; } .think-this-paywall-popped-up-by-mistake-let-s-get-it-sorted-contact-us-span { color: #1b1b1b; font: 400 16px\/24px \"Arial-Regular\", sans-serif; } .think-this-paywall-popped-up-by-mistake-let-s-get-it-sorted-contact-us-span2 { color: #1b1b1b; font: 700 16px\/24px \"Arial-Bold\", sans-serif; text-decoration: underline; } .already-have-an-account-sign-in{ color: #1b1b1b; font: 700 16px \/ 24px \"Arial-Bold\", sans-serif; text-decoration: underline; } .already-have-an-account-sign-in:hover{ cursor: pointer; } .no-deco-link{ text-decoration: none; } Unlock this article with a Tom\u2019s Hardware Premium subscription Annual plan just \u00a325 (less than \u00a32.50 a month) Access deeper news analysis World-class hardware roadmaps Navigate granular performance data using Bench Or choose our 30-day plan for \u00a36 Subscribe Now Already a subscriber to Tom's hardware? Sign in \/* Hidden by default *\/ #subscription-module { display: none; position: fixed; inset: 0; z-index: 1000; justify-content: center; align-items: center; } html { scroll-behavior: auto !important; } \/* When active *\/ #subscription-module.active { display: flex; button { border: 1px solid; } } .subscription-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.45); } .subscription-modal { position: relative; z-index: 103; width: 100%; max-width: 700px; padding: 0; margin: 20px; line-height: 1.5em; background: #fff; border-radius: 12px; box-shadow: 0 4px 30px rgba(0,0,0,0.2); font-family: \"Open Sans\", sans-serif; animation: fadeIn 0.25s ease; height: auto; flex-shrink: 1; display: flex; flex-direction: column; } @keyframes fadeIn { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } .subscription-header { text-align: right; padding-top: 15px; padding-right: 25px; } .subscription-close { background: black; border:1px solid black; font-size: 20px; cursor: pointer; color: white; border-radius: 22px; width: 43px; height: 43px; line-height: 43px; position: absolute; top: -20px; text-align: center; vertical-align: middle; } \/* Centered site title *\/ .subscription-site-title { text-align: center; font-size: 36px; font-weight: 400; font-family: \"Open Sans\", sans-serif; color: #111; margin: 12px 0 25px; } .subscription-reccurence{ font-family: \"Open Sans\", sans-serif; } .pricing-options { display: flex; justify-content: flex-start; gap: 20px; background: Whitesmoke; padding: 20px; padding-bottom: 50px; } .pricing-card { width: 50%; border: 1px solid; border-color: hsl(from var(--flexi-brand_color_2, black) h s calc(l + 30)); border-radius: 10px; padding: 30px 20px; text-align: center; background: #fff; transition: transform 0.2s ease, box-shadow 0.2s ease; } .pricing-card .badge { display: block; border: 2px solid; padding: 10px 15px; margin-left: 2.5em; float: right; line-height: 1em; margin-top: -3em; border-color: var(--flexi-brand_color_2); border-radius: 6px; background-color: hsl(from var(--flexi-brand_color_2, #ffffff) h s calc(l + 30)); box-shadow: 0px 1px 25px #00000030; color: #000; font-size: 14px; font-weight: 600; } .pricing-card:hover { transform: translateY(-5px); box-shadow: 0 6px 25px rgba(0,0,0,0.05); } .subscription-included { margin-bottom: 20px; } .pricing-card h3 { display: block; text-align: center; font-size: 20px; color: #111; } .price { font-size: 26px; font-weight: bold; color: #111; } .recurrence { color: #555; margin-bottom: 20px; } .cta-button { display: inline-block; background: white; color: black; font-size: 16px; font-weight: 600; line-height: 1.2em; padding: 12px 0; border-radius: 6px; text-decoration: none; transition: background 0.2s ease; border: solid black 1px; width: 100%; font-family: \"Open Sans\", sans-serif; cursor: pointer; } .cta-button-best { background: black; color: #fff; background-color: #000; } .subscription-included { text-align: left; margin-top: 20px; font-weight: 300; } .features { & ul { list-style-type: none; } padding: 0; margin-top: 10px; text-align: left; color: #333; font-size: 15px; } .subscription-modal::-webkit-scrollbar { width: 8px; } .subscription-modal::-webkit-scrollbar-thumb { border-radius: 999px; background: rgba(0,0,0,0.12); } @media (max-width: 768px) { #subscription-module{ padding-top:20px; align-items: baseline; } .subscription-modal{ height: calc(100% - 40px); } .pricing-options { flex-direction: column; align-items: baseline; overflow-y: scroll; } .pricing-card { width:auto; } .subscription-site-title { font-size: 30px; margin-bottom: 30px; } .subscription-close { right: -3%; } } body { color:black; } \u2715 Choose your plan Monthly \u00a36 per month Subscribe Now Included: \u2713 Flexible 30-day rolling contract Best Deal Annual \u00a325 per year Subscribe Now Included: \u2713 Save 65% on annual plans console.log('salut v7'); let scrollPositionB = 0; const subscriptionModule = document.getElementById('subscription-module'); if (window.self !== window.top) { subscriptionModule.classList.add('active'); } if (subscriptionModule) { const subscriptionOverlay = subscriptionModule.querySelector('.subscription-overlay'); const subscriptionCloseBtn = subscriptionModule.querySelector('.subscription-close'); function closeSubscriptionModal() { subscriptionModule.classList.remove('active'); const savedScroll = scrollPositionB; const html = document.documentElement; html.classList.remove('body-no-scroll'); html.style.top = ''; requestAnimationFrame(() => { window.scrollTo(0, savedScroll); }); } if (subscriptionOverlay) { subscriptionOverlay.addEventListener('click', closeSubscriptionModal); } if (subscriptionCloseBtn) { subscriptionCloseBtn.addEventListener('click', closeSubscriptionModal); } } const emailButtons = Array.from(document.getElementsByClassName('openEmailModalBtn')); emailButtons.forEach(btn => { btn.addEventListener('click', () => { if (subscriptionModule) closeSubscriptionModal(); const itemId = btn.getAttribute('data-item-id'); if (window.FUTR?.Kiosq?.ChargebeeCheckout) { window.FUTR.Kiosq.ChargebeeCheckout.open(itemId); } }); }); (function(){ console.debug(\"Tomshardware v3 offers multicurrency 1\"); document.getElementById(\"subscribe-now-redirection\").addEventListener('click', () => { scrollPositionB = window.pageYOffset; const subscriptionModule = document.getElementById('subscription-module'); if (subscriptionModule) { subscriptionModule.classList.add('active'); const html = document.documentElement; html.classList.add('body-no-scroll'); html.style.top = `-${scrollPositionB}px`; } }); window.FUTR.Kiosq.Gates.show('kiosq-subscription-gate_58cca5a8', { container: '#subscription-module', position: 'replace' }); })(); "}}; /** * Simple hasBarrier Promise for Ad Targeting * Waits for Kiosq library to finalize hasBarrier after v2/campaigns */ // Create promises for v2 data and hasBarrier resolution window.FUTR.Kiosq.promiseKiosqDataV2 = new Promise((resolve) => { window.FUTR.Kiosq.resolveKiosqDataV2 = resolve; }); window.FUTR.Kiosq.promiseHasBarrier = new Promise((resolve) => { window.FUTR.Kiosq.resolveHasBarrier = resolve; }); // Resolve hasBarrier after Kiosq v2 and campaigns complete const resolveHasBarrierFinal = () => { // Use hasBarrier calculated by Kiosq library, or false if not set // We DON'T use displayBarrier as fallback because in metered paywall: // - displayBarrier = true (page has paywall configured) // - hasBarrier = false (user still has free articles) const finalHasBarrier = window.FUTR.Kiosq?.hasBarrier ?? false; window.FUTR.Kiosq.resolveHasBarrier(finalHasBarrier); console.log( '%cKIOSQ', 'color: #ffffff; background-color: #7F00FF; padding: 2px 6px;', 'hasBarrier resolved:', finalHasBarrier, 'from:', window.FUTR.Kiosq?.hasBarrier !== undefined ? 'kiosq-library' : 'default (false)' ); }; // Wait for v2, then allow minimal time for campaign overrides (50ms optimized for speed) if (window.FUTR.Kiosq.promiseKiosqDataV2) { window.FUTR.Kiosq.promiseKiosqDataV2 .then(() => setTimeout(resolveHasBarrierFinal, 50)) .catch(() => setTimeout(resolveHasBarrierFinal, 50)); } else { setTimeout(resolveHasBarrierFinal, 0); } window.FUTR.Kiosq.isHubPage = false; window.FUTR.Kiosq.kiosqEndpoint = "https:\/\/kiosq.vanilla.tools"; window.FUTR = window.FUTR || {}; window.FUTR.Kiosq = window.FUTR.Kiosq || {}; window.FUTR.Kiosq.isPremium = false; window.FUTR.Kiosq.displayBarrier = false; window.FUTR.Kiosq.disableServices = []; @layer legacy {#kiosqAssistant { font-family: Helvetica, Arial, sans-serif; font-size: 12px; height: auto; max-height: 400px; min-width: 250px; background: rgba(250, 249, 247, 0.18); border-radius: 16px; box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); backdrop-filter: blur(16.4px); border: 1px solid rgba(0, 0, 0, 0.25); position: fixed; right: 10px; bottom: 10px; z-index: 10000; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); text-align: center; & > * { margin:0; padding:0; } & > div.content { overflow-y: scroll; overflow-x: clip; height: 300px; & header { display:flex; flex-direction: column; font-size: 1rem; background-color: #00000010; padding: 0.4em 0; margin: 0; } } & > header { padding: 2px; flex-grow: 1; display: flex; justify-content: center; align-items: center; margin: 0; font-size: 1.5rem; font-weight: 600; & h4{ display:flex; flex-direction: column; padding: 10px 5px; font-size: large; & span { font-size: small; } } & a { color: var(--flexi-brand_color_2); text-decoration: underline; } } & .btn svg { width: 20px; height: 20px; } .table-item { & .btn svg { width: 15px; height: 15px; } } } #kiosqAssistant.collapsed { max-height: 60px; width: auto; min-width: 200px; & > div.content { display: none; } & .campaign { display: none; } & header { flex-grow: 1; & > div > a { display: none; } } } .campaign { display: flex; flex-direction: column; justify-content: center; align-items: center; transition: all 0.3s ease; opacity: 1; & header { margin:0; padding: 0.4em 1em; font-weight: normal; } } .custom-template, .campaigns, .campaign { /* font-size: 15px; font-weight: 600; width: 100%; text-align: center; margin: 0; padding: 0.2em 0.5em; */ & header { background-color: #f2f3f4; } } .table-item { width: 100%; border: 1px solid rgba(250, 249, 247, 0.4); border-bottom: 1px solid #00000020; display: flex; flex-direction: column; & .btn svg { width: 18px; height: 18px; } & thead { & tr { display:flex; & th { display: flex; padding: 5px 0 10px 2px; font-size:1.2em; flex-grow: 1; font-weight: 600; } } } & tbody { display: flex; flex-direction: column; & tr{ display:inline-flex; flex-grow: 1; width: 100%; &:nth-child(odd){ background-color: #f8f8f8; } /* &:nth-child(odd){ background-color: #FFF; } */ } & td { padding: 4px; &:first-child{ flex-grow: 1; width: 25em; } &:last-child{ flex-grow: 0; width:4em; font-weight: 700; text-align: center; display: flex; justify-content: center; align-items: center; } } } } ul.table-item{ list-style: none; padding: 0; margin: 0; width: 100%; min-height: 2em; background-color:transparent; & li { padding: 0 5px; display:flex; width:100%; height: 2em; & span, & a { align-content: center; } & div { flex-grow: 1; align-content: center; } & a { text-decoration: none; color: var(--flexi-brand_color_2); &:hover { background-color: var(--flexi-brand_color_2); color:white; } } } } .table-item.empty { & td,& tbody td:last-child { display: block; text-align:center; width: 100%; } } .table-item.templates { & tbody { display:table; & tr { display:table-row; border-bottom: 1px solid #00000030; & td, th { text-align: center; display: table-cell; &:first-child{ width: auto; } /* &:nth-child(2) { } */ &[rowspan] { vertical-align: middle; font-weight: 600; width: 5em; } } } } } .table-header-col{ padding: 5px 0; } .table-header-col { padding: 0 3px; font-weight: bold; } .table-header-title-link{ border-bottom: 1px solid var(--flexi-brand_color_2); line-height: 25px; } .table-header-title-link:hover{ text-decoration: none; color: var(--flexi-brand_color_2); } ::-webkit-scrollbar { -webkit-appearance: none; width: 7px; } ::-webkit-scrollbar-thumb { border-radius: 4px; background-color: rgba(0, 0, 0, 0.5); box-shadow: 0 0 1px rgba(255, 255, 255, 0.5); } .result-custom-template, .result-campaign{ min-height: 60px; } .table-compare-col{ padding: 15px; border: 1px solid #333; text-align: center; } .table-config-compare .table-header-col{ text-align: center; border: 1px solid #999; padding: 5px; } /* SmartTooltip styles moved to SmartTooltip.css */ /* Button styles for all anchor tags with btn class */ .btn, .btn:visited { display: inline-flex; align-items: center; justify-content: center; color: var(--flexi-brand_color_2, #333); text-decoration: none !important; border-radius: 4px; font-size: 12px; font-weight: 500; transition: all 0.2s ease-in-out; cursor: pointer; border: 1px solid transparent; min-height: 24px; & svg { fill: currentColor; } } .btn:hover, .btn:visited:hover { transform: translateY(-1px); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); text-decoration: none !important; background-color: var(--flexi-brand_color_2, #333); color: white; & svg { fill: white; } } .btn:active { transform: translateY(0); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); } /* Adjust spacing for icon-only buttons */ .btn:has(svg):not(:has(text)) { padding: 8px; min-width: 32px; } /* Table header title link buttons */ .table-header-title-link.btn { background-color: transparent; color: var(--flexi-brand_color_2, #007bff) !important; border: 1px solid var(--flexi-brand_color_2, #007bff); padding: 4px 8px; } .table-header-title-link.btn:hover { background-color: var(--flexi-brand_color_2, #007bff); color: #fff !important; } /* Config compare link buttons */ .config-compare-link { cursor: pointer; font-weight: normal; &:hover { font-weight: 600; } } .config-compare-link.btn { background-color: #28a745; font-size: 11px; padding: 4px 8px; } .config-compare-link.btn:hover { background-color: #218838; } .table-config-compare { & tbody > tr { border-bottom:1px solid #fff; } & tr { &:nth-child(odd) { background-color: #dfdfdf; } & td, th { &:first-child { vertical-align: middle; } overflow-wrap: anywhere; max-width: 40em; padding: 3px; vertical-align: baseline; } } & textarea{ height: 80px; width: 100%; padding: 5px; } } /* Smart Tooltip Styles */ .tooltip-container { position: relative; display: inline-block; } .smart-tooltip { position: absolute; background-color: var(--flexi-brand_color_2, #333); color: #fff; padding: 6px 8px; border-radius: 4px; font-size: 12px; z-index: 11000; pointer-events: none; box-shadow: 0 2px 8px rgba(0,0,0,0.2); max-width: 25em; opacity: 0; transition: opacity 0.2s ease-in-out; word-wrap: break-word; white-space: normal; line-height: 1.4; text-wrap: auto; } .smart-tooltip.visible { display: block; opacity: 1; } .smart-tooltip.hidden { display: none; opacity: 0; } .tooltip-arrow { position: absolute; width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent; } .tooltip-arrow.top { border-top: 4px solid var(--flexi-brand_color_2, #333); bottom: -4px; } .tooltip-arrow.bottom { border-bottom: 4px solid var(--flexi-brand_color_2, #333); top: -4px; } /* Prevent tooltip interference with modals */ .paywall-settings-overlay .tooltip-container, #kiosq-modal-portal .tooltip-container { pointer-events: auto; } .paywall-settings-overlay .smart-tooltip, #kiosq-modal-portal .smart-tooltip { z-index: 10011; /* Higher than modal content */ } .loader { border: 16px solid #f3f3f3; /* Light grey */ border-top: 16px solid var(--flexi-brand_color_2); /* Site brand color */ border-radius: 50%; width: 120px; height: 120px; animation: spin 2s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .loader-content { display: flex; justify-content: center; align-items: center; } .loader-content.show-kiosq-loader { display: flex !important; margin: auto; width: max-content; } .loader-content.hide-kiosq-loader { display: none; } .overlay { background-color: #fff; opacity: 0.5; } .wrapper-template{ position:relative; } .override-loader-position { position: absolute; top: 0; bottom: 0; right: 0; left: 0; z-index: 10; } .responsive .override-loader-position{ height: auto; } .loader-content-debug{ height: auto; background: transparent; } .loader-debug{ width: 60px; height: 60px; } @media (min-width: 1024px){ .progressive .kiosq-main-layer+.override-loader-position { float: left; width: calc(100% - 320px); margin-bottom: 20px; margin-top: -120px; } } #kiosq-modal-portal{ position: fixed; top: 75px; right: 12px; z-index: 10000; font-size: 12px; box-shadow: 0px 0px 10px #000000; border-radius: 15px; background-color: white; max-width: 50%; } #kiosq-modal-container{ padding: 0 15px 15px 15px; } /* .modal-button-close,.modal-title{ display: inline-block; } */ /* .modal-wrapper{ width: auto; border-radius: 15px; padding: 15px; } */ .modal-header{ display: flex; flex-direction: row; font-size: 1.1rem; font-weight: 600; height: 2.5em; align-items: center; } .modal-title{ align-content: center; margin: auto; } .modal-content { overflow-y: scroll; max-height: 40em; } .button-header-debug-wrapper-close{ background: none; border: none; cursor: pointer; width: 2rem; height: 2rem; color: #333; background-color: lightgray; border-radius: 10%; } .button-header-debug-wrapper-close svg{ margin: auto; } /* Paywall Height Input Styles */ .paywall-height-input { & ul { display: flex; flex-direction: column; gap: 10px; list-style: none; padding: 0; margin: 0; & li { display: flex; align-items: center; gap: 10px; & label { min-width: 100px; font-weight: 500; } & input[type="range"] { display: block; flex: 1; } & .indicator { width: 40px; padding: 2px 4px; border: 1px solid #ccc; border-radius: 3px; background-color: #f5f5f5; color: #666; font-size: 1.2em; text-align: center; } } } } /* Paywall Settings Modal Styles */ .paywall-settings-overlay { position: fixed; top: 50px; /* Position below the paywall button (button at top: 10px + height ~40px) */ right: 10px; /* Align with the paywall button */ width: auto; height: auto; background-color: transparent; z-index: 10010; transition: all 0.3s ease-in-out; /* Smooth transitions */ } .paywall-settings-modal { background-color: #fff; border-radius: 8px; padding: 0.5em; min-width: 400px; max-width: 500px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3); position: relative; transform-origin: top right; /* Scale from top right corner */ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); /* Smooth easing */ opacity: 1; transform: scale(1); & p { font-size: small; margin-bottom: 0.5em; & svg { display: inline-block; width: 20px; height: 20px; } } /* Animation states */ &.entering { opacity: 0; transform: scale(0.8); } &.entered { opacity: 1; transform: scale(1); } &.exiting { opacity: 0; transform: scale(0.8); } & .paywall-settings-header { display: flex; justify-content: space-between; align-items: center; margin:0; margin-bottom: 15px; border-bottom: 1px solid #eee; transition: all 0.3s ease; & h3 { margin: 0; transition: all 0.3s ease; } } & .paywall-settings-content { margin-bottom: 20px; transition: all 0.3s ease; font-size: small; & h5 { margin-bottom: 10px; transition: all 0.3s ease; } } & .paywall-settings-actions { text-align: center; transition: all 0.3s ease; } } /* Responsive adjustments */ @media (max-width: 768px) { .paywall-settings-overlay { bottom: 5px; right: 5px; } .paywall-settings-modal { min-width: 300px; max-width: 350px; padding: 15px; } } /* Ensure modal stays above debug wrapper */ .campaign-debug-wrapper.collapsed ~ .paywall-settings-overlay, .campaign-debug-wrapper ~ .paywall-settings-overlay { z-index: 10011; /* Higher than debug wrapper */ } /* SmartTooltip styles moved to SmartTooltip.css */ /* Button styles for all anchor tags with btn class */ .btn, .btn:visited { display: inline-flex; align-items: center; justify-content: center; color: var(--flexi-brand_color_2, #333); text-decoration: none !important; border-radius: 4px; font-size: 12px; font-weight: 500; transition: all 0.2s ease-in-out; cursor: pointer; border: 1px solid transparent; min-height: 24px; } .btn.alone { background-color: hsl(from var(--flexi-brand_color_2) h s calc(l + 30)); } .btn:hover, .btn:visited:hover { transform: translateY(-1px); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); text-decoration: none !important; background-color: var(--flexi-brand_color_2, #333); color: white; } .btn:active { transform: translateY(0); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); } /* Special styling for buttons with SVG icons */ .btn svg { width: 16px; height: 16px; fill: currentColor; } /* Adjust spacing for icon-only buttons */ .btn:has(svg):not(:has(text)) { padding: 8px; min-width: 32px; } #kiosq-app-paywall-js { width: 100%; } .hasBarrier ._cm-video { display: none; } .hasBarrier .paywall-locker { height: var(--desktop-content-limit); overflow-y: clip; overflow-x: visible; display: flow-root; } .hasBarrier .paywall-locker + .paywall-locker { clear: none; } /* target when paywall-locker doesn't have height:auto */ .hasBarrier .paywall-locker:not([style*="height: auto"]) { user-select: none; } @media (max-width: 991px) { .responsive.hasBarrier .paywall-locker { height: var(--mobile-content-limit); } } @media (max-width: 1024px) { .progressive.hasBarrier .paywall-locker { height: var(--mobile-content-limit); } } #kiosq { z-index: 10; position: relative; top: -100px; width: 100%; } .kiosq-main-layer .kiosq-gradient { height: 100px; position: relative; background: linear-gradient( 180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 85% ); } .kiosq-main-layer.kiosq-sticky-layer .kiosq-gradient { height: 50px; background: linear-gradient( 180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 110% ); } .hasBarrier{ --desktop-content-limit:96px; --mobile-content-limit:96px; } .wrapper-main-template{ height: 550px; margin-top: -150px; } .paywall-locker .wrapper-main-template.is-visible{ margin-top: -120px; } .is-not-visible{ visibility: hidden; height: inherit; margin-top: inherit; } .kiosq-main-layer { /* max-height: 550px; overflow: scroll; */ border-bottom: 1px solid #333; margin-bottom: 20px; position: relative; } .disable-scrollbars::-webkit-scrollbar { background: transparent; width: 0px; } .disable-scrollbars { scrollbar-width: none; -ms-overflow-style: none; } .kiosq-main-layer.kiosq-sticky-layer { position: fixed; margin-top: 0; border-bottom: none; bottom: 0; z-index: 1000; margin-bottom: 0px; height: inherit; } .responsive .kiosq-main-layer.kiosq-sticky-layer { width: 602px; } @media (min-width: 991px) { .responsive.no-sidebar .kiosq-main-layer.kiosq-sticky-layer { width: 922px; } } @media (min-width: 991px) { .progressive .kiosq-main-layer.kiosq-sticky-layer { width: 940px; } } @media (min-width: 1024px) { .progressive .kiosq-main-layer { float: left; width: calc(100% - 320px); } } @media (min-width: 1281px) { .progressive .kiosq-main-layer.kiosq-sticky-layer { width: 1070px; } .progressive .kiosq-main-layer.kiosq-sticky-layer { margin-left: -50px; } } .kiosq-main-layer .kiosq-main-layer-container { margin-bottom: 30px; padding: 20px; background-color:#ededed; } .kiosq-main-layer.kiosq-sticky-layer .kiosq-main-layer-container { border-top: 1px solid #333; padding-top: 10px; margin-bottom: 0px; } .kiosq-main-layer .kiosq-logo.rowLeft { margin-bottom: 20px; display: flex; justify-content: flex-start; } .kiosq-main-layer .kiosq-logo.rowCenter { margin-bottom: 20px; display: flex; justify-content: center; order: 2; } .kiosq-main-layer .kiosq-logo.rowRight { margin-bottom: 20px; display: flex; justify-content: flex-end; order: 2; } .element_at_the_same_line_space_around { display: flex; justify-content: space-around; } .element_at_the_same_line_space_between { display: flex; justify-content: space-between; } .kiosq-main-layer .kiosq-logo img { width: 140px !important; } .kiosq-main-layer.kiosq-sticky-layer .kiosq-sticky-logo.rowLeft { margin: 0px; display: flex; justify-content: flex-start; } .kiosq-main-layer.kiosq-sticky-layer .kiosq-sticky-logo.rowCenter { margin: 0px; display: flex; justify-content: center; } .kiosq-main-layer.kiosq-sticky-layer .kiosq-sticky-logo.rowRight { margin: 0px; display: flex; justify-content: flex-end; } .kiosq-main-layer.kiosq-sticky-layer .kiosq-sticky-logo img { width: 70px; /*float: right;*/ } .kiosq-main-layer .kiosq-title { font-size: 30px; font-weight: bold; line-height: 38px; margin-bottom: 20px; } .kiosq-main-layer.kiosq-sticky-layer .kiosq-title { font-size: 18px; line-height: 24px; margin-bottom: 10px; } .kiosq-main-layer .kiosq-subtitle { font-size: 16px; font-weight: bold; line-height: 24px; margin-bottom: 10px; } .kiosq-main-layer.kiosq-sticky-layer .kiosq-subtitle { font-size: 14px; line-height: 22px; } .kiosq-main-layer .kiosq-description { font-size: 14px; line-height: 22px; margin-bottom: 25px; } #main_layer_regwall .kiosq-description { margin-bottom: 0px; } .kiosq-main-layer.kiosq-sticky-layer .kiosq-description { margin-bottom: 10px; } .kiosq-main-layer .kiosq-description .custom_h4 { font-size: 100%; font-weight: bold; } .kiosq-main-layer .kiosq-description .custom_h3 { font-size: 16px; font-weight: bold; line-height: 24px; margin-bottom: 10px; } .kiosq-main-layer .kiosq-description .custom_h2 { font-size: 18px; font-weight: bold; line-height: 24px; margin-bottom: 10px; } .kiosq-main-layer .kiosq-description .custom_h1 { margin-top: 0px; font-weight: bold; font-size: 28px; line-height: 34px; } .kiosq-main-layer .kiosq-description p { margin-bottom: 1em; } #main_layer_regwall .kiosq-description p { margin-bottom: 0px; } .kiosq-main-layer .kiosq-login-button > div { width: 100%; } .kiosq-main-layer .kiosq-login-button.rowLeft { font-size: 13px; margin-bottom: 25px; display: flex; flex-direction: column; align-items: flex-start; } .kiosq-main-layer .kiosq-login-button.rowCenter { font-size: 13px; margin-bottom: 25px; display: flex; flex-direction: column; align-items: center; order: 2; } .kiosq-main-layer .kiosq-login-button.rowRight { font-size: 13px; margin-bottom: 25px; display: flex; flex-direction: column; align-items: flex-end; order: 2; } .kiosq-main-layer.kiosq-sticky-layer .kiosq-login-button { margin-bottom: 0; font-size: 13px; } .kiosq-main-layer .kiosq-login-button button { height: 44px; width: 360px; text-align: center; color: #fff; margin-bottom: 10px; border: none; font-weight: 700; text-transform: uppercase; cursor: pointer; background-color:var(--flexi-brand_color_2); } .kiosq-main-layer.kiosq-sticky-layer .kiosq-login-button button { height: 34px; width: 310px; margin-right: 10px; } .kiosq-main-layer .kiosq-login-button a { color: #000000; text-decoration: underline; } .kiosq-main-layer .kiosq-conditions { font-size: 14px; line-height: 22px; } .kiosq-main-layer ul.kiosq-conditions, .kiosq-main-layer .kiosq-conditions ul { list-style-type: disc; list-style-position: outside; margin-bottom: 25px; margin-left: 20px; } .kiosq-main-layer ul.kiosq-conditions li, .kiosq-main-layer .kiosq-conditions ul li { font-size: 14px; line-height: 20px; } /* Menu header layer */ .kiosq-main-layer.kiosq-header-menu-layer { display: none; position: absolute; background-color: #333; width: 100%; left: 0; z-index: 1; top: 60px; color: #fff; margin-top: 0; } .kiosq-main-layer.kiosq-header-menu-layer a { color: #fff; } .kiosq-main-layer.kiosq-header-menu-layer .kiosq-main-layer-container { background: #333; display: flex; flex-wrap: wrap; margin: 20px; padding: 0px; } #kiosq-dropdown-checkbox { display: none; } .kiosq-dropdown-checkbox-img { font-size: medium; line-height: normal; } #kiosq-dropdown-checkbox:checked + .kiosq-main-layer.kiosq-header-menu-layer { display: block; } .kiosq-main-layer.kiosq-header-menu-layer .kiosq-title { width: 67%; } .kiosq-main-layer.kiosq-header-menu-layer .kiosq-subtitle { width: 33%; text-align: center; margin-bottom: 15px; } .kiosq-main-layer.kiosq-header-menu-layer .kiosq-description { width: 67%; font-size: 16px; line-height: 24px; } .kiosq-main-layer.kiosq-header-menu-layer .kiosq-login-button { width: 33%; text-align: center; line-height: 30px; margin: 0; font-size: 13px; } .kiosq-main-layer.kiosq-header-menu-layer .kiosq-login-button button { line-height: 24px; width: 90%; background-color: var(--flexi-brand_color_2); } .kiosq-main-layer.kiosq-button-layer { margin-top: 10px; border-bottom: none; margin-bottom: 0; } .kiosq-main-layer.kiosq-button-layer .kiosq-main-layer-container { padding: 0px; background-color: inherit; } .kiosq-main-layer.kiosq-button-layer .kiosq-login-button { margin-bottom: 0; } .kiosq-main-layer .kiosq-login-button button , .kiosq-main-layer.kiosq-sticky-layer .kiosq-login-button button { background-color: var(--flexi-brand_color_2); } .kiosq-main-layer.kiosq-button-layer .kiosq-login-button a { display: inherit; } /* Menu header drop down button */ .kiosq-dropdown { float: right; height: 60px; display: flex; flex-direction: column; justify-content: center; } .kiosq-dropdown label { line-height: 0; margin: 0; cursor: pointer; } .kiosq-dropdown label img { width: 67px; display: inline-block; } .kiosq-dropdown label svg { width: 7px; height: auto; fill: #333; margin-bottom: 9px; display: inline-block; } .hasBarrier #in-article, .hasBarrier #desktop-in-article, .hasBarrier #mobile-in-article, .hasBarrier .in-article { display: none; } @media screen and (max-width: 990px) { .responsive .kiosq-main-layer.kiosq-sticky-layer, .progressive .kiosq-main-layer.kiosq-sticky-layer { width: calc(100% - 40px); left: 20px; } } @media screen and (max-width: 699px) { #kiosq-app-paywall-js .kiosq-main-layer{ float:left } .kiosq-main-layer.kiosq-header-menu-layer .kiosq-main-layer-container { display: flex; flex-direction: column; margin: 15px 20px; } .kiosq-main-layer .kiosq-logo.rowLeft { margin-bottom: 10px; display: flex; justify-content: flex-start; } .kiosq-main-layer .kiosq-logo.rowCenter { margin-bottom: 10px; display: flex; justify-content: center; } .kiosq-main-layer .kiosq-logo.rowRight { margin-bottom: 10px; display: flex; justify-content: flex-end; } .kiosq-main-layer .kiosq-logo img { width: 120px !important; } .kiosq-dropdown label { position: absolute; top: 0; right: 95px; line-height: 60px; } .kiosq-main-layer.kiosq-sticky-layer { width: calc(100% - 20px); left: 10px; } .kiosq-main-layer.kiosq-header-menu-layer .kiosq-title { width: 100%; font-size: 22px; line-height: 30px; text-align: center; margin-bottom: 10px; order: 1; } .kiosq-main-layer.kiosq-header-menu-layer .kiosq-subtitle { width: 100%; font-size: 14px; line-height: 22px; text-align: center; order: 3; } .kiosq-main-layer.kiosq-header-menu-layer .kiosq-description { width: 100%; text-align: center; margin-bottom: 10px; order: 2; } .kiosq-main-layer.kiosq-header-menu-layer .kiosq-login-button { width: 100%; text-align: center; display: flex; flex-direction: column; order: 4; } .kiosq-main-layer.kiosq-header-menu-layer .kiosq-login-button button { width: 100%; } } @media screen and (max-width: 460px) { .kiosq-main-layer .kiosq-title { font-size: 22px; line-height: 30px; margin-bottom: 10px; } .kiosq-main-layer .kiosq-login-button { width: 100%; margin-bottom: 5px; } .kiosq-main-layer .kiosq-login-button button { width: 100%; margin-bottom: 0px; } .kiosq-main-layer .kiosq-login-button a { line-height: 33px; } .kiosq-main-layer .kiosq-description { margin-bottom: 10px; } .kiosq-main-layer ul.kiosq-conditions, .kiosq-main-layer .kiosq-conditions ul { margin-bottom: 20px; } .kiosq-main-layer.kiosq-sticky-layer .kiosq-main-layer-container { border-top: 1px solid #333; border-bottom: 1px solid #333; padding-top: 10px; padding-bottom: 110px; margin-left: -20px; margin-right: -20px; padding-left: 30px; padding-right: 30px; text-align: center; } .kiosq-main-layer.kiosq-sticky-layer .kiosq-sticky-logo { display: none; } .kiosq-main-layer.kiosq-sticky-layer .kiosq-login-button button { width: 100%; margin-right: 0px; margin-left: 0px; margin-right: 0px; } .kiosq-main-layer.kiosq-sticky-layer .kiosq-login-button a { color: #000000; text-decoration: underline; display: inherit; } .kiosq-main-layer.kiosq-sticky-layer .kiosq-subtitle { font-size: 12px; line-height: 18px; margin-bottom: 5px; } } /* MY account */ .kiosq-my-account-title { font-weight: 700; font-size: 26px; line-height: 44px; } .kiosq-my-account-col-content { display: flex; gap: 30px; } .kiosq-my-account { margin-top: 20px; } .kiosq-my-account .show { display: block; } .kiosq-my-account .hide { display: none; } .kiosq-my-account-user-infos-widget { display: flex; align-items: center; padding: 20px 10px; background-color: #ededed; gap: 5px; height: 60px; box-sizing: content-box; } .kiosq-my-account-left { min-width: 600px; } .kiosq-my-account-right { min-width: 300px; } .kiosq-my-account-user-infos { margin-left: 15px; } .kiosq-my-account-user-infos-img-content { width: 72px; height: 72px; border-radius: 50%; background-color: var(--flexi-brand_color_2); display: flex; justify-content: center; align-items: flex-end; } .kiosq-my-account-user-infos-img { fill: #ededed; margin-bottom: 5px; } .kiosq-my-account-user-name { font-weight: 700; font-size: 20px; line-height: 23px; margin-bottom: 10px; margin-top: 10px; } .kiosq-my-account-user-info-content { display: flex; align-items: center; } .kiosq-my-account-user-info-text-img-content { width: 24px; height: 24px; border-radius: 50%; background-color: var(--flexi-brand_color_2); display: flex; justify-content: center; align-items: center; } .kiosq-my-account-user-info-text-img { fill: #ededed; } .kiosq-my-account-user-info-text { font-weight: 400; font-size: 16px; line-height: 18px; margin-left: 10px; } .kiosq-my-account-title-widget { margin-top: calc(20px + 0.5rem); font-weight: 700; font-size: 24px; line-height: 30px; } .kiosq-my-account-subscription-widget { display: flex; align-items: flex-start; gap: 20px; border: 1px solid #cccccc; margin-top: 12px; margin-bottom: 20px; } .kiosq-my-account-subscription-widget-mobile { display: none; } .kiosq-my-account-subscription-img { box-sizing: border-box; min-width: 180px; height: 230px; background-size: cover; border-width: 1px 0px 1px 1px; border-style: solid; border-color: #cccccc; } .kiosq-my-account-subscription-datas-block { padding-top: 20px; padding-bottom: 10px; width: 100%; } .kiosq-my-account-subscription-datas { display: flex; } .kiosq-my-account-subscription-content { flex: 1; } .kiosq-my-account-bluebird-in-process-content { display: flex; width: 100%; height: 190px; justify-content: center; align-items: center; } .kiosq-my-account-bluebird-in-process { font-weight: 700; font-size: 16px; line-height: 20px; } .kiosq-my-account-subscription-title { font-weight: 700; font-size: 20px; line-height: 24px; margin-bottom: 15px; } .kiosq-my-account-subscription-data { font-weight: 400; font-size: 16px; line-height: 20px; margin-bottom: 5px; } .kiosq-my-account-subscription-data .kiosq-my-account-subscription-subtitle { font-weight: 700; } .kiosq-my-account-subscription-data .custom_h1 { display: none; } .kiosq-my-account-manage-button-block { display: flex; justify-content: center; } .kiosq-my-account-manage-button-anchor { text-decoration: none !important; } .kiosq-my-account-manage-button-content { display: flex; flex-direction: column; width: 188px; margin-top: 15px; } .kiosq-my-account-manage-button-content.no-subscriptions { width: 280px; } .kiosq-my-account-manage-button { display: flex; justify-content: center; align-items: center; padding: 2px 20px; width: 188px; height: 40px; background-color: var(--flexi-brand_color_2); border: 1px solid var(--flexi-brand_color_2); border-radius: 2px; } .kiosq-my-account-manage-button.no-subscriptions { width: 280px; } .kiosq-my-account-manage-button-text { font-weight: 700; font-size: 12px; line-height: 14px; text-transform: uppercase; color: #ffffff; } .kiosq-my-account-manage-button-sublink-content { font-weight: 400; font-size: 12px; line-height: 14px; text-align: center; color: #333333; margin-top: 5px; } .kiosq-my-account-manage-button-sublink { text-decoration-line: underline !important; color: #333333 !important; } #kiosq-link-account-input { height: 30px; padding-left: 4px; } #kiosq-link-account-button { display: flex; justify-content: center; align-items: center; padding: 2px 20px; width: 188px; height: 35px; background-color: var(--flexi-brand_color_2); border: 1px solid var(--flexi-brand_color_2); border-radius: 2px; margin-left: 20px; color: white; } #kiosq-link-account-button.processing:hover { filter: brightness(85%); cursor: wait !important; } .kiosq-my-account .input-mapping-error { border: 1px solid red; } .kiosq-my-account .input-mapping-success { border: 1px solid green; } .kiosq-my-account .message-div-error { color: red; font-size: 13px; } .kiosq-my-account .message-div-success { color: green; font-size: 13px; } #kiosq-link-account-button:hover { cursor: pointer; } .kiosq-link-account-div { display: flex; flex-direction: row; justify-content: start; margin: 10px 0; align-items: center; } .linking-account-description-text { margin-top: 15px; line-height: 20px; } .kiosq-my-account-subscription-status-content { position: relative; margin-right: 20px; margin-left: auto; display: flex; flex-direction: column; } @media screen and (min-width: 699px) { .kiosq-my-account-cancel-sub { position: absolute; bottom: 0; } .kiosq-main-layer .kiosq-logo { width: 250px; height: 30px; } } @media screen and (max-width: 699px) { .kiosq-my-account-cancel-sub { margin-top: 15px; } .kiosq-main-layer .kiosq-logo { height: 30px; } } .kiosq-my-account-cancel-sub { text-decoration: underline; } .kiosq-my-account-cancel-sub a, .kiosq-my-account-cancel-sub a:visited, .kiosq-my-account-cancel-sub a:hover { color: black !important; } .kiosq-my-account-subscription-status-flag-content { display: flex; justify-content: center; align-items: center; padding: 0px 10px; width: 77px; height: 20px; border-radius: 2px; margin-bottom: 6px; } .kiosq-my-account-subscription-status-flag-content.active { background-color: #0fa958; } .kiosq-my-account-subscription-status-flag-content.trial { background-color: #0f7ca9; } .kiosq-my-account-subscription-status-flag-content.future { background-color: #6c757d; } .kiosq-my-account-subscription-status-flag-content.non-renewing { background-color: #ff9800; } .kiosq-my-account-subscription-status-flag-content.paused { background-color: #9e9e9e; } .kiosq-my-account-subscription-status-flag-content.cancelled { background-color: #a90f0f; } .kiosq-my-account-subscription-status-flag-content.expired { background-color: #a90f0f; } .kiosq-my-account-subscription-status-flag-content.unknown { background-color: #cccccc; } .kiosq-my-account-subscription-status-flag-text { font-weight: 700; font-size: 14px; line-height: 20px; color: #ffffff; } .kiosq-my-account-subscription-status-title { font-weight: 700; font-size: 12px; line-height: 15px; margin-bottom: 3px; text-align: center; } .kiosq-my-account-subscription-status-data { font-size: 12px; line-height: 15px; margin-bottom: 3px; text-align: center; } .kiosq-my-account-stay-in-touch-widget { min-height: 400px; } .kiosq-my-account-stay-in-touch-title-content { display: flex; justify-content: flex-start; align-items: center; gap: 10px; width: 280px; height: 56px; background: #ffffff; border-width: 1px 0px; border-style: solid; border-color: #cccccc; padding: 0px 10px; } .kiosq-my-account-stay-in-touch-title-img-content { width: 38px; height: 38px; border-radius: 50%; background-color: var(--flexi-brand_color_2); display: flex; justify-content: center; align-items: center; } .kiosq-my-account-stay-in-touch-title-img { fill: #ededed; margin-right: 2px; } .kiosq-my-account-stay-in-touch-title { font-weight: 700; font-size: 18px; line-height: 21px; } .kiosq-my-account-stay-in-touch-subtitle { font-weight: 700; font-size: 14px; line-height: 21px; margin: 14px 0; } .kiosq-my-account-stay-in-touch-content { padding: 20px 15px; height: 102px; } .kiosq-my-account-stay-in-touch { font-weight: 400; font-size: 14px; line-height: 16px; margin-bottom: 15px; } .kiosq-my-account-stay-in-touch-link { /* text-decoration-line: underline; */ color: var(--flexi-brand_color_2); } .kiosq-my-account-stay-in-touch-social-content { display: flex; justify-content: flex-start; align-items: center; gap: 15px; } .kiosq-my-account-stay-in-touch-social-link { display: block; } .kiosq-my-account-proposal-widget { margin-top: 15px; display: block; } .kiosq-my-account-proposal-widget-mobile { margin-top: 15px; display: none; } .kiosq-my-account-proposal-slider { min-width: 600px; position: relative; min-height: 390px; overflow: hidden; } .kiosq-my-account-proposal-slide { width: 100%; position: absolute; transition: all 0.5s; gap: 30px; display: flex; } .kiosq-my-account-proposal-slide-mobile { width: 100%; position: absolute; transition: all 0.5s; gap: 30px; display: flex; } .kiosq-my-account-proposal-slide-widget { width: 180px; } .kiosq-my-account-proposal-slide-widget-img { width: 180px; height: 230px; background-size: cover; } .kiosq-my-account-proposal-slide-widget-title { font-weight: 700; font-size: 18px; line-height: 24px; margin-top: 10px; } .kiosq-my-account-proposal-slide-widget-infos-content { display: flex; justify-content: flex-start; margin-top: 11.5px; margin-bottom: 10px; } .kiosq-my-account-proposal-slide-widget-infos-img-content { display: flex; justify-content: center; align-items: center; width: 15px; height: 15px; border-radius: 50%; background-color: #0fa958; margin-right: 5px; } .kiosq-my-account-proposal-slide-widget-infos-img { fill: #ededed; } .kiosq-my-account-proposal-slide-widget-infos { font-weight: 400; font-size: 12px; line-height: 15px; } .kiosq-my-account-proposal-slide-widget-link { font-weight: 700; font-size: 14px; line-height: 16px; text-decoration-line: underline; color: var(--flexi-brand_color_2); } .kiosq-my-account-proposal-btn { position: absolute; width: 40px; height: 40px; padding: 10px; border: none; border-radius: 50%; z-index: 10px; cursor: pointer; background-color: #fff; font-size: 18px; } .kiosq-my-account-proposal-btn:active { transform: scale(1.1); } .kiosq-my-account-proposal-slide-btn-prev { top: 45%; left: 2%; } .kiosq-my-account-proposal-slide-btn-next { top: 45%; right: 2%; } .kiosq-my-account-proposal-slide-btn-prev-mobile { top: 45%; left: 2%; } .kiosq-my-account-proposal-slide-btn-next-mobile { top: 45%; right: 2%; } .kiosq-my-account-no-subscriptions-text { margin-top: 20px; margin-bottom: 5px; font-weight: 400; font-size: 20px; line-height: 25px; } .kiosq-my-account-current-site-header { margin-top: 20px; font-weight: 700; font-size: 20px; display: block; } .kiosq-my-account-current-site-header-mobile { display: none; } .kiosq-my-account-subscription-history-button-content { display: flex; height: 100%; align-items: flex-end; } .kiosq-my-account-subscription-history-button { display: flex; justify-content: center; background-color: #cccccc; align-items: center; padding: 0px 10px; width: 77px; height: 20px; border-radius: 2px; } .kiosq-my-account-subscription-history-button:hover { cursor: pointer; } .kiosq-my-account-subscription-history-button-mobile { display: flex; justify-content: center; background-color: #cccccc; align-items: center; padding: 0px 10px; width: 77px; height: 20px; border-radius: 2px; margin-top: 10px; } .kiosq-my-account-subscription-history-button-mobile:hover { cursor: pointer; } .kiosq-my-account-subscription-history-button-text { font-weight: 700; font-size: 14px; line-height: 20px; margin-right: 5px; } .kiosq-my-account-subscription-history-icon-content { display: flex; align-items: center; } .kiosq-my-account-subscription-history-content { max-height: 0; transition: max-height 0.25s ease-out; overflow: hidden; } .kiosq-my-account-subscription-history-content-mobile { max-height: 0; transition: max-height 0.25s ease-out; overflow: hidden; } .kiosq-my-account-subscription-history-button-icon-down { display: block; } .kiosq-my-account-subscription-history-button-icon-up { display: none; } .kiosq-complete-setup-title { font-weight: 700; margin: 15px 0px; } .kiosq-complete-setup-p { margin: 15px 0px; } .kiosq-complete-setup-button { display: flex; justify-content: center; align-items: center; height: 44px; width: 360px; background-color: var(--flexi-brand_color_2); margin: 30px auto; } .kiosq-complete-setup-button-text { font-weight: 700; color: #fff; } .kiosq-complete-setup-button:hover { cursor: pointer; } .kiosq-restricted-access-title { font-weight: 700; margin: 15px 0px; } .kiosq-restricted-access-p { margin: 15px 0px; } .kiosq-restricted-access-button { display: flex; justify-content: center; align-items: center; height: 44px; width: 360px; background-color: var(--flexi-brand_color_2); margin: 30px auto; } .kiosq-restricted-access-button-text { font-weight: 700; color: #fff; } .kiosq-restricted-access-button:hover { cursor: pointer; } @media screen and (max-width: 699px) { .flexi-page.responsive .widget-area { padding: 0px !important; } .kiosq-my-account-left { min-width: 375px; } .kiosq-my-account-right { min-width: 375px; } .kiosq-my-account-col-content { flex-direction: column; } .kiosq-my-account-title { font-size: 22px; padding-left: 15px; } .kiosq-my-account-user-infos-widget { min-width: 355px; } .kiosq-my-account-user-infos-img-content { width: 50px; height: 50px; } .kiosq-my-account-user-infos-img { width: 50px; height: 50px; margin-bottom: 2px; } .kiosq-my-account-user-info-text { font-size: 14px; line-height: 16px; } .kiosq-my-account-title-widget { font-size: 20px; line-height: 20px; padding-left: 15px; } .kiosq-my-account-subscription-widget { display: none; } .kiosq-my-account-subscription-widget-mobile { display: block; padding: 15px; border-top: 1px solid #cccccc; margin-top: 12px; } .kiosq-my-account-no-subscriptions-widget .kiosq-my-account-subscription-widget-mobile { padding: 15px 0px 15px 0px; } .kiosq-my-account-subscription-title-content-mobile { display: flex; margin-bottom: 20px; } .kiosq-my-account-subscription-img-mobile { box-sizing: border-box; min-width: 117px; height: 150px; background-size: cover; border-width: 1px 0px 1px 1px; border-style: solid; border-color: #cccccc; } .kiosq-my-account-subscription-datas-block-mobile { margin-bottom: 10px; display: flex; align-items: flex-start; gap: 15px; } .kiosq-my-account-subscription-title-mobile { font-weight: 700; font-size: 18px; line-height: 21px; } .kiosq-my-account-subscription-content-mobile { flex: 1; } .kiosq-my-account-bluebird-in-process-content { height: 150px; } .kiosq-my-account-subscription-data-mobile { font-weight: 400; font-size: 14px; line-height: 20px; margin-bottom: 5px; } .kiosq-my-account-subscription-data-mobile .kiosq-my-account-subscription-subtitle-mobile { font-weight: 700; } .kiosq-my-account-subscription-data-mobile .custom_h1 { display: none; } .kiosq-my-account-manage-button-content-mobile { display: flex; flex-direction: column; margin-top: 20px; align-items: center; width: 100%; } .kiosq-my-account-manage-button-mobile { display: flex; justify-content: center; align-items: center; padding: 2px 20px; height: 40px; background-color: var(--flexi-brand_color_2); border: 1px solid var(--flexi-brand_color_2); border-radius: 2px; width: 100%; } .kiosq-my-account-manage-button-text-mobile { font-weight: 700; font-size: 12px; line-height: 14px; text-transform: uppercase; color: #ffffff; } .kiosq-my-account-manage-button-sublink-content-mobile { font-weight: 400; font-size: 12px; line-height: 14px; text-align: center; color: #333333; margin-top: 5px; } .kiosq-my-account-manage-button-sublink-mobile { text-decoration-line: underline !important; color: #333333 !important; } .kiosq-my-account-subscription-status-flag-content-mobile { display: flex; justify-content: center; align-items: center; padding: 0px 10px; width: 63px; height: 21px; border-radius: 2px; margin-right: 0px; margin-left: auto; } .kiosq-my-account-subscription-status-flag-content-mobile.active { background-color: #0fa958; } .kiosq-my-account-subscription-status-flag-content-mobile.trial { background-color: #0f7ca9; } .kiosq-my-account-subscription-status-flag-content-mobile.future { background-color: #6c757d; } .kiosq-my-account-subscription-status-flag-content-mobile.non-renewing { background-color: #ff9800; } .kiosq-my-account-subscription-status-flag-content-mobile.paused { background-color: #9e9e9e; } .kiosq-my-account-subscription-status-flag-content-mobile.cancelled { background-color: #a90f0f; } .kiosq-my-account-subscription-status-flag-content-mobile.expired { background-color: #a90f0f; } .kiosq-my-account-subscription-status-flag-content-mobile.unknown { background-color: #cccccc; } .kiosq-my-account-subscription-status-flag-text-mobile { font-weight: 700; font-size: 14px; line-height: 16px; color: #ffffff; } .kiosq-my-account-block-link-in-widget-mobile { display: block; font-weight: 700; font-size: 14px; line-height: 16px; text-decoration-line: underline; color: var(--flexi-brand_color_2); } .kiosq-my-account-block-link-img-mobile { margin-left: 7px; fill: var(--flexi-brand_color_2); width: 15px; height: 15px; } .kiosq-my-account-stay-in-touch-title-content { width: 355px; border-width: 0px 0px 1px 0px; } .kiosq-my-account-proposal-widget { display: none; } .kiosq-my-account-proposal-widget-mobile { display: block; padding-left: 15px; padding-right: 15px; } .kiosq-my-account-proposal-slider { min-width: 345px; min-height: 360px; } .kiosq-my-account-proposal-slide-widget { width: 155px; } .kiosq-my-account-proposal-slide-widget-img { width: 155px; height: 198.05px; } .kiosq-my-account-proposal-slide-widget-title { line-height: 22px; } .kiosq-my-account-no-subscriptions-widget { padding-left: 15px; padding-right: 15px; } .kiosq-my-account-no-subscriptions-text { font-size: 14px; } .kiosq-my-account-current-site-header { display: none; } .kiosq-my-account-current-site-header-mobile { margin-top: 20px; font-weight: 700; font-size: 14px; display: block; padding-left: 15px; } .kiosq-my-account-no-subscriptions-widget .kiosq-my-account-current-site-header-mobile { padding-left: 0px; } .kiosq-my-account-manage-button-content.no-subscriptions { width: 100%; } .kiosq-my-account-manage-button.no-subscriptions { width: 100%; } .kiosq-my-account-manage-button-anchor { width: 100%; } .paywall-locker:not(.paywall-locker:not(.paywall-locker ~ .paywall-locker)) { display: none; } } .dismiss-barrier { position: absolute; right: 27px; width: 25px; } /*# sourceMappingURL=bundle.paywall.css.map*//* =========================== CHARGEBEE CHECKOUT WRAPPER =========================== */ /* Overlay */ .chargebee-checkout-overlay { position: fixed; inset: 0; /* top:0; right:0; bottom:0; left:0 */ display: flex; justify-content: center; align-items: center; background: rgba(0, 0, 0, 0.6); backdrop-filter: blur(6px); z-index: 100000; opacity: 0; animation: chargebee-checkout-fadeIn 0.3s ease forwards; } @keyframes chargebee-checkout-fadeIn { to { opacity: 1; } } /* Modal Box */ .chargebee-checkout-box { height: 90%; max-height: 573px; display: flex; flex-direction: column; background: #fff; border-radius: 3px; max-width: 400px; width: 90%; position: relative; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); transform: scale(0.9) translateY(20px); animation: chargebee-checkout-slideIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) forwards; font-family: 'Open Sans', sans-serif; font-weight: normal; &.result { height: auto; } } @keyframes chargebee-checkout-slideIn { to { transform: scale(1) translateY(0); } } /* =========================== CHARGEBEE CHECKOUT EMAIL MODAL =========================== */ .chargebee-checkout-email-icon { max-width: 80%; animation: chargebee-checkout-bounce 0.6s ease; width: 60%; max-height: 70px; } @keyframes chargebee-checkout-bounce { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.1); } } .chargebee-checkout-email-title { font-size: 14px; color: darkred; background: white; text-align: center; color: var(--brand-color-1); font-family: 'Open Sans', sans-serif; font-weight: normal; } .chargebee-checkout-email-subtitle { color: #666; text-align: center; font-size: 15px; line-height: 1.5; } /* OTP Modal specific styles */ .chargebee-checkout-otp-subtitle { color: #666; text-align: center; margin-top: 12px; margin-bottom: 10px; font-size: 14px; line-height: 1.5; } .chargebee-checkout-otp-input { text-align: center; font-size: 24px; letter-spacing: 8px; font-weight: 600; } .chargebee-checkout-otp-resend { display: flex; justify-content: center; margin-bottom: 6px; } .chargebee-checkout-otp-resend-btn { background: none; border: none; color: var(--brand-color-1, #007bff); font-size: 14px; cursor: pointer; text-decoration: underline; padding: 0; } .chargebee-checkout-otp-resend-btn:hover { opacity: 0.8; } .chargebee-checkout-otp-resend-btn:disabled { opacity: 0.5; cursor: not-allowed; } .chargebee-checkout-otp-resend-timer { color: #999; font-size: 14px; } .chargebee-checkout-email-message.success { color: #28a745; } /* End OTP Modal specific styles */ .chargebee-checkout-email-input-wrapper { width: 100%; } .chargebee-checkout-email-input { width: 100%; padding: 16px 16px 16px 16px; border: 1px solid darkslategrey !important; border-radius: 2px; font-size: 16px; transition: all 0.3s ease; outline: none; font-family: inherit; background-repeat: no-repeat; background-position: 16px center; background-size: 20px 20px; height: 50px; } .chargebee-checkout-email-input::placeholder { color: #1B1B1B; font-size: 14px; } .chargebee-checkout-email-message { color: #e63946; font-size: 0.9rem; margin-top: 0.5rem; text-align: center; min-height: 1.2em; margin-bottom: 4px; } .chargebee-checkout-email-cta-button { width: 234px; height: 40px; line-height: 22px; padding: 0px; display: block; border: none; border-radius: 1px; cursor: pointer; transition: all 0.3s ease; background: var(--flexi-brand_color_1, white); font-family: inherit; font-size: 16px; font-weight: 700; letter-spacing: 0.5px; text-transform: capitalize; color: white; } .chargebee-checkout-email-cta-button:hover { transform: translateY(-2px); box-shadow: 2px 0px 5px #00000099; } .chargebee-checkout-email-cta-button:active { transform: translateY(0); } /* =========================== CHARGEBEE CHECKOUT LOGIN MODAL =========================== */ .chargebee-checkout-login-modal-content { display: flex; flex-direction: column; align-items: center; text-align: center; position: relative; padding: 25px 40px 20px 40px; align-items: center; } .chargebee-checkout-success-content { padding: 25px 40px 20px 40px; } .chargebee-checkout-login-title { font-size: 24px; font-weight: 700; margin-bottom: 8px; text-align: center; } .chargebee-checkout-login-subtitle { font-size: 15px; color: #666; text-align: center; margin-bottom: 16px; } .chargebee-checkout-login-payment-details { background-color: #f9fafb; border-radius: 8px; padding: 16px; margin-bottom: 24px; width: 100%; } .chargebee-checkout-login-payment-details div { margin-bottom: 4px; font-size: 14px; color: #333; } .chargebee-checkout-login-cta-button { width: 100%; line-height: 3em; border: none; border-radius: 1px; font-size: 16px; font-weight: 600; cursor: pointer; background: linear-gradient(135deg, var(--flexi-brand_color_1, #006edc), color-mix(in srgb, var(--flexi-brand_color_1, #006edc) 70%, white)); color: white; box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4); transition: all 0.3s ease; } .chargebee-checkout-login-notice { background-color: #eff6ff; border: 1px solid #bfdbfe; border-radius: 8px; padding: 16px; margin-bottom: 24px; display: flex; align-items: flex-start; gap: 12px; } .chargebee-checkout-login-info-icon { width: 20px; height: 20px; color: #3b82f6; margin-top: 2px; flex-shrink: 0; } .chargebee-checkout-login-notice-title { font-weight: 600; color: #1e40af; margin-bottom: 4px; font-size: 14px; text-align: left; } .chargebee-checkout-login-notice-text { color: #1d4ed8; font-size: 14px; line-height: 1.4; text-align: left; } .chargebee-checkout-login-success-icon { width: 64px; height: 64px; background-color: #dcfce7; border-radius: 50%; margin: 0 auto 16px; display: flex; align-items: center; justify-content: center; animation: post-purchase-login-v2-pulse 2s infinite; } .chargebee-checkout-login-success-icon svg { width: 32px; height: 32px; color: #16a34a; } .post-purchase-login-payment-details { background-color: #eff6ff; border-radius: 8px; padding: 16px; margin-bottom: 24px; } .chargebee-checkout-login-detail-row { display: flex; justify-content: space-between; margin-bottom: 12px; font-size: 14px; } .chargebee-checkout-login-detail-row:last-child { margin-bottom: 0; } .chargebee-checkout-login-detail-label { color: #6b7280; } .chargebee-checkout-login-detail-value { color: #111827; font-weight: 500; } .chargebee-checkout-login-cta-button:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(102, 126, 234, 0.5); } .chargebee-checkout-login-cta-button:active { transform: translateY(0); } .chargebee-checkout-close-btn { position: absolute; top: -12px; right: -12px; background: black; border: none; width: 24px; height: 24px; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; color: white; transition: all 0.3s ease; } /* =========================== CHARGEBEE CHECKOUT SUCCESS MODAL =========================== */ .chargebee-checkout-checkmark { color: white; font-size: 35px; font-weight: bold; } .chargebee-checkout-success-icon { display: flex; align-items: center; justify-content: center; margin-bottom: 24px; } .chargebee-checkout-checkmark { font-size: 48px; color: #667eea; } .chargebee-checkout-success-title { font-size: 24px; font-weight: 700; margin-bottom: 12px; text-align: center; } .chargebee-checkout-success-message { text-align: center; color: #666; margin-bottom: 24px; } .chargebee-checkout-success-button { width: 100%; padding: 8px; line-height: 2em; border-radius: 3px; font-weight: 600; font-size: 16px; border: none; background: linear-gradient(135deg, var(--flexi-brand_color_1, #006edc), color-mix(in srgb, var(--flexi-brand_color_1, #006edc) 70%, white)); color: white; cursor: pointer; transition: all 0.3s ease; } .chargebee-checkout-success-button:hover { transform: translateY(-2px); } .chargebee-checkout-feature-list { background: rgba(16, 185, 129, 0.1); border: 1px solid rgba(16, 185, 129, 0.2); border-radius: 16px; padding: 20px; margin: 25px 0; text-align: left; } .chargebee-checkout-feature-item { display: flex; align-items: center; margin-bottom: 12px; color: #374151; font-size: 14px; } .chargebee-checkout-feature-item:last-child { margin-bottom: 0; } .chargebee-checkout-feature-item::before { content: '\2713'; color: #10b981; font-weight: bold; margin-right: 12px; font-size: 16px; } .chargebee-checkout-feature-item-autologin { font-weight: 500; } /* =========================== MEDIA QUERIES =========================== */ @media (max-width: 480px) { .email-modal-title { font-size: 24px; } .post-purchase-success-title { font-size: 20px; } } .chargebee-checkout-email-header { min-height: 90px; display: flex; flex-direction: column; justify-content: space-around; align-items: center; padding: 10px 0; box-sizing: content-box; } .chargebee-checkout-email-content { background: #f4f5f9; padding: 20px 25px 40px 25px; flex-grow: 1; display: flex; flex-direction: column; gap: 20px; align-items: center; & footer { align-items: center; display: flex; flex-direction: column; } } .chargebee-checkout-privacy { margin-top: 20px; margin-bottom: 15px; line-height: 23px; font-size: 14px; & a { font-weight: 700; line-height: 23px; font-size: 14px; } } .chargebee-checkout-consents { font-size: 13px; display: flex; flex-direction: column; flex-grow: 1; } .chargebee-checkout-checkbox input[type="checkbox"] { margin-right: 10px; flex-shrink: 0; width: 24px; height: 24px; margin-top: 2px; cursor: pointer; } .chargebee-checkout-checkbox { display: flex; align-items: flex-start; margin-bottom: 10px; cursor: pointer; line-height: 1.4; align-items: center; } .chargebee-checkout-checkbox span { flex: 1; font-size: 14px; } .chargebee-checkout-error-modal-content { text-align: center; padding: 30px 20px; } .chargebee-checkout-error-icon { margin: 10px auto 20px; color: #ef4444; /* red-500 */ } .chargebee-checkout-error-title { font-size: 20px; font-weight: bold; margin-bottom: 10px; } .chargebee-checkout-error-message { font-size: 14px; margin-bottom: 25px; color: #555; } .chargebee-checkout-error-close-btn { background: #ef4444; color: white; border: none; padding: 12px; width: 100%; font-size: 15px; border-radius: 8px; cursor: pointer; line-height: 20px; width: 300px; } .chargebee-checkout-select-wrapper { margin-top: 12px; } .chargebee-checkout-select { width: 100%; height: 50px; padding: 0 12px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; background: #fff; } .chargebee-checkout-processing-modal-content { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 3rem 2rem; gap: 1rem; text-align: center; } /* Title */ .chargebee-checkout-processing-title { font-size: 1.25rem; font-weight: 600; color: #111827; /* gray-900 */ letter-spacing: -0.01em; margin: 0; } /* Icon */ .chargebee-checkout-processing-icon { display: inline-block; margin-right: 5px; width: 27px; height: 27px; color: #4F46E5; opacity: 0.9; } /* processing */ .chargebee-checkout-processing-loader { width: 48px; height: 48px; border: 4px solid rgba(0,0,0,.1); border-left-color: #4F46E5; border-radius: 50%; animation: spin 1s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } /* Message */ .chargebee-checkout-processing-message { margin: 0; font-size: .95rem; font-weight: 500; color: #4B5563; /* gray-600 */ animation: pulse 2s ease-in-out infinite; } @keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: .6; } } /* =========================== ACTIVE SUBSCRIPTION MODAL =========================== */ .chargebee-checkout-active-sub-content { display: flex; flex-direction: column; align-items: center; padding: 32px 24px 24px; gap: 16px; text-align: center; } .chargebee-checkout-active-sub-icon { width: 64px; height: 64px; background-color: #dbeafe; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .chargebee-checkout-active-sub-icon svg { width: 32px; height: 32px; color: #2563eb; } .chargebee-checkout-active-sub-title { font-size: 20px; font-weight: 700; color: #111827; margin: 0; } .chargebee-checkout-active-sub-description { font-size: 14px; color: #4b5563; line-height: 1.6; margin: 0; } .chargebee-checkout-active-sub-primary-cta { width: 100%; line-height: 3em; border: none; border-radius: 4px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: #fff; font-size: 16px; font-weight: 600; cursor: pointer; transition: transform 0.2s ease, box-shadow 0.2s ease; } .chargebee-checkout-active-sub-primary-cta:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(102, 126, 234, 0.5); } .chargebee-checkout-active-sub-secondary-cta { background: none; border: none; color: #6b7280; font-size: 13px; cursor: pointer; text-decoration: underline; padding: 0; } .chargebee-checkout-active-sub-secondary-cta:hover { color: #374151; } .chargebee-checkout-active-sub-continue { text-align: center; margin-top: 12px; } .chargebee-checkout-active-sub-continue a { font-weight: 700; font-size: 14px; line-height: 23px; color: #101f9e; cursor: pointer; text-decoration: none; } .chargebee-checkout-active-sub-continue a:hover { text-decoration: underline; } /*# sourceMappingURL=chargebee-checkout.css.map*/ /*# sourceMappingURL=chargebee-checkout.css.map*/}@layer legacy {.kiosq-my-account-stay-in-touch-social-content { display: none !important; }} @layer legacy { #auth-in-nav-header { font-size: 14px; font-weight: inherit; width:80px; } #auth-in-nav-header .auth-in-nav-header-menu ul { padding-left: 0px; } #auth-in-nav-header-sign-out svg{ fill: #fff; } @media (min-width: 700px) { #auth-in-nav-header { justify-content: flex-start !important; } } @media (max-width: 699px) { .burgerbar #auth-in-nav-header { position: absolute; right: 32px; justify-content: center !important; } .burgerbar .slice-container.locale-selector-slice { right: 82px; } .burgerbar #auth-in-nav-header #auth-in-nav-header-text { display: none; } } #auth-in-nav-header-menu{ color: #fff !important; } .kiosq-my-account-stay-in-touch-social-content { display: none !important;} } window.FUTR = window.FUTR || {}; window.FUTR.Connect = {"callbackUrl":"\/auth_callback","SIGN_OUT_TEXT":"Sign out","type":"addEvent","target":"auth-in-nav-header","auth0LockConfig":{"logo_url":"https:\/\/cdn.mos.cms.futurecdn.net\/flexiimages\/ctdtrpdenc1761054384.svgz","logo_email":"https:\/\/cdn.mos.cms.futurecdn.net\/flexiimages\/tn8m46b2lp1747218165.png","color_primary":"#d8383b","extra_css":".auth0-lock-header-welcome {margin-top: 15px; margin-bottom: -15px;} .auth0-lock.auth0-lock .auth0-lock-header-bg {background: #fff !important} .auth0-lock.auth0-lock .auth0-lock-header-logo {max-width:45%} @media (max-width: 1200px) {.auth0-lock.auth0-lock .auth0-lock-header-logo{max-width: 100%;}}","sign_up_newsletter_text":"Please sign me up to Tom's hardware newsletter","site_name":"Tom's hardware","contact_other_brand_text":"Contact me with news and offers from Tom's hardware and other Future brands","newsletter_code":"XTH-X","label":"tomshardware_en-gb"}}; window.FUTR.Connect.auth0LockConfig.allowedConnections = "google-oauth2,Username-Password-Authentication,Tomshardware-forum"; window.FUTR.Connect.callbackUrl = window.location.origin + window.FUTR.Connect.callbackUrl; window.FUTR.Connect.auth0AppClientId = "JRKr0EFukuD1sJvmCPwYGLYQNEyOlhDB"; window.FUTR.Connect.Auth = window.FUTR.Connect.Auth || {}; window.FUTR.Connect.Auth.parseJwt = window.FUTR.Connect.Auth.parseJwt || ((token)=>{ if (typeof token === 'undefined' || !token) { return; } var base64Url = token.split('.')[1] || ''; var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/'); var jsonPayload = decodeURIComponent(window.atob(base64).split('').map(function(c) { return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); }).join('')); return JSON.parse(jsonPayload); }); window.FUTR.Connect.Auth.getCookieByName = (name)=> { const value = `; ${document.cookie}`; const parts = value.split(`; ${name}=`); if (parts.length === 2) return parts.pop().split(';').shift(); } window.FUTR.Kiosq.User = window.FUTR.Connect.Auth.parseJwt(window.FUTR.Connect.Auth.getCookieByName("kiosq_user")); window.FUTR.Connect.isGranted = false; if(typeof window.FUTR.Kiosq.User !== 'undefined' && typeof window.FUTR.Kiosq.User.user_grant_status !== 'undefined' ){ const matchString = '^granted'; const regexp = new RegExp(matchString); if(regexp.test(window.FUTR.Kiosq.User.user_grant_status)){ window.FUTR.Connect.isGranted = true; } } window.addEventListener("DOMContentLoaded", (event) => { var connectBundle = document.createElement('script'); // window.FUTR.Connect.auth0AppClientId must be set before bundle.connect.js be added. connectBundle.src = "https://vanilla.futurecdn.net/tomshardware/1580304/media/shared/js/bundle.connect.js"; document.head.appendChild(connectBundle); }); window.FUTR = window.FUTR || {}; window.FUTR.Kiosq = window.FUTR.Kiosq || {}; window.FUTR.Kiosq.Campaign = window.FUTR.Kiosq.Campaign || {}; window.FUTR.Kiosq.Campaign.Context = window.FUTR.Kiosq.Campaign.Context || {}; window.FUTR.Kiosq.Campaign.Context = [{"name":"Device","script":"() => {\n const a = navigator.userAgent || navigator.vendor || window.opera;\n return \/(android|bb\\d+|meego).+mobile|avantgo|bada\\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino\/i.test(\n a\n ) ||\n \/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-\/i.test(\n a.substr(0, 4)\n )\n ? \"Mobile\"\n : \"Desktop\";\n};"},{"name":"LoginStatus","script":"() => {\n if( FUTR?.Kiosq?.User?.user_grant_status?.match(\/^granted\/)) return \"granted\";\n if( FUTR?.Kiosq?.User?.is_authenticated ) return \"connected\";\n \/\/if( typeof FUTR.Kiosq.User === 'undefined' ) return \"non-connected\";\n return \"non_connected\";\n};"},{"name":"FreeRemainingArticle","script":"() => {\n if (localStorage.getItem(\"kiosq_article_url_ack\") !== null) {\n const articleSeenUrls = localStorage.getItem(\"kiosq_article_url_ack\");\n const decodedArticleSeenUrls = JSON.parse(window.atob(articleSeenUrls));\n const limitFreeArticles = window.FUTR.Kiosq?.defaultSiteConfig?.limitOfFreeArticle || 0;\n const numberOfFreeArticleRemaining = limitFreeArticles-decodedArticleSeenUrls.length;\n return numberOfFreeArticleRemaining >= 0 ? numberOfFreeArticleRemaining : 0;\n }\n\n return 0;\n }"},{"name":"NumberOfPagesVisited","script":"() => {\n const localHistory = JSON.parse(atob(localStorage.getItem('connect_articles_history') || localStorage.getItem('kiosq_article_url_ack') || btoa('[]')));\n return localHistory.length;\n }"},{"name":"ArticleControlTags","script":"() => {return window.ffte?.properties?.articleControlTag || []}"},{"name":"ArticleTagHandle","script":"() => {return window.ffte?.properties?.articleTagHandle || []}"},{"name":"BlueConicSegments","script":"() => {return typeof(blueConicClient) !== \"undefined\" && blueConicClient?.getSegments() ? blueConicClient?.getSegments() : [];}"},{"name":"Referrer","script":"() => {return document.referrer;}"},{"name":"ArticleTemplate","script":"() => {return window.ffte?.properties?.articleTemplate || \"\"}"},{"name":"ArticleType","script":"() => {return window.ffte?.properties?.articleType || \"\"}"},{"name":"ArticleId","script":"() => {return window.ffte?.properties?.id || \"\"}"},{"name":"UserGrantStatus","script":"() => {return window.FUTR?.Kiosq?.User?.user_grant_status || \"\"}"},{"name":"TimeOfTheDay","script":"() => new Date().getHours() < 12 ? \"AM\" : \"PM\";"},{"name":"ArticleCategory","script":"() => {return window.ffte?.properties?.articleCategoryHandle || []}"},{"name":"IsRegwallBarrier","script":"() => {return window?.FUTR?.Kiosq?.wallType === \"regwallAuthentication\" || (typeof(window?.FUTR?.Kiosq?.User) === \"undefined\" && window?.FUTR?.Kiosq?.wallType === \"regwallAuthPaywall\")}"},{"name":"GetLocaleSite","script":"() => {return window.ffte?.locale || \"\"}"},{"name":"UserCountryCodeReal","script":"() => {\n const value = `; ${window.document.cookie}`;\n const parts = value.split(`; FTR_Country_Code=`);\n if (parts.length === 2) return parts.pop().split(\";\").shift();\n};"},{"name":"TestCampaign","script":"() => {\n const urlParams = new URLSearchParams(window.location.search);\n const campaignToTest = urlParams.get('_flexi_test_campaign');\n return campaignToTest || '';\n}"},{"name":"ForceBarrierWithArticlesSeens(notForQueryBuilder)","script":"() => {\n const urlParams = new URLSearchParams(window.location.search);\n const nbArticlesSeensExpected = parseInt(urlParams.get('_flexi_force_barrier_seen'), 10); \/\/ Conversion en entier\n \n if(nbArticlesSeensExpected){\n \n let decodedArticleSeenUrls = [];\n \n \/\/ V\u00e9rification que nbArticlesSeensExpected est un nombre valide\n if (!isNaN(nbArticlesSeensExpected) && nbArticlesSeensExpected > 0) {\n for (let i = 0; i < nbArticlesSeensExpected; i++) { \n decodedArticleSeenUrls.push(`\/toto\/toto${i}`);\n }\n }\n \n \/\/ V\u00e9rifiez que articleSeenUrls est d\u00e9fini avant de le d\u00e9coder\n if (typeof articleSeenUrls !== 'undefined') {\n decodedArticleSeenUrls = JSON.parse(window.atob(articleSeenUrls));\n }\n \n localStorage.removeItem('kiosq_article_url_ack');\n localStorage.setItem('kiosq_article_url_ack', window.btoa(JSON.stringify(decodedArticleSeenUrls))); \n }\n}\n"},{"name":"UTMCampaignPaid","script":"() => {\n const urlParams = new URLSearchParams(window.location.search);\n return (urlParams.get('utm_campaign') ?? '').toLowerCase().includes('paid');\n}"},{"name":"UTMParams","script":"() => {\n \/\/ Get the search params\n const params = new URLSearchParams(window.location.search);\n \n \/\/ Create an object to store UTM parameters\n const utmParams = [];\n \n \/\/ UTM parameter names\n const utmNames = [\n 'utm_source',\n 'utm_source_id',\n 'utm_medium',\n 'utm_campaign',\n 'utm_term',\n 'utm_content'\n ];\n \n \/\/ Extract UTM parameters\n utmNames.forEach(name => {\n const value = params.get(name);\n if (value) {\n utmParams.push(value);\n }\n });\n \n return utmParams.join(',');\n}"},{"name":"FreeRemainingArticleAfterLogin","script":"() => {\n if (localStorage.getItem(\"kiosq_article_url_ack\") !== null) {\n const articleSeenUrls = localStorage.getItem(\"kiosq_article_url_ack\");\n const decodedArticleSeenUrls = JSON.parse(window.atob(articleSeenUrls));\n const limitFreeArticlesAfterLogin = window.FUTR.Kiosq?.defaultSiteConfig?.limitOfFreeArticleAfterLogin || 0;\n const numberOfFreeArticleRemaining = limitFreeArticlesAfterLogin-decodedArticleSeenUrls.length;\n return numberOfFreeArticleRemaining >= 0 ? numberOfFreeArticleRemaining : 0;\n }\n\n return 0;\n }"},{"name":"ABTestCampaigns","script":"() => { \n let result = '';\n const str = window.VAN?.abTest?.variationId || '';\n if (str) {\n const parts = str.split('|');\n \n const variantId = parts[2];\n const variantNumber = parts[3];\n result = `${variantId}_${variantNumber}`;\n }\n\n return result;\n}"},{"name":"UrlPath","script":"() => {return window.location.pathname;}"},{"name":"GetQueryStringKeys","script":"() => {\n \/\/ Get the search params\n const params = new URLSearchParams(window.location.search);\n \n \/\/ Create an array of 'key=value' strings\n const paramStrings = [];\n \n \/\/ Iterate through all parameters and create the strings\n params.forEach((value, key) => {\n paramStrings.push(`${key}=${value}`);\n });\n \n return paramStrings;\n}; "},{"name":"ABTestVariationId","script":"() => { return window.VAN?.abTest?.variationId?.split('|')[4] ?? null; }"},{"name":"ABTestId","script":"() => { return window.VAN?.abTest?.variationId?.split('|')[2] ?? null; }"}]; window.FUTR.Kiosq.Campaign.Context = window.FUTR.Kiosq.Campaign.Context.map(function({script, ...item}) { try { return { ...item, computeValue:(eval(script))(), }; } catch (e) { if (e instanceof SyntaxError) { console.error(`Kiosq Setting Script Campaign ${item.name} has syntax error: ` + e.message); } else { console.log(`Kiosq Setting Script Campaign ${item.name} has`,e.message) } } }); window.bordeaux = window.bordeaux || {}; window.bordeaux.cmd = window.bordeaux.cmd || []; window.ffte.bordeaux ={ pageTemplate: "home", adParameters: window.adParameters || {"site":"tomshardware","content":"unknown","type":"homepage"} }; (function() { const QA_BASE_URL = 'public.rtb-qa-eks-euw1.futureplc.engineering'; const createScriptTag = (src) => { const script = document.createElement('script'); script.setAttribute('src', src); script.setAttribute('onerror', 'handleHeaderError()'); script.setAttribute('crossorigin', 'anonymous'); script.defer = true; return script; }; const appendScriptTags = (qaBordeauxVersion, qaChampagneVersion) => { if (window.disableBordeaux === true) return; const bordeauxUrl = qaBordeauxVersion ? `https://bdx.${qaBordeauxVersion}.${QA_BASE_URL}/bordeaux.js` : 'https://bordeaux.futurecdn.net/bordeaux.js'; const champagneUrl = qaChampagneVersion ? `https://chmp.${qaChampagneVersion}.${QA_BASE_URL}/champagne.js` : 'https://champagne.futurecdn.net/champagne.js'; document.head.append( createScriptTag(bordeauxUrl), createScriptTag(champagneUrl) ); }; const getQueryParams = () => { const params = new URLSearchParams(window.location.search); return { qaBordeauxVersion: params.get('hybrid_bordeaux_version') ?? null, qaChampagneVersion: params.get('hybrid_champagne_version') ?? null, }; }; const { qaBordeauxVersion, qaChampagneVersion } = getQueryParams(); appendScriptTags(qaBordeauxVersion, qaChampagneVersion); if (qaBordeauxVersion) { window.bordeaux.setAdToolVersion(qaBordeauxVersion); } })(); /* */ function comscoreIntegration() { var TIMEOUT_DELAY = 2000; var COMSCORE_ID = "10055482"; function callComscore(ucfrValue) { window._comscore = window._comscore || []; var comscorePayload = { c1: "2", c2: COMSCORE_ID, options: { enableFirstPartyCookie: true, } }; if(ucfrValue) { comscorePayload.cs_ucfr = ucfrValue; } window._comscore.push(comscorePayload); injectComscore(); } function callComscoreForVideo(ucfrValue) { window._comscore = window._comscore || []; const seconds = 600; const comscorePayload = { c2: COMSCORE_ID, c5: jwplayer().getDuration() > seconds ? "03" : "02", }; if(ucfrValue) { comscorePayload.cs_ucfr = ucfrValue; } if (!window.COMSCORE) { window._comscore.push(comscorePayload); } else { window.COMSCORE.beacon(comscorePayload) } } function injectComscore() { let s = document.createElement('script'), el = document.getElementsByTagName("script")[0]; s.async = true; const URLbeginning = "https://sb"; if (window.__tcfapi) { s.src = URLbeginning + '.scorecardresearch.com/cs/' + COMSCORE_ID + '/beacon.js'; } else { s.src = URLbeginning + '.scorecardresearch.com/beacon.js'; } el.parentNode.insertBefore(s, el); } if (window.__tcfapi) { var timeout = window.setTimeout(function() { callComscore(); }, TIMEOUT_DELAY); window.__tcfapi('addEventListener', 2, function(res) { window.__tcfapi('removeEventListener', 2, function() {}, res.listenerId); const validStatus = ['tcloaded', 'useractioncomplete']; if (validStatus.includes(res.eventStatus) && res.gdprApplies) { window.clearTimeout(timeout); callComscore(res.vendor?.consents?.[77] ? 1 : 0); } }); } else { callComscore(); } window.reliablePageLoad.then(function () { window.document.addEventListener('jwplayerInstanceLoaded', function () { jwplayer().once('beforePlay', function () { callComscoreForVideo(); }); }); }); } comscoreIntegration(); !function(){"use strict";function e(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],c=document.createElement("script");c.src=e,t?c.type="module":(c.async=!0,c.type="text/javascript",c.setAttribute("nomodule",""));var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(c,n)}!function(t,c){!function(t,c,n){var a,o,r;n.accountId=c,null!==(a=t.marfeel)&&void 0!==a||(t.marfeel={}),null!==(o=(r=t.marfeel).cmd)&&void 0!==o||(r.cmd=[]),t.marfeel.config=n;var i="https://sdk.mrf.io/statics";e("".concat(i,"/marfeel-sdk.js?id=").concat(c),!0),e("".concat(i,"/marfeel-sdk.es5.js?id=").concat(c),!1)}(t,c,arguments.length>2&&void 0!==arguments[2]?arguments[2]:{})}(window,7842,{})}(); FlexiLoader={loadJS:function(e,t){var n,r,a;r=!1,(n=document.createElement("script")).type="text/javascript",n.src=e,n.async=!0,n.onload=n.onreadystatechange=function(){r||this.readyState&&"complete"!==this.readyState||(r=!0,t())},(a=document.getElementsByTagName("script")[0]).parentNode.insertBefore(n,a)},execRequires:function(){this.requires.forEach(function(e,t,n){try{e()}catch(e){console.log("error",e)}}),this.requires=[]},execRequiresOnDomReady:function(){document.addEventListener("readystatechange",function(){["interactive","complete"].indexOf(document.readyState)>=0&&FlexiLoader.execRequires()},!1)},push:function(e){["interactive","complete"].indexOf(document.readyState)>=0?e():this.requires.push(e)},requires:window.FlexiLoaderRequires||[]}; FlexiLoader.loadJS('//vanilla.futurecdn.net/tomshardware/1580304/media/shared/js/flexi.js', function () { Flexi.globals = { "environment": "live", "endpoints": null }; FlexiLoader.execRequiresOnDomReady(); }); !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).cssVars=t()}(this,function(){"use strict";function e(){return(e=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:"").trim().charAt(0))}function a(e,t){n.onError(e,r[t],t)}function c(e,t){var s=n.onSuccess(e,r[t],t);e=!1===s?"":s||e,o[t]=e,-1===o.indexOf(null)&&n.onComplete(o)}var i=document.createElement("a");r.forEach(function(e,t){if(i.setAttribute("href",e),i.href=String(i.href),Boolean(document.all&&!window.atob)&&i.host.split(":")[0]!==location.host.split(":")[0]){if(i.protocol===location.protocol){var r=new XDomainRequest;r.open("GET",e),r.timeout=0,r.onprogress=Function.prototype,r.ontimeout=Function.prototype,r.onload=function(){s(r.responseText)?c(r.responseText,t):a(r,t)},r.onerror=function(e){a(r,t)},setTimeout(function(){r.send()},0)}else console.warn("Internet Explorer 9 Cross-Origin (CORS) requests must use the same protocol (".concat(e,")")),a(null,t)}else{var o=new XMLHttpRequest;o.open("GET",e),n.mimeType&&o.overrideMimeType&&o.overrideMimeType(n.mimeType),n.onBeforeSend(o,e,t),o.onreadystatechange=function(){4===o.readyState&&(200===o.status&&s(o.responseText)?c(o.responseText,t):a(o,t))},o.send()}})}function r(e){var t={cssComments:/\/\*[\s\S]+?\*\//g,cssImports:/(?:@import\s*)(?:url\(\s*)?(?:['"])([^'"]*)(?:['"])(?:\s*\))?(?:[^;]*;)/g},r={rootElement:e.rootElement||document,include:e.include||'style,link[rel="stylesheet"]',exclude:e.exclude||null,filter:e.filter||null,useCSSOM:e.useCSSOM||!1,onBeforeSend:e.onBeforeSend||Function.prototype,onSuccess:e.onSuccess||Function.prototype,onError:e.onError||Function.prototype,onComplete:e.onComplete||Function.prototype},s=Array.apply(null,r.rootElement.querySelectorAll(r.include)).filter(function(e){return t=e,n=r.exclude,!(t.matches||t.matchesSelector||t.webkitMatchesSelector||t.mozMatchesSelector||t.msMatchesSelector||t.oMatchesSelector).call(t,n);var t,n}),a=Array.apply(null,Array(s.length)).map(function(e){return null});function c(){if(-1===a.indexOf(null)){var e=a.join("");r.onComplete(e,a,s)}}function i(e,t,o,s){var i=r.onSuccess(e,o,s);(function e(t,o,s,a){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[];var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:[];var l=u(t,s,i);l.rules.length?n(l.absoluteUrls,{onBeforeSend:function(e,t,n){r.onBeforeSend(e,o,t)},onSuccess:function(e,t,n){var s=r.onSuccess(e,o,t),a=u(e=!1===s?"":s||e,t,i);return a.rules.forEach(function(t,n){e=e.replace(t,a.absoluteRules[n])}),e},onError:function(n,r,u){c.push({xhr:n,url:r}),i.push(l.rules[u]),e(t,o,s,a,c,i)},onComplete:function(n){n.forEach(function(e,n){t=t.replace(l.rules[n],e)}),e(t,o,s,a,c,i)}}):a(t,c)})(e=void 0!==i&&!1===Boolean(i)?"":i||e,o,s,function(e,n){null===a[t]&&(n.forEach(function(e){return r.onError(e.xhr,o,e.url)}),!r.filter||r.filter.test(e)?a[t]=e:a[t]="",c())})}function u(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],s={};return s.rules=(e.replace(t.cssComments,"").match(t.cssImports)||[]).filter(function(e){return-1===r.indexOf(e)}),s.urls=s.rules.map(function(e){return e.replace(t.cssImports,"$1")}),s.absoluteUrls=s.urls.map(function(e){return o(e,n)}),s.absoluteRules=s.rules.map(function(e,t){var r=s.urls[t],a=o(s.absoluteUrls[t],n);return e.replace(r,a)}),s}s.length?s.forEach(function(e,t){var s=e.getAttribute("href"),u=e.getAttribute("rel"),l="LINK"===e.nodeName&&s&&u&&"stylesheet"===u.toLowerCase(),f="STYLE"===e.nodeName;if(l)n(s,{mimeType:"text/css",onBeforeSend:function(t,n,o){r.onBeforeSend(t,e,n)},onSuccess:function(n,r,a){var c=o(s,location.href);i(n,t,e,c)},onError:function(n,o,s){a[t]="",r.onError(n,e,o),c()}});else if(f){var p=e.textContent;r.useCSSOM&&(p=Array.apply(null,e.sheet.cssRules).map(function(e){return e.cssText}).join("")),i(p,t,e,location.href)}else a[t]="",c()}):r.onComplete("",[])}function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:location.href,n=document.implementation.createHTMLDocument(""),r=n.createElement("base"),o=n.createElement("a");return n.head.appendChild(r),n.body.appendChild(o),r.href=t,o.href=e,o.href}var s=a;function a(e,t,n){e instanceof RegExp&&(e=c(e,n)),t instanceof RegExp&&(t=c(t,n));var r=i(e,t,n);return r&&{start:r[0],end:r[1],pre:n.slice(0,r[0]),body:n.slice(r[0]+e.length,r[1]),post:n.slice(r[1]+t.length)}}function c(e,t){var n=t.match(e);return n?n[0]:null}function i(e,t,n){var r,o,s,a,c,i=n.indexOf(e),u=n.indexOf(t,i+1),l=i;if(i>=0&&u>0){for(r=[],s=n.length;l>=0&&!c;)l==i?(r.push(l),i=n.indexOf(e,l+1)):1==r.length?c=[r.pop(),u]:((o=r.pop())1&&void 0!==arguments[1]?arguments[1]:{});function r(e){throw new Error("CSS parse error: ".concat(e))}function o(e){var n=e.exec(t);if(n)return t=t.slice(n[0].length),n}function a(){return o(/^{\s*/)}function c(){return o(/^}/)}function i(){o(/^\s*/)}function u(){if(i(),"/"===t[0]&&"*"===t[1]){for(var e=2;t[e]&&("*"!==t[e]||"/"!==t[e+1]);)e++;if(!t[e])return r("end of comment is missing");var n=t.slice(2,e);return t=t.slice(e+2),{type:"comment",comment:n}}}function l(){for(var e,t=[];e=u();)t.push(e);return n.removeComments?[]:t}function f(){for(i();"}"===t[0];)r("extra closing bracket");var e=o(/^(("(?:\\"|[^"])*"|'(?:\\'|[^'])*'|[^{])+)/);if(e)return e[0].trim().replace(/\/\*([^*]|[\r\n]|(\*+([^*\/]|[\r\n])))*\*\/+/g,"").replace(/"(?:\\"|[^"])*"|'(?:\\'|[^'])*'/g,function(e){return e.replace(/,/g,"‌")}).split(/\s*(?![^(]*\)),\s*/).map(function(e){return e.replace(/\u200C/g,",")})}function p(){o(/^([;\s]*)+/);var e=/\/\*[^*]*\*+([^\/*][^*]*\*+)*\//g,t=o(/^(\*?[-#\/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/);if(t){if(t=t[0].trim(),!o(/^:\s*/))return r("property missing ':'");var n=o(/^((?:\/\*.*?\*\/|'(?:\\'|.)*?'|"(?:\\"|.)*?"|\((\s*'(?:\\'|.)*?'|"(?:\\"|.)*?"|[^)]*?)\s*\)|[^};])+)/),s={type:"declaration",property:t.replace(e,""),value:n?n[0].replace(e,"").trim():""};return o(/^[;\s]*/),s}}function m(){if(!a())return r("missing '{'");for(var e,t=l();e=p();)t.push(e),t=t.concat(l());return c()?t:r("missing '}'")}function d(){i();for(var e,t=[];e=o(/^((\d+\.\d+|\.\d+|\d+)%?|[a-z]+)\s*/);)t.push(e[1]),o(/^,\s*/);if(t.length)return{type:"keyframe",values:t,declarations:m()}}function v(){if(i(),"@"===t[0]){var e=function(){var e=o(/^@([-\w]+)?keyframes\s*/);if(e){var t=e[1];if(!(e=o(/^([-\w]+)\s*/)))return r("@keyframes missing name");var n,s=e[1];if(!a())return r("@keyframes missing '{'");for(var i=l();n=d();)i.push(n),i=i.concat(l());return c()?{type:"keyframes",name:s,vendor:t,keyframes:i}:r("@keyframes missing '}'")}}()||function(){var e=o(/^@supports *([^{]+)/);if(e)return{type:"supports",supports:e[1].trim(),rules:h()}}()||function(){if(o(/^@host\s*/))return{type:"host",rules:h()}}()||function(){var e=o(/^@media *([^{]+)/);if(e)return{type:"media",media:e[1].trim(),rules:h()}}()||function(){var e=o(/^@custom-media\s+(--[^\s]+)\s*([^{;]+);/);if(e)return{type:"custom-media",name:e[1].trim(),media:e[2].trim()}}()||function(){if(o(/^@page */))return{type:"page",selectors:f()||[],declarations:m()}}()||function(){var e=o(/^@([-\w]+)?document *([^{]+)/);if(e)return{type:"document",document:e[2].trim(),vendor:e[1]?e[1].trim():null,rules:h()}}()||function(){if(o(/^@font-face\s*/))return{type:"font-face",declarations:m()}}()||function(){var e=o(/^@(import|charset|namespace)\s*([^;]+);/);if(e)return{type:e[1],name:e[2].trim()}}();if(e&&n.onlyVars){var s=!1;if(e.declarations)s=e.declarations.some(function(e){return/var\(/.test(e.value)});else s=(e.keyframes||e.rules||[]).some(function(e){return(e.declarations||[]).some(function(e){return/var\(/.test(e.value)})});return s?e:{}}return e}}function y(){if(n.onlyVars){var e=s("{","}",t);if(e){var o=-1!==e.pre.indexOf(":root")&&/--\S*\s*:/.test(e.body),a=/var\(/.test(e.body);if(!o&&!a)return t=t.slice(e.end+1),{}}}var c=f()||[],i=n.onlyVars?m().filter(function(e){var t=c.some(function(e){return-1!==e.indexOf(":root")})&&/^--\S/.test(e.property),n=/var\(/.test(e.value);return t||n}):m();return c.length||r("selector missing"),{type:"rule",selectors:c,declarations:i}}function h(e){if(!e&&!a())return r("missing '{'");for(var n,o=l();t.length&&(e||"}"!==t[0])&&(n=v()||y());)n.type&&o.push(n),o=o.concat(l());return e||c()?o:r("missing '}'")}return{type:"stylesheet",stylesheet:{rules:h(!0),errors:[]}}}a.range=i;var l="--",f="var",p={dom:{},temp:{},user:{}};function m(t){var n,r,o=e({},{fixNestedCalc:!0,onlyVars:!1,persist:!1,preserve:!1,variables:{},onWarning:function(){}},arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}),a=o.persist?p.dom:p.temp=JSON.parse(JSON.stringify(p.dom)),c=u(t,{onlyVars:o.onlyVars});if(c.stylesheet.rules.forEach(function(e){var t=[];if("rule"===e.type&&1===e.selectors.length&&":root"===e.selectors[0]&&(e.declarations.forEach(function(e,n){var r=e.property,o=e.value;r&&0===r.indexOf(l)&&(a[r]=o,t.push(n))}),!o.preserve))for(var n=t.length-1;n>=0;n--)e.declarations.splice(t[n],1)}),Object.keys(p.user).forEach(function(e){a[e]=p.user[e]}),Object.keys(o.variables).length){var i={declarations:[],selectors:[":root"],type:"rule"};Object.keys(o.variables).forEach(function(e){var t="--".concat(e.replace(/^-+/,"")),n=o.variables[e];o.persist&&(p.user[t]=n),a[t]!==n&&(a[t]=n,i.declarations.push({type:"declaration",property:t,value:n}))}),o.preserve&&i.declarations.length&&c.stylesheet.rules.push(i)}return function e(t,n){t.rules.forEach(function(r){r.rules?e(r,n):r.keyframes?r.keyframes.forEach(function(e){"keyframe"===e.type&&n(e.declarations,r)}):r.declarations&&n(r.declarations,t)})}(c.stylesheet,function(e,t){for(var n,r,s,c=0;c1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2?arguments[2]:void 0,r={charset:function(e){return"@charset "+e.name+";"},comment:function(e){return 0===e.comment.indexOf("__CSSVARSPONYFILL")?"/*"+e.comment+"*/":""},"custom-media":function(e){return"@custom-media "+e.name+" "+e.media+";"},declaration:function(e){return e.property+":"+e.value+";"},document:function(e){return"@"+(e.vendor||"")+"document "+e.document+"{"+o(e.rules)+"}"},"font-face":function(e){return"@font-face{"+o(e.declarations)+"}"},host:function(e){return"@host{"+o(e.rules)+"}"},import:function(e){return"@import "+e.name+";"},keyframe:function(e){return e.values.join(",")+"{"+o(e.declarations)+"}"},keyframes:function(e){return"@"+(e.vendor||"")+"keyframes "+e.name+"{"+o(e.keyframes)+"}"},media:function(e){return"@media "+e.media+"{"+o(e.rules)+"}"},namespace:function(e){return"@namespace "+e.name+";"},page:function(e){return"@page "+(e.selectors.length?e.selectors.join(", "):"")+"{"+o(e.declarations)+"}"},rule:function(e){var t=e.declarations;if(t.length)return e.selectors.join(",")+"{"+o(t)+"}"},supports:function(e){return"@supports "+e.supports+"{"+o(e.rules)+"}"}};function o(e){for(var o="",s=0;s2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0;if(-1===e.indexOf("var("))return e;var o=s("(",")",e);return o?"var"===o.pre.slice(-3)?0===o.body.trim().length?(n.onWarning("var() must contain a non-whitespace string"),e):o.pre.slice(0,-3)+function(e){var o=e.split(",")[0].replace(/[\s\n\t]/g,""),s=(e.match(/(?:\s*,\s*){1}(.*)?/)||[])[1],a=t.hasOwnProperty(o)?String(t[o]):void 0,c=a||(s?String(s):void 0),i=r||e;return a||n.onWarning('variable "'.concat(o,'" is undefined')),c&&"undefined"!==c&&c.length>0?d(c,t,n,i):"var(".concat(i,")")}(o.body)+d(o.post,t,n):o.pre+"(".concat(d(o.body,t,n),")")+d(o.post,t,n):(-1!==e.indexOf("var(")&&n.onWarning('missing closing ")" in the value "'.concat(e,'"')),e)}var v="css-vars-ponyfill",y="undefined"!=typeof window,h=y&&window.CSS&&window.CSS.supports&&window.CSS.supports("(--a: 0)"),g="cssVars(): ",S={rootElement:y?document:null,shadowDOM:!1,include:"style,link[rel=stylesheet]",exclude:"",variables:{},fixNestedCalc:!0,onlyLegacy:!0,onlyVars:!1,preserve:!1,silent:!1,updateDOM:!0,updateURLs:!0,watch:null,onBeforeSend:function(){},onSuccess:function(){},onWarning:function(){},onError:function(){},onComplete:function(){}},E={cssComments:/\/\*[\s\S]+?\*\//g,cssKeyframes:/@(?:-\w*-)?keyframes/,cssRootRules:/(?::root\s*{\s*[^}]*})/g,cssUrls:/url\((?!['"]?(?:data|http|\/\/):)['"]?([^'")]*)['"]?\)/g,cssVars:/(?:(?::root\s*{\s*[^;]*;*\s*)|(?:var\(\s*))(--[^:)]+)(?:\s*[:)])/},b=null,x=null,C=!1;function O(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=e({},S,n),s=v;function a(e,t,n,r){o.silent||console.error("".concat(g).concat(e,"\n"),t),o.onError(e,t,n,r)}function c(e){o.silent||console.warn("".concat(g).concat(e)),o.onWarning(e)}if(o.exclude="#".concat(s)+(o.exclude?",".concat(o.exclude):""),o._benchmark=o._benchmark?o._benchmark:A(),y)if(!1===o.watch&&b&&b.disconnect(),o.watch)!function(e,t){if(!window.MutationObserver)return;var n=function(e){return"LINK"===e.tagName&&-1!==(e.getAttribute("rel")||"").indexOf("stylesheet")},r=function(e){return"STYLE"===e.tagName&&(!t||e.id!==t)};b&&b.disconnect();e.watch=S.watch,(b=new MutationObserver(function(t){var o=t.some(function(e){var t=!1;if("attributes"===e.type)t=n(e.target)||r(e.target);else if("childList"===e.type){var o=Array.apply(null,e.addedNodes),s=Array.apply(null,e.removedNodes);t=[].concat(o,s).some(function(e){var t=n(e)&&!e.disabled,o=r(e)&&E.cssVars.test(e.textContent);return t||o})}return t});o&&w(e)})).observe(document.documentElement,{attributes:!0,attributeFilter:["disabled","href"],childList:!0,subtree:!0})}(o,s),w(o);else if("loading"!==document.readyState){var i=o.shadowDOM||o.rootElement.shadowRoot||o.rootElement.host;if(h&&o.onlyLegacy){if(o.updateDOM){var u=o.rootElement.host||(o.rootElement===document?document.documentElement:o.rootElement);Object.keys(o.variables).forEach(function(e){var t="--".concat(e.replace(/^-+/,"")),n=o.variables[e];u.style.setProperty(t,n)})}}else r(i&&!C?{rootElement:S.rootElement,include:S.include,exclude:o.exclude,onSuccess:function(e,t,n){return(e.match(E.cssRootRules)||[]).join("")||!1},onComplete:function(e,t,n){m(e,{persist:!0}),C=!0,O(o)}}:{rootElement:o.rootElement,include:o.include,exclude:o.exclude,filter:o.onlyVars?E.cssVars:null,onBeforeSend:o.onBeforeSend,onSuccess:function(e,t,n){var r=o.onSuccess(e,t,n);(e=void 0!==r&&!1===Boolean(r)?"":r||e,o.updateURLs)&&(e.replace(E.cssComments,"").match(E.cssUrls)||[]).forEach(function(t){var r=t.replace(E.cssUrls,"$1"),o=k(r,n);e=e.replace(t,t.replace(r,o))});return e},onError:function(e,t,n){var r=e.responseURL||k(n,location.href),o=e.statusText?"(".concat(e.statusText,")"):"Unspecified Error"+(0===e.status?" (possibly CORS related)":"");a("CSS XHR Error: ".concat(r," ").concat(e.status," ").concat(o),t,e,r)},onComplete:function(n,r,i){var u=o.rootElement.querySelector("#".concat(s))||document.createElement("style"),l=u.__cssVars||{};if(l.cssText===n&&l.settings===JSON.stringify(o))n=u.textContent,o.silent||console.info("".concat(g,"CSS source is unchanged"));else{u.setAttribute("id",s),u.__cssVars={cssText:n,settings:JSON.stringify(o)},n=r.map(function(e,t){return E.cssVars.test(e)?e:"/*__CSSVARSPONYFILL-".concat(t,"__*/")}).join("");try{n=m(n,{fixNestedCalc:o.fixNestedCalc,onlyVars:o.onlyVars,persist:o.updateDOM,preserve:o.preserve,variables:o.variables,onWarning:c});var f=E.cssKeyframes.test(n);if(n=n.replace(/\/\*__CSSVARSPONYFILL-(\d+)__\*\//g,function(e,t){return r[t]}),o.updateDOM&&i&&i.length){var d=i[i.length-1];u.textContent!==n&&(u.textContent=n),d.nextSibling!==u&&d.parentNode&&d.parentNode.insertBefore(u,d.nextSibling),f&&function(e){var t=["animation-name","-moz-animation-name","-webkit-animation-name"].filter(function(e){return getComputedStyle(document.body)[e]})[0];if(t){for(var n=e.getElementsByTagName("*"),r=[],o=0,s=n.length;o Tom's Hardware
  • [H3] Testing CPU scaling in Crimson Desert
  • [H3] Nvidia will only produce one 88-core Vera CPU model — Jensen says the company will make billions of dollars from a single SKU
  • [H3] With H200s set to flow into China, Groq is reportedly set to follow soon after
  • [H3] AMD claims it had no knowledge of fake Ryzen 5 7430U CPUs in Chuwi laptops
  • [H3] Microsoft considering suing OpenAI over Altman's recent deal with Amazon, report claims
  • [H3] AMD reportedly strikes back with Zen 5 refresh to counter Intel's latest Arrow Lake Refresh CPUs
  • [H3] Endgame: What’s it Like to build the Noctua-everything PC inside the Antec Flux Pro Noctua-Edition
  • [H3] Best motherboard deals 2026
  • [H3] SK Group chairman says memory chip shortage will last until 2030
  • [H3] Tech hobbyist makes shoulder-mounted guided missile prototype with $96 in parts and a 3D printer
  • [H3] Bitcoin is so resilient it could survive as much as 90% of the world's undersea cables failing simultaneously
  • [H3] Intel launches Core Ultra 200HX Plus mobile CPUs, new lineup includes 290HX Plus & 270HX Plus flagships
  • [H3] Nvidia updates data center roadmap with Rosa CPU and stacked Feynman GPUs
  • [H3] Jensen says Nvidia has received orders from Chinese customers for H200 GPUs, licenses from US gov't — H200 manufacturing restarting
  • [H3] Jensen Huang says gamers are 'completely wrong' about DLSS 5
  • [H3] Nvidia launches DGX Station with its bleeding-edge GB300 Grace Blackwell Superchip
  • [H3] End of an era for decades-old PlayStation 3, Xbox 360, and Nintendo Wii U as GameStop officially declares them retro
  • [H3] Nintendo Switch 2 update brings Handheld Mode Boost
  • [H3] Examining Nvidia's 60 exaflop Vera Rubin POD — how seven chips underpin company's 40 rack AI factory supercomputer
  • [H3] We got a first look at Nvidia's DLSS 5 and the future of neural rendering at GTC
  • [H3] With H200s set to flow into China, Groq is reportedly set to follow soon after
  • [H3] Examining Nvidia's 60 exaflop Vera Rubin POD — how seven chips underpin company's 40 rack AI factory supercomputer
  • [H3] Meta's new MTIA lineup joins hyperscalers' unified push for dedicated inferencing chips
  • [H3] Intel's roadmaps examined — 14A, Nova Lake, Diamond Rapids & AI accelerator push
  • [H3] Tech titans team up to form optical interconnect alliance to solve the AI buildout's big data bottleneck
  • [H3] The ongoing Strait of Hormuz blockage will impact the semiconductor and AI industries with Aluminum, Helium and LNG shortages
  • [H3] SPONSORED_HEADLINE
  • [H3] MSI MAG B850 Tomahawk Max Wifi II Motherboard review: Sharpening the Tomahawk’s blade
  • [H3] Creality Sermoon P1 3D Scanner review: 3D scanning on the go
  • [H3] Keychron Q16 HE 8K Review: All-ceramic, but not all good
  • [H3] Acer Swift 16 AI Review: A Premium contender with a curious twist
  • [H3] HyperX Origins 2 65 Review: 8,000Hz and Customizable
  • [H3] SPONSORED_HEADLINE
  • [H3] Best AIO Coolers 2026
  • [H3] The Best Wi-Fi Routers We've Benchmarked in 2026 — the best of Wi-Fi 7 from budget to premium
  • [H3] Best PC Speakers 2026: From Budget to Audiophile Bliss
  • [H3] SPONSORED_HEADLINE
  • [H3] Testing CPU scaling in Crimson Desert
  • [H3] Nvidia will only produce one 88-core Vera CPU model — Jensen says the company will make billions of dollars from a single SKU
  • [H3] AMD claims it had no knowledge of fake Ryzen 5 7430U CPUs in Chuwi laptops
  • [H3] SPONSORED_HEADLINE
  • [H3] Nvidia updates data center roadmap with Rosa CPU and stacked Feynman GPUs
  • [H3] Jensen Huang expects Nvidia to sell $1 trillion of AI hardware through 2027
  • [H3] Nvidia announces Vera Rubin Space Module
  • [H3] SPONSORED_HEADLINE
  • [H3] Jake Roach
  • [H3] Jeffrey Kampman
  • [H3] Anj Bryant
  • [H3] Stephen Warwick
  • [H3] Paul Alcorn
  • [H3] Matt Safford
  • [H3] Sarah Jacobsson Purewal
  • [H3] Andrew E. Freedman
  • [H3] Brandon Hill
  • [H3] Les Pounder
  • [H3] Stewart Bendle
  • [H3] Sayem Ahmed
  • [H3] Joe Shields
  • [H3] Ben Stockton
  • [H3] Dell updates Alienware gaming laptops with Intel’s Arrow Lake-HX Refresh CPUs
  • [H3] Apple's MacBook Neo modded to a 1 TB SSD, breaking the firm's 512 GB barrier
  • [H3] SPONSORED_HEADLINE
  • [H3] Intel's roadmaps examined — 14A, Nova Lake, Diamond Rapids & AI accelerator push
  • [H3] How to protect yourself from bad external SSDs during the PC hardware apocalypse
  • [H3] Shortages of crucial chip packaging material threatens AI accelerator supply chains
  • [H3] SPONSORED_HEADLINE
  • [H3] Endgame: What’s it Like to build the Noctua-everything PC inside the Antec Flux Pro Noctua-Edition
  • [H3] Best motherboard deals 2026
  • [H3] SK Group chairman says memory chip shortage will last until 2030
  • [H3] SPONSORED_HEADLINE
  • [H3] How to setup an Android smartphone as a webcam — Camo Studio unlocks new uses for old smartphones in Windows 10 or 11 and OBS software
  • [H3] Windows Phone makes a spiritual comeback thanks to NexPhone, which can triple-boot Windows, Android, and Linux
  • [H3] Monstrous SSD cooling solution strapped to iPhone 17 Pro Max delivers unparalleled performance
  • [H3] SPONSORED_HEADLINE
  • [H3] Best motherboard deals 2026
  • [H3] The best Amazon UK Spring Deals Days tech sales 2026
  • [H3] Save over £40 on the latest SteelSeries Arctis Nova Elite audiophile-grade headset
  • [H3] SPONSORED_HEADLINE
  • [H3] Meta promo codes for Mar 2026 |
  • [H3] Corsair Discount Codes in Mar 2026 |
  • [H3] Squarespace Coupon Codes for Mar 2026
  • [H3] Logitech G Promo Codes for March 2026
  • [H3] Autodesk Promo Codes in Mar 2026 |
  • [H3] SteelSeries Coupons for March 2026
  • [H3] SPONSORED_HEADLINE
  • [H3] With H200s set to flow into China, Groq is reportedly set to follow soon after
  • [H3] Microsoft considering suing OpenAI over Altman's recent deal with Amazon, report claims
  • [H3] Tech hobbyist makes shoulder-mounted guided missile prototype with $96 in parts and a 3D printer
  • [H3] Bitcoin is so resilient it could survive as much as 90% of the world's undersea cables failing simultaneously
  • [H3] Nvidia launches DGX Station with its bleeding-edge GB300 Grace Blackwell Superchip
  • [H3] End of an era for decades-old PlayStation 3, Xbox 360, and Nintendo Wii U as GameStop officially declares them retro
  • [H3] Best PC peripherals deals 2026
  • [H3] Nintendo Switch 2 update brings Handheld Mode Boost
  • [H3] SPONSORED_HEADLINE

Images

We found 111 images on this web page.

31 alt attributes are empty or missing. Add alternative text so that search engines can better understand the content of your images.

Text/HTML Ratio

Ratio : 2%

This page's ratio of text to HTML code is below 15 percent, this means that your website probably needs more text content.

Flash

Perfect, no Flash content has been detected on this page.

Iframe

Too Bad, you have Iframes on the web pages, this mean that content in an Iframe cannot be indexed.

URL Rewrite

Good. Your links looks friendly!

Underscores in the URLs

Perfect! No underscores detected in your URLs.

In-page links

We found a total of 170 links including 14 link(s) to files

Anchor Type Juice
Skip to main content Internal Passing Juice
Best Picks External Passing Juice
CPU Best Picks External Passing Juice
CPU Reviews External Passing Juice
GPU Best Picks External Passing Juice
GPU Reviews External Passing Juice
Laptop Best Picks External Passing Juice
Laptop Reviews External Passing Juice
Keyboard Best Picks External Passing Juice
Gaming Monitor Best Picks External Passing Juice
Gaming Headset Best Picks External Passing Juice
3D Printer Best Picks External Passing Juice
Webcam Best Picks External Passing Juice
Mice Best Picks External Passing Juice
How We Test External Passing Juice
CPUs External Passing Juice
AMD Ryzen External Passing Juice
Intel Lunar Lake External Passing Juice
Nvidia External Passing Juice
Qualcomm External Passing Juice
Apple External Passing Juice
Benchmarking External Passing Juice
X86 External Passing Juice
ARM External Passing Juice
Panther Lake External Passing Juice
Zen 5 External Passing Juice
AM5 External Passing Juice
Chipmaking External Passing Juice
DUV External Passing Juice
EUV External Passing Juice
Rare Earth Metals External Passing Juice
GPUs External Passing Juice
Nvidia Blackwell External Passing Juice
Nvidia Geforce External Passing Juice
AMD Radeon External Passing Juice
Intel Arc External Passing Juice
Snapdragon X External Passing Juice
GDDR7 External Passing Juice
GDDR8 External Passing Juice
HBM External Passing Juice
Drivers External Passing Juice
PC Components External Passing Juice
RAM External Passing Juice
DRAM External Passing Juice
DDR5 External Passing Juice
Storage External Passing Juice
HDDs External Passing Juice
SSDs External Passing Juice
Cooling External Passing Juice
Air Cooling External Passing Juice
Liquid Cooling External Passing Juice
Thermal Paste External Passing Juice
Networking External Passing Juice
Routers External Passing Juice
Motherboards External Passing Juice
Overclocking External Passing Juice
PC Cases External Passing Juice
PC Building External Passing Juice
Power Supplies External Passing Juice
News External Passing Juice
Tech Industry News External Passing Juice
CPU News External Passing Juice
GPU News External Passing Juice
Chips Act External Passing Juice
Semiconductors External Passing Juice
Cybersecurity External Passing Juice
Supercomputers External Passing Juice
Quantum Computing External Passing Juice
AMD External Passing Juice
Intel External Passing Juice
Microsoft External Passing Juice
TSMC External Passing Juice
IBM External Passing Juice
Newsletter External Passing Juice
Laptops External Passing Juice
Gaming Laptops External Passing Juice
Ultrabooks External Passing Juice
MacBooks External Passing Juice
Asus External Passing Juice
Razer External Passing Juice
HP External Passing Juice
MSI External Passing Juice
Desktops External Passing Juice
Gaming PCs External Passing Juice
Monitors External Passing Juice
Gaming Monitors External Passing Juice
Peripherals External Passing Juice
Keyboards External Passing Juice
Mice External Passing Juice
3D Printers External Passing Juice
Headphones External Passing Juice
Alienware External Passing Juice
Corsair External Passing Juice
Gigabyte External Passing Juice
Acer External Passing Juice
Software & AI External Passing Juice
Artificial Intelligence External Passing Juice
Machine Learning External Passing Juice
R&D External Passing Juice
Intel Gaudi External Passing Juice
Cerebras External Passing Juice
xAI External Passing Juice
LLMs External Passing Juice
OpenAI External Passing Juice
Anthropic External Passing Juice
DeepSeek External Passing Juice
Gemini External Passing Juice
Grok External Passing Juice
Operating Systems External Passing Juice
Windows External Passing Juice
MacOS External Passing Juice
iOS External Passing Juice
ChromeOS External Passing Juice
Linux External Passing Juice
Programming External Passing Juice
Applications External Passing Juice
Microsoft Office External Passing Juice
Web Browsers External Passing Juice
Coupons Internal Passing Juice
Laptop and PC Coupons External Passing Juice
Dell Coupon Codes External Passing Juice
Asus Coupon Codes External Passing Juice
Logitech Promo Codes External Passing Juice
Samsung Promo codes External Passing Juice
Hardware Coupons External Passing Juice
Newegg Promo Codes External Passing Juice
Corsair Discount Codes External Passing Juice
Razer Promo Codes External Passing Juice
Anycubic Discount codes External Passing Juice
Software Coupons External Passing Juice
Bitdefender Coupons External Passing Juice
Simplisafe Coupons External Passing Juice
MacPaw Coupons External Passing Juice
Squarespace Coupon Codes External Passing Juice
Gaming Coupons External Passing Juice
Kinguin Discount Codes External Passing Juice
Loaded Discount Codes External Passing Juice
Logitech G Promo Codes External Passing Juice
SteelSeries Coupons External Passing Juice
- Internal Passing Juice
Premium External Passing Juice
Forums External Passing Juice
🔥TH Premium Deal External Passing Juice
GTC 2026 External Passing Juice
DLSS 5 External Passing Juice
RAM Shortage External Passing Juice
Bartlett Lake External Passing Juice
Intel Xeon 600 External Passing Juice
RAM Combo Deals External Passing Juice
Terms & Conditions External Passing Juice
Privacy Policy External Passing Juice
3D Scanning External Passing Juice
Mechanical Keyboards External Passing Juice
Gaming Keyboards External Passing Juice
Speakers External Passing Juice
Android External Passing Juice
Phones External Passing Juice
iPhone External Passing Juice
this forum thread External Passing Juice
Cryptocurrency External Passing Juice
Retro Gaming External Passing Juice
Nintendo External Passing Juice
Visit our corporate site External Passing Juice
Contact Future's experts External Passing Juice
Cookies policy External Passing Juice
Accessibility Statement External Passing Juice
Advertise with us External Passing Juice
About us External Passing Juice
Coupons External Passing Juice
Careers External Passing Juice

SEO Keywords

Keywords Cloud

view picks best cpu premium codes published march nvidia coupons

Keywords Consistency

Keyword Content Title Keywords Description Headings
view 33
best 32
march 31
codes 30
published 29

Usability

Url

Domain : tomshardware.co.uk

Length : 18

Favicon

Great, your website has a favicon.

Printability

We could not find a Print-Friendly CSS.

Language

Good. Your declared language is en.

Dublin Core

This page does not take advantage of Dublin Core.

Document

Doctype

HTML 5

Encoding

Perfect. Your declared charset is UTF-8.

W3C Validity

Errors : 0

Warnings : 0

Email Privacy

Great no email address has been found in plain text!

Deprecated HTML

Great! We haven't found deprecated HTML tags in your HTML.

Speed Tips

Excellent, your website doesn't use nested tables.
Too bad, your website is using inline styles.
Great, your website has few CSS files.
Too bad, your website has too many JS files (more than 6).
Perfect, your website takes advantage of gzip.

Mobile

Mobile Optimization

Apple Icon
Meta Viewport Tag
Flash content

Optimization

XML Sitemap

Great, your website has an XML sitemap.

https://www.tomshardware.com/sitemap.xml
https://www.tomshardware.com/uk/sitemap.xml
https://www.tomshardware.com/sitemap-news.xml
https://www.tomshardware.com/uk/sitemap-news.xml

Robots.txt

https://tomshardware.co.uk/robots.txt

Great, your website has a robots.txt file.

Analytics

Missing

We didn't detect an analytics tool installed on this website.

Web analytics let you measure visitor activity on your website. You should have at least one analytics tool installed, but It can also be good to install a second in order to cross-check the data.

PageSpeed Insights


Device
Categories

Free SEO Testing Tool

Free SEO Testing Tool is a free SEO tool which provides you content analysis of the website.