Mistral Mistral Large 4 – Technology and Computing

via Mistral · Generated

  • AIMAC Debt 6.32
  • Cost $0.38
  • Total Violations 93
  • HTML Size 114 KB
  • Em Dashes 65

Screenshot

View Mistral Mistral Large 4 Technology and Computing page View Live Page

Accessibility Issues Found

93 Serious

  • color-contrast serious 93 instances

    Elements must meet minimum color contrast ratio thresholds

    Example HTML <span id="topbarDate">Thursday, November 12, 2026</span>

Artifacts

View Generated HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CorePulse — Signal over noise. Tech news, reviews &amp; computing resources</title>
<meta name="description" content="CorePulse — signal over noise. Tech news, hardware & software reviews, hands-on tutorials, and the Compare Lab for laptops, GPUs, CPUs and phones.">
<meta name="theme-color" content="#0A0C10">
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Crect width='64' height='64' rx='12' fill='%230A0C10'/%3E%3Ctext x='32' y='43' font-family='monospace' font-size='26' font-weight='bold' fill='%23C8F542' text-anchor='middle'%3ECP%3C/text%3E%3C/svg%3E">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Instrument+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet">
<style>
/* ============ Tokens & reset ============ */
:root{
  --bg:#0A0C10; --bg2:#0C0F15; --surface:#11141B; --surface2:#161A23;
  --line:rgba(255,255,255,.08); --line2:rgba(255,255,255,.16);
  --text:#EAEDEF; --text2:#A6AFBA; --text3:#6F7783;
  --accent:#C8F542; --accent-dim:rgba(200,245,66,.12);
  --amber:#FFB224; --red:#FF6B6B; --green:#7EE08A;
  --fd:'Space Grotesk',sans-serif; --fb:'Instrument Sans',sans-serif; --fm:'JetBrains Mono',monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:96px;color-scheme:dark}
body{background:var(--bg);color:var(--text);font-family:var(--fb);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--accent);color:#0A0C10}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:#232833;border-radius:6px}
::-webkit-scrollbar-track{background:var(--bg)}
h1,h2,h3,h4{font-family:var(--fd);letter-spacing:-.02em;line-height:1.15;font-weight:600}
.container{max-width:1200px;margin:0 auto;padding:0 24px}
.icon{width:18px;height:18px;flex-shrink:0}

/* ============ Shared components ============ */
.kicker{display:flex;align-items:center;gap:10px;font-family:var(--fm);font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.kicker::before{content:"";width:7px;height:7px;background:var(--accent);flex-shrink:0}
.kicker .idx{color:var(--text3)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:13px 24px;border-radius:8px;font-weight:700;font-size:14.5px;letter-spacing:.01em;transition:transform .2s,background .2s,border-color .2s,color .2s;white-space:nowrap}
.btn-primary{background:var(--accent);color:#0A0C10}
.btn-primary:hover{background:#D9FF66;transform:translateY(-1px)}
.btn-primary:active{transform:translateY(0)}
.btn-ghost{border:1px solid var(--line2);color:var(--text)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
.btn-sm{padding:9px 16px;font-size:13px;border-radius:7px}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--line);border-radius:8px;color:var(--text2);transition:.2s}
.icon-btn:hover{border-color:var(--accent);color:var(--accent)}
.text-link{display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:13.5px;color:var(--accent)}
.text-link .icon{width:15px;height:15px;transition:transform .25s}
.text-link:hover .icon{transform:translateX(4px)}
.tag{display:inline-block;font-family:var(--fm);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text2);border:1px solid var(--line2);border-radius:999px;padding:3px 10px}
.badge{display:inline-block;font-family:var(--fm);font-size:9.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;border-radius:999px;padding:3px 9px;border:1px solid}
.b-beginner{color:var(--green);border-color:rgba(126,224,138,.35)}
.b-inter{color:var(--amber);border-color:rgba(255,178,36,.35)}
.b-adv{color:var(--red);border-color:rgba(255,107,107,.4)}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.22,1,.36,1);transition-delay:var(--d,0s)}
.reveal.in{opacity:1;transform:none}
.live-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);position:relative;flex-shrink:0}
.live-dot::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid var(--accent);animation:pulse 2s ease-out infinite}
@keyframes pulse{0%{transform:scale(.4);opacity:1}100%{transform:scale(1.5);opacity:0}}

/* ============ Topbar & header ============ */
.topbar{border-bottom:1px solid var(--line);background:var(--bg)}
.topbar-in{display:flex;justify-content:space-between;align-items:center;height:34px;font-family:var(--fm);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text3)}
.tb-right{display:flex;align-items:center;gap:12px}
.tb-sep{width:1px;height:12px;background:var(--line2)}
.site-header{position:sticky;top:0;z-index:100;transition:background .3s,border-color .3s;border-bottom:1px solid transparent}
.site-header.scrolled{background:rgba(10,12,16,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom-color:var(--line)}
.header-inner{display:flex;align-items:center;gap:24px;height:74px}
.brand{display:flex;align-items:center;gap:12px}
.brand img{width:42px;height:42px;border-radius:9px;border:1px solid var(--line2)}
.brand-text{display:flex;flex-direction:column;line-height:1.15}
.brand-name{font-family:var(--fd);font-weight:700;font-size:21px;letter-spacing:-.02em}
.brand-name em{font-style:normal;color:var(--accent)}
.brand-tag{font-family:var(--fm);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--text3);margin-top:2px}
.main-nav{margin-left:auto;display:flex;gap:2px}
.main-nav a{position:relative;padding:9px 13px;font-size:14px;font-weight:500;color:var(--text2);transition:color .2s}
.main-nav a:hover{color:var(--text)}
.main-nav a::after{content:"";position:absolute;left:13px;right:13px;bottom:2px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.main-nav a.active{color:var(--accent)}
.main-nav a.active::after{transform:scaleX(1)}
.header-actions{display:flex;align-items:center;gap:10px}
.nav-toggle{display:none}
.nav-toggle .i-close{display:none}
.nav-toggle[aria-expanded="true"] .i-menu{display:none}
.nav-toggle[aria-expanded="true"] .i-close{display:block}

/* ============ Ticker ============ */
.ticker{display:flex;align-items:stretch;border-bottom:1px solid var(--line);background:var(--bg2);height:44px}
.ticker-label{display:flex;align-items:center;gap:9px;padding:0 18px;border-right:1px solid var(--line);font-family:var(--fm);font-size:10px;font-weight:700;letter-spacing:.18em;color:var(--accent);flex-shrink:0}
.ticker-viewport{overflow:hidden;flex:1;display:flex;align-items:center}
.ticker-track{display:flex;width:max-content;animation:tickerMove 52s linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}
@keyframes tickerMove{to{transform:translateX(-50%)}}
.ticker-group{display:flex;align-items:center;gap:34px;padding-right:34px}
.ticker-item{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text2);white-space:nowrap}
.ticker-item b{font-family:var(--fm);font-size:9.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.t-dot{width:5px;height:5px;background:var(--text3);opacity:.55;transform:rotate(45deg);flex-shrink:0}

/* ============ Hero ============ */
.hero{position:relative;padding:76px 0 68px}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:44px 44px;
  -webkit-mask-image:radial-gradient(120% 95% at 68% 0%,#000 32%,transparent 76%);
  mask-image:radial-gradient(120% 95% at 68% 0%,#000 32%,transparent 76%)}
.hero .container{position:relative}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center}
.hero-title{font-size:clamp(2.1rem,4.3vw,3.35rem);font-weight:700;line-height:1.07;margin-top:22px}
.hero-dek{font-size:17px;color:var(--text2);max-width:56ch;margin-top:20px}
.hero-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:26px;font-size:13px;color:var(--text2)}
.hero-meta img{width:36px;height:36px;border-radius:50%;border:1px solid var(--line2)}
.hero-meta .sep{color:var(--text3)}
.hero-meta .icon{width:14px;height:14px;color:var(--text3)}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.hero-media{position:relative}
.img-frame{overflow:hidden;border-radius:12px;border:1px solid var(--line2)}
.img-frame img{width:100%;height:100%;object-fit:cover;filter:saturate(.82) contrast(1.04);transition:filter .5s,transform .7s cubic-bezier(.22,1,.36,1)}
.img-frame:hover img{filter:none;transform:scale(1.025)}
.hero-media .img-frame{aspect-ratio:5/4}
.hero-chip{position:absolute;top:16px;left:16px;display:flex;align-items:center;gap:7px;background:rgba(10,12,16,.82);backdrop-filter:blur(6px);border:1px solid var(--accent);color:var(--accent);font-family:var(--fm);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:7px 11px;border-radius:6px}
.hero-chip .icon{width:12px;height:12px}
.hero-media figcaption{display:flex;gap:10px;font-size:12px;color:var(--text3);margin-top:12px;line-height:1.5}
.hero-media figcaption b{font-family:var(--fm);font-size:10px;letter-spacing:.1em;color:var(--text2);flex-shrink:0;padding-top:2px}

/* ============ Latest ============ */
.latest{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg2);padding:42px 0 48px}
.latest-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:10px}
.latest-title{display:flex;align-items:center;gap:12px;font-size:21px;font-weight:600}
.latest-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:56px}
.story{display:grid;grid-template-columns:auto auto 1fr auto;gap:14px;align-items:center;padding:15px 4px;border-top:1px solid var(--line);transition:background .2s}
.story:hover{background:rgba(255,255,255,.02)}
.story-time{font-family:var(--fm);font-size:11px;color:var(--text3)}
.story-tag{font-family:var(--fm);font-size:9.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.story-title{font-size:15px;font-weight:500;line-height:1.4;transition:color .2s}
.story:hover .story-title{color:var(--accent)}
.story .icon{width:14px;height:14px;color:var(--text3);transition:.25s}
.story:hover .icon{color:var(--accent);transform:translate(2px,-2px)}

/* ============ Sections ============ */
.section{padding:100px 0;border-top:1px solid var(--line)}
.section-head{display:grid;grid-template-columns:1.15fr .85fr;gap:24px 56px;align-items:end;margin-bottom:58px}
.section-head h2{font-size:clamp(1.75rem,3vw,2.45rem);font-weight:700;line-height:1.12;margin-top:18px}
.section-head-side p{font-size:15px;color:var(--text2);margin-bottom:14px}

/* ---- Trends ---- */
.trends-body{display:grid;grid-template-columns:1.08fr .92fr;gap:60px;align-items:start}
.trends-text p{font-size:16px;color:var(--text2);margin-bottom:20px}
.trends-text .lede{font-size:17.5px;color:var(--text)}
.trends-text .lede::first-letter{font-family:var(--fd);font-weight:700;font-size:3.4em;float:left;line-height:.82;color:var(--accent);margin:6px 12px 0 0}
.pull-quote{border-left:2px solid var(--accent);padding:6px 0 6px 26px;margin:30px 0}
.pull-quote p{font-family:var(--fd);font-weight:500;font-size:20.5px;line-height:1.42;color:var(--text);margin:0}
.pull-quote em{font-style:normal;color:var(--accent)}
.pull-quote cite{display:block;font-style:normal;font-family:var(--fm);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--text3);margin-top:14px}
.trends-media .img-frame{aspect-ratio:4/3.1}
.trends-media figcaption{display:flex;gap:10px;font-size:12px;color:var(--text3);margin-top:12px;line-height:1.5}
.trends-media figcaption b{font-family:var(--fm);font-size:10px;letter-spacing:.1em;color:var(--text2);flex-shrink:0;padding-top:2px}
.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);margin-top:70px;border:1px solid var(--line2);border-radius:14px;background:var(--surface);overflow:hidden}
.stat{padding:30px 28px}
.stat + .stat{border-left:1px solid var(--line)}
.stat-num{font-family:var(--fd);font-weight:700;font-size:clamp(2rem,3.4vw,2.7rem);color:var(--accent);letter-spacing:-.02em}
.stat-label{display:block;font-size:13px;color:var(--text2);margin-top:8px;line-height:1.5}

/* ---- Reviews ---- */
.review-feature{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line2);border-radius:14px;overflow:hidden;background:var(--surface)}
.review-feature-media{position:relative;min-height:360px}
.review-feature-media .img-frame{position:absolute;inset:0;border:0;border-radius:0}
.score-badge{position:absolute;left:20px;bottom:20px;background:rgba(10,12,16,.88);backdrop-filter:blur(8px);border:1px solid var(--accent);border-radius:12px;padding:14px 20px;text-align:center}
.score-num{font-family:var(--fd);font-weight:700;font-size:36px;color:var(--accent);line-height:1}
.score-sub{font-size:13px;color:var(--text3)}
.score-label{display:block;font-family:var(--fm);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--text2);margin-top:5px}
.review-feature-body{padding:36px 38px;display:flex;flex-direction:column}
.review-feature-body h3{font-size:clamp(1.3rem,2vw,1.6rem);font-weight:700;line-height:1.2;margin-top:16px}
.review-feature-body h3 a:hover{color:var(--accent)}
.review-excerpt{font-size:15px;color:var(--text2);margin-top:14px}
.pros-cons{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}
.pc-label{font-family:var(--fm);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--text3);margin-bottom:10px}
.pros-cons li{display:flex;gap:9px;align-items:flex-start;font-size:13.5px;color:var(--text2);margin-bottom:8px;line-height:1.45}
.pros-cons li .icon{width:14px;height:14px;margin-top:3px}
.pros li .icon{color:var(--accent)}
.cons li .icon{color:var(--red)}
.review-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:auto;padding-top:24px;border-top:1px solid var(--line);margin-top:26px}
.byline{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text2)}
.byline img{width:32px;height:32px;border-radius:50%;border:1px solid var(--line2)}
.review-list{margin-top:44px;border-top:1px solid var(--line2)}
.review-item{border-bottom:1px solid var(--line)}
.review-row{width:100%;display:grid;grid-template-columns:96px 1fr auto 18px;gap:22px;align-items:center;padding:18px 4px;text-align:left}
.review-thumb{width:96px;height:64px;object-fit:cover;border-radius:8px;border:1px solid var(--line);filter:saturate(.82);transition:filter .3s}
.review-row:hover .review-thumb{filter:none}
.review-row-title{display:block;font-family:var(--fd);font-weight:600;font-size:16.5px;margin-top:6px;transition:color .2s}
.review-row:hover .review-row-title{color:var(--accent)}
.review-row-sub{display:block;font-size:13.5px;color:var(--text2);margin-top:3px}
.review-row-score{text-align:right}
.score-num-sm{font-family:var(--fd);font-weight:700;font-size:21px;color:var(--accent)}
.score-bar{display:block;width:110px;height:4px;background:rgba(255,255,255,.09);border-radius:3px;margin:7px 0 6px auto;overflow:hidden}
.score-bar span{display:block;height:100%;background:var(--accent);border-radius:3px}
.review-date{font-family:var(--fm);font-size:10.5px;color:var(--text3)}
.acc-chev{color:var(--text3);transition:transform .35s,color .2s}
.acc.open .acc-chev{transform:rotate(180deg);color:var(--accent)}
.acc-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s cubic-bezier(.22,1,.36,1)}
.acc.open .acc-body{grid-template-rows:1fr}
.acc-body-in{overflow:hidden;min-height:0}
.review-more{padding:2px 4px 24px 118px}
.review-verdict{font-size:14.5px;color:var(--text2);max-width:72ch}
.review-verdict strong{color:var(--text)}
.bd-row{display:flex;flex-wrap:wrap;gap:12px 26px;margin-top:16px}
.bd{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--text3)}
.bd-bar{width:84px;height:4px;background:rgba(255,255,255,.09);border-radius:3px;overflow:hidden}
.bd-bar span{display:block;height:100%;background:var(--accent);border-radius:3px;opacity:.85}
.bd-val{font-family:var(--fm);font-size:11.5px;color:var(--text2)}
.methodology-note{margin-top:30px;font-size:13.5px;color:var(--text3)}
.methodology-note a{color:var(--accent);border-bottom:1px solid rgba(200,245,66,.35)}

/* ---- Compare Lab ---- */
.section-console{background:var(--bg2)}
.console{border:1px solid var(--line2);border-radius:14px;background:#0E1117;overflow:hidden;box-shadow:0 34px 90px -34px rgba(0,0,0,.65)}
.console-bar{display:flex;align-items:center;gap:8px;padding:13px 18px;border-bottom:1px solid var(--line);background:var(--surface)}
.c-dot{width:10px;height:10px;border-radius:50%}
.c-dot-r{background:#FF5F57}.c-dot-y{background:#FEBC2E}.c-dot-g{background:#28C840}
.console-title{font-family:var(--fm);font-size:12px;color:var(--text3);margin-left:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}
.console-ver{font-family:var(--fm);font-size:10px;color:var(--text3);border:1px solid var(--line);border-radius:5px;padding:2px 8px;flex-shrink:0}
.console-controls{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:20px 24px;border-bottom:1px solid var(--line)}
.seg{display:flex;gap:4px;background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:4px}
.seg-btn{padding:8px 15px;font-size:13px;font-weight:600;color:var(--text2);border-radius:6px;transition:.2s}
.seg-btn:hover{color:var(--text)}
.seg-btn.active{background:var(--accent);color:#0A0C10}
.selects{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}
.sel span{display:block;font-family:var(--fm);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--text3);margin-bottom:5px}
.sel select{appearance:none;-webkit-appearance:none;background:var(--bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236F7783' stroke-width='1.5' fill='none'/%3E%3C/svg%3E") no-repeat right 12px center;border:1px solid var(--line2);color:var(--text);padding:10px 34px 10px 13px;border-radius:7px;font-family:var(--fb);font-size:14px;min-width:210px;cursor:pointer;transition:border-color .2s}
.sel select:hover{border-color:var(--text3)}
.sel select:focus{outline:none;border-color:var(--accent)}
.vs{font-family:var(--fm);font-size:10px;font-weight:700;letter-spacing:.1em;color:var(--text3);border:1px solid var(--line);border-radius:999px;padding:5px 10px;margin-bottom:5px}
.console-actions{display:flex;gap:10px;margin-left:auto;flex-wrap:wrap}
.console-hint{width:100%;font-family:var(--fm);font-size:10.5px;letter-spacing:.06em;color:var(--text3)}
.console-result{padding:26px 24px 30px}
.cmp-empty{border:1px dashed var(--line2);border-radius:12px;padding:44px 24px;text-align:center;color:var(--text3);font-size:14.5px}
.cmp-empty .icon{width:26px;height:26px;color:var(--accent);margin:0 auto 12px}
.cmp-products{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:22px}
.cmp-product{display:flex;align-items:center;gap:15px;border:1px solid var(--line);border-radius:11px;padding:14px 16px;background:#10131A}
.cmp-product img{width:74px;height:56px;object-fit:cover;border-radius:7px;border:1px solid var(--line);filter:saturate(.85)}
.cmp-brand{font-family:var(--fm);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--text3)}
.cmp-product h4{font-size:15.5px;font-weight:600;margin-top:2px}
.cmp-price{font-size:13px;color:var(--text2)}
.cmp-score{margin-left:auto;font-family:var(--fd);font-weight:700;font-size:25px;color:var(--accent);border:1px solid rgba(200,245,66,.4);border-radius:9px;padding:6px 13px;flex-shrink:0}
.cmp-score span{font-size:12px;color:var(--text3);font-weight:500}
.cmp-table-wrap{overflow-x:auto}
.cmp-table{width:100%;min-width:560px;border-collapse:collapse}
.cmp-table th,.cmp-table td{padding:12px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.cmp-table thead th{font-family:var(--fm);font-size:10.5px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--text3);border-bottom:1px solid var(--line2)}
.cmp-table tbody th{font-size:13.5px;font-weight:500;color:var(--text2);width:190px}
.cmp-table td{width:37%}
.cmp-table .val{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}
.cmp-table td.win .val{color:var(--accent)}
.cmp-table .bar{display:block;height:4px;background:rgba(255,255,255,.08);border-radius:3px;margin-top:8px;overflow:hidden}
.cmp-table .bar span{display:block;height:100%;width:0;background:rgba(255,255,255,.28);border-radius:3px;transition:width .9s cubic-bezier(.22,1,.36,1) .1s}
.cmp-table td.win .bar span{background:var(--accent)}
.console-result.grown .bar span{width:var(--w)}
.cmp-score-row .val{font-family:var(--fd);font-weight:700;font-size:17px}
.cmp-verdict{display:flex;gap:13px;margin-top:22px;border-left:3px solid var(--accent);background:rgba(200,245,66,.05);border-radius:0 10px 10px 0;padding:17px 20px}
.cmp-verdict .icon{color:var(--accent);margin-top:2px}
.cmp-verdict p{font-size:14.5px;color:var(--text2)}
.cmp-verdict strong{color:var(--text)}
.console-result.flash{animation:flash .8s ease;border-radius:10px}
@keyframes flash{0%{box-shadow:0 0 0 0 rgba(200,245,66,.3)}100%{box-shadow:0 0 0 18px rgba(200,245,66,0)}}

/* ---- Tutorials + sidebar ---- */
.tutorials-layout{display:grid;grid-template-columns:1fr 344px;gap:60px;align-items:start}
.tutorial{border-bottom:1px solid var(--line)}
.tutorial-head{width:100%;display:grid;grid-template-columns:40px 1fr 96px 18px;gap:20px;align-items:center;padding:24px 4px;text-align:left}
.tutorial-index{font-family:var(--fm);font-size:13px;color:var(--text3)}
.tutorial-meta{display:flex;align-items:center;gap:12px;font-family:var(--fm);font-size:10.5px;letter-spacing:.05em;color:var(--text3);margin-bottom:8px}
.tutorial-title{display:block;font-family:var(--fd);font-weight:600;font-size:17.5px;line-height:1.3;transition:color .2s}
.tutorial-head:hover .tutorial-title{color:var(--accent)}
.tutorial-desc{display:block;font-size:14px;color:var(--text2);margin-top:6px;line-height:1.55}
.tutorial-thumb{width:96px;height:64px;object-fit:cover;border-radius:8px;border:1px solid var(--line);filter:saturate(.82);transition:filter .3s}
.tutorial-head:hover .tutorial-thumb{filter:none}
.tutorial-body-in{padding:2px 4px 26px 60px}
.tutorial-body-label{font-family:var(--fm);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text3);margin-bottom:12px}
.tutorial-body-in li{display:flex;gap:11px;font-size:14px;color:var(--text2);margin-bottom:9px;line-height:1.5}
.tutorial-body-in li::before{content:"";width:5px;height:5px;background:var(--accent);margin-top:8px;flex-shrink:0}
.tutorial-body-in .text-link{margin-top:8px}
.bench-strip{margin-top:44px;display:flex;gap:28px;align-items:center;justify-content:space-between;border:1px solid var(--line2);border-radius:14px;padding:30px 32px;background:var(--surface)}
.bench-kicker{display:flex;align-items:center;gap:8px;font-family:var(--fm);font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:9px}
.bench-kicker .icon{width:14px;height:14px}
.bench-strip h3{font-size:19.5px;font-weight:700}
.bench-strip > div > p{font-size:14px;color:var(--text2);margin-top:7px;max-width:54ch}
.bench-actions{display:flex;gap:10px;flex-shrink:0;flex-wrap:wrap}
.sidebar{display:flex;flex-direction:column;gap:24px}
.side-box{border:1px solid var(--line2);border-radius:14px;padding:24px;background:var(--surface)}
.side-box-head{display:flex;align-items:center;gap:10px;margin-bottom:4px}
.side-box-head .icon{width:16px;height:16px}
.side-box-head h3{font-size:15.5px;font-weight:700;flex:1}
.side-box-head .icon.hot{color:var(--accent)}
.side-box-head .icon.warn{color:var(--red)}
.side-link{font-family:var(--fm);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text3);transition:color .2s}
.side-link:hover{color:var(--accent)}
.side-sub{font-size:12px;color:var(--text3);margin-bottom:8px}
.deal{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 0;border-top:1px solid var(--line);cursor:pointer}
.deal:first-of-type{border-top:0}
.deal-name{font-size:14px;font-weight:600;transition:color .2s}
.deal:hover .deal-name{color:var(--accent)}
.deal-meta{display:block;font-size:11.5px;color:var(--text3);margin-top:2px}
.deal-price{text-align:right;flex-shrink:0}
.deal-price s{display:block;font-size:11.5px;color:var(--text3)}
.deal-now{font-family:var(--fd);font-weight:700;font-size:16px;color:var(--accent)}
.deal-save{font-family:var(--fm);font-size:10px;background:var(--accent-dim);color:var(--accent);border-radius:4px;padding:2px 6px;margin-left:7px}
.alert-item{display:block;padding:13px 0;border-top:1px solid var(--line)}
.alert-item:first-of-type{border-top:0}
.sev{display:inline-block;font-family:var(--fm);font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;border-radius:4px;padding:2.5px 8px;border:1px solid}
.sev-crit{color:var(--red);border-color:rgba(255,107,107,.4)}
.sev-high{color:var(--amber);border-color:rgba(255,178,36,.4)}
.alert-title{display:block;font-size:13.5px;line-height:1.45;margin-top:8px;color:var(--text)}
.alert-time{display:block;font-family:var(--fm);font-size:10.5px;color:var(--text3);margin-top:5px}
.spotlight img{width:46px;height:46px;border-radius:50%;border:1px solid var(--line2);margin-bottom:14px}
.spotlight blockquote{font-family:var(--fd);font-weight:500;font-size:15.5px;line-height:1.5;color:var(--text)}
.spot-name{font-size:12.5px;color:var(--text3);margin:12px 0 12px}
.spot-name strong{color:var(--text2);font-weight:600}

/* ---- Methodology / FAQ ---- */
.methodology-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start}
.methodology-copy h2{font-size:clamp(1.6rem,2.6vw,2.15rem);font-weight:700;line-height:1.15;margin:18px 0 22px}
.methodology-copy p{font-size:15.5px;color:var(--text2);margin-bottom:18px}
.methodology-stats{display:flex;margin-top:30px;border:1px solid var(--line2);border-radius:13px;overflow:hidden;background:var(--surface)}
.mstat{flex:1;padding:20px 22px}
.mstat + .mstat{border-left:1px solid var(--line)}
.mstat-num{font-family:var(--fd);font-weight:700;font-size:26px;color:var(--accent)}
.mstat-label{display:block;font-size:12px;color:var(--text2);margin-top:3px}
.faq-item{border:1px solid var(--line2);border-radius:11px;background:var(--surface);margin-bottom:12px;overflow:hidden}
.faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:19px 22px;text-align:left;font-weight:600;font-size:15.5px;transition:color .2s}
.faq-q:hover{color:var(--accent)}
.faq-a-in{padding:0 22px 20px;font-size:14.5px;color:var(--text2);line-height:1.65}

/* ---- Newsletter ---- */
.newsletter{border-top:1px solid var(--line);padding:104px 0;text-align:center;position:relative;overflow:hidden}
.newsletter::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);
  background-size:44px 44px;
  -webkit-mask-image:radial-gradient(70% 90% at 50% 100%,#000 25%,transparent 75%);
  mask-image:radial-gradient(70% 90% at 50% 100%,#000 25%,transparent 75%)}
.newsletter-in{position:relative;max-width:660px}
.newsletter .kicker{justify-content:center}
.newsletter h2{font-size:clamp(1.9rem,3.6vw,2.7rem);font-weight:700;margin-top:18px}
.newsletter-sub{font-size:16px;color:var(--text2);margin-top:16px}
.nl-form{display:flex;gap:10px;max-width:480px;margin:32px auto 0}
.nl-field{flex:1;display:flex;align-items:center;gap:11px;border:1px solid var(--line2);border-radius:9px;background:#0E1116;padding:0 16px;transition:border-color .2s}
.nl-field:focus-within{border-color:var(--accent)}
.nl-field.error{border-color:var(--red)}
.nl-field .icon{color:var(--text3;width:16px;height:16px}
.nl-field input{flex:1;background:none;border:0;outline:none;color:var(--text);font-family:var(--fb);font-size:15px;padding:14px 0}
.nl-field input::placeholder{color:var(--text3)}
.form-msg{min-height:20px;margin-top:12px;font-size:13px}
.form-msg.err{color:var(--red)}
.nl-fine{font-size:12px;color:var(--text3);margin-top:6px}
.nl-success{display:none;flex-direction:column;align-items:center;gap:12px;margin-top:32px;color:var(--text)}
.nl-success .icon{width:44px;height:44px;color:var(--accent)}
.nl-success p{font-size:15.5px;color:var(--text2)}
.nl-success strong{color:var(--accent)}

/* ---- Footer ---- */
.footer{border-top:1px solid var(--line2);background:var(--bg2);padding-top:76px}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:48px;padding-bottom:60px}
.footer-brand p{font-size:14px;color:var(--text2);margin-top:18px;max-width:36ch}
.footer-contact{margin-top:22px;display:flex;flex-direction:column;gap:11px}
.footer-contact li{display:flex;align-items:center;gap:11px;font-size:13.5px;color:var(--text2)}
.footer-contact .icon{width:15px;height:15px;color:var(--accent)}
.footer-col h4{font-family:var(--fm);font-size:10.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--text3);margin-bottom:18px}
.footer-col ul{display:flex;flex-direction:column;gap:11px}
.footer-col a{font-size:14px;color:var(--text2);transition:color .2s}
.footer-col a:hover{color:var(--accent)}
.socials{display:flex;gap:10px;margin-bottom:18px}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;border-top:1px solid var(--line);padding:24px 0;font-size:12.5px;color:var(--text3)}
.footer-legal{display:flex;gap:22px}
.footer-legal a{transition:color .2s}
.footer-legal a:hover{color:var(--accent)}

/* ---- Overlays: search / modal / toast / to-top ---- */
.search-overlay{position:fixed;inset:0;z-index:200;background:rgba(6,8,11,.72);backdrop-filter:blur(8px);display:none;justify-content:center;align-items:flex-start;padding:11vh 20px 20px}
.search-overlay.open{display:flex}
.search-panel{width:min(640px,100%);background:#0E1117;border:1px solid var(--line2);border-radius:15px;overflow:hidden;box-shadow:0 40px 100px -20px rgba(0,0,0,.7);animation:dropIn .25s cubic-bezier(.22,1,.36,1)}
@keyframes dropIn{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}
.search-head{display:flex;align-items:center;gap:13px;padding:16px 18px;border-bottom:1px solid var(--line);color:var(--text3)}
.search-head input{flex:1;background:none;border:0;outline:none;color:var(--text);font-family:var(--fb);font-size:16px}
.search-head kbd{font-family:var(--fm);font-size:10px;color:var(--text3);border:1px solid var(--line2);border-radius:5px;padding:3px 7px}
.search-results{max-height:52vh;overflow-y:auto;padding:8px}
.search-result{display:flex;align-items:center;gap:13px;padding:12px 14px;border-radius:9px;transition:background .15s}
.search-result:hover,.search-result.active{background:rgba(255,255,255,.05)}
.r-tag{font-family:var(--fm);font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);border:1px solid rgba(200,245,66,.35);border-radius:5px;padding:2.5px 8px;flex-shrink:0}
.r-title{font-size:14.5px}
.r-sec{margin-left:auto;font-family:var(--fm);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);flex-shrink:0}
.search-empty{padding:30px 20px;text-align:center;font-size:14px;color:var(--text3)}
.search-foot{display:flex;gap:18px;align-items:center;padding:11px 18px;border-top:1px solid var(--line);font-family:var(--fm);font-size:10px;letter-spacing:.06em;color:var(--text3)}
.search-foot kbd{font-family:var(--fm);font-size:9.5px;border:1px solid var(--line2);border-radius:4px;padding:1.5px 6px;margin-right:4px}
.search-foot span:last-child{margin-left:auto}
.modal{position:fixed;inset:0;z-index:210;background:rgba(6,8,11,.72);backdrop-filter:blur(8px);display:none;justify-content:center;align-items:center;padding:20px}
.modal.open{display:flex}
.modal-panel{width:min(580px,100%);max-height:82vh;overflow-y:auto;background:#0E1117;border:1px solid var(--line2);border-radius:15px;padding:30px;animation:dropIn .25s cubic-bezier(.22,1,.36,1)}
.modal-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}
.modal-head h3{font-size:21px;font-weight:700}
.modal-body p{font-size:14.5px;color:var(--text2);margin-bottom:14px;line-height:1.65}
.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,16px);z-index:300;display:flex;align-items:center;gap:11px;background:#161A22;border:1px solid var(--line2);border-left:3px solid var(--accent);border-radius:11px;padding:13px 20px;font-size:14px;box-shadow:0 18px 50px rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;max-width:min(480px,calc(100vw - 40px))}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast .icon{color:var(--accent);width:16px;height:16px}
.to-top{position:fixed;right:22px;bottom:22px;z-index:90;width:44px;height:44px;border-radius:10px;background:var(--surface2);border:1px solid var(--line2);color:var(--text2);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transform:translateY(10px);transition:.3s}
.to-top.show{opacity:1;pointer-events:auto;transform:none}
.to-top:hover{border-color:var(--accent);color:var(--accent)}

/* ============ Responsive ============ */
@media (max-width:1024px){
  .hero-grid,.trends-body,.review-feature,.tutorials-layout,.methodology-grid{grid-template-columns:1fr}
  .review-feature-media{min-height:280px}
  .section-head{grid-template-columns:1fr;align-items:start}
  .sidebar{display:grid;grid-template-columns:1fr 1fr;align-items:start}
  .footer-grid{grid-template-columns:1fr 1fr}
  .hero-media{order:-1}
  .hero-media .img-frame{aspect-ratio:16/9}
  .methodology-grid{gap:48px}
}
@media (max-width:920px){
  .main-nav{position:absolute;top:100%;left:0;right:0;display:none;flex-direction:column;gap:0;background:#0C0F14;border-bottom:1px solid var(--line2);padding:10px 24px 18px;margin:0}
  .main-nav.open{display:flex}
  .main-nav a{padding:13px 2px;border-top:1px solid var(--line);font-size:15px}
  .main-nav a::after{display:none}
  .nav-toggle{display:inline-flex}
}
@media (max-width:820px){
  .latest-grid{grid-template-columns:1fr}
  .stat-strip{grid-template-columns:1fr 1fr}
  .stat:nth-child(3){border-left:0}
  .stat:nth-child(n+3){border-top:1px solid var(--line)}
  .cmp-products{grid-template-columns:1fr}
  .sidebar{grid-template-columns:1fr}
  .bench-strip{flex-direction:column;align-items:flex-start}
}
@media (max-width:720px){
  .topbar{display:none}
  .brand-tag{display:none}
  .header-cta{display:none}
  .section{padding:72px 0}
  .hero{padding:56px 0 52px}
  .review-row{grid-template-columns:1fr auto 16px}
  .review-thumb{display:none}
  .review-more{padding-left:4px}
  .tutorial-head{grid-template-columns:1fr 18px}
  .tutorial-index,.tutorial-thumb{display:none}
  .tutorial-body-in{padding-left:4px}
  .selects{width:100%}
  .sel{flex:1}
  .sel select{width:100%;min-width:0}
  .console-actions{margin-left:0;width:100%}
  .console-actions .btn{flex:1}
  .pros-cons{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;gap:36px}
  .nl-form{flex-direction:column}
  .footer-bottom{justify-content:center;text-align:center}
}
@media (max-width:520px){
  .stat-strip{grid-template-columns:1fr}
  .stat + .stat{border-left:0;border-top:1px solid var(--line)}
  .methodology-stats{flex-direction:column}
  .mstat + .mstat{border-left:0;border-top:1px solid var(--line)}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none}
}
</style>
</head>
<body>

<!-- SVG icon sprite -->
<svg xmlns="http://www.w3.org/2000/svg" style="display:none" aria-hidden="true">
  <symbol id="i-search" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></symbol>
  <symbol id="i-menu" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></symbol>
  <symbol id="i-close" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></symbol>
  <symbol id="i-arrow-r" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></symbol>
  <symbol id="i-arrow-ur" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="7" y1="17" x2="17" y2="7"/><polyline points="7 7 17 7 17 17"/></symbol>
  <symbol id="i-arrow-up" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="19" x2="12" y2="5"/><polyline points="5 12 12 5 19 12"/></symbol>
  <symbol id="i-clock" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></symbol>
  <symbol id="i-chev-d" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></symbol>
  <symbol id="i-check" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></symbol>
  <symbol id="i-minus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round"><line x1="5" y1="12" x2="19" y2="12"/></symbol>
  <symbol id="i-shield" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></symbol>
  <symbol id="i-flame" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z"/></symbol>
  <symbol id="i-mail" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="4" width="20" height="16" rx="2"/><polyline points="22,6 12,13 2,6"/></symbol>
  <symbol id="i-zap" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/></symbol>
  <symbol id="i-alert" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></symbol>
  <symbol id="i-phone" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z"/></symbol>
  <symbol id="i-pin" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></symbol>
  <symbol id="i-cpu" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2"/><rect x="9" y="9" width="6" height="6"/><line x1="9" y1="1" x2="9" y2="4"/><line x1="15" y1="1" x2="15" y2="4"/><line x1="9" y1="20" x2="9" y2="23"/><line x1="15" y1="20" x2="15" y2="23"/><line x1="20" y1="9" x2="23" y2="9"/><line x1="20" y1="15" x2="23" y2="15"/><line x1="1" y1="9" x2="4" y2="9"/><line x1="1" y1="15" x2="4" y2="15"/></symbol>
  <symbol id="i-download" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></symbol>
  <symbol id="i-x-brand" viewBox="0 0 24 24" fill="currentColor" stroke="none"><path d="M18.9 1.15h3.68l-8.04 9.19L24 22.85h-7.41l-5.8-7.58-6.64 7.58H.73l8.6-9.83L0 1.15h7.59l5.24 6.93 6.07-6.93zm-1.29 19.5h2.04L6.49 3.24H4.3l13.31 17.41z"/></symbol>
  <symbol id="i-youtube" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-1.92 29 29 0 0 0 .46-5.33 29 29 0 0 0-.46-5.33z"/><polygon points="9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02" fill="currentColor" stroke="none"/></symbol>
  <symbol id="i-github" viewBox="0 0 24 24" fill="currentColor" stroke="none"><path d="M12 .5C5.65.5.5 5.65.5 12c0 5.08 3.29 9.39 7.86 10.91.58.11.79-.25.79-.56 0-.27-.01-1.17-.02-2.12-3.2.7-3.88-1.36-3.88-1.36-.52-1.33-1.28-1.68-1.28-1.68-1.04-.71.08-.7.08-.7 1.15.08 1.76 1.19 1.76 1.19 1.03 1.75 2.69 1.25 3.34.95.1-.74.4-1.25.72-1.54-2.55-.29-5.24-1.28-5.24-5.68 0-1.26.45-2.28 1.19-3.09-.12-.29-.52-1.46.11-3.05 0 0 .97-.31 3.18 1.18a11.1 11.1 0 0 1 5.8 0c2.2-1.49 3.17-1.18 3.17-1.18.63 1.59.23 2.76.11 3.05.74.81 1.19 1.83 1.19 3.09 0 4.41-2.69 5.38-5.25 5.66.41.35.77 1.05.77 2.12 0 1.53-.01 2.76-.01 3.14 0 .31.21.67.8.56A10.52 10.52 0 0 0 23.5 12C23.5 5.65 18.35.5 12 .5z"/></symbol>
  <symbol id="i-rss" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 11a9 9 0 0 1 9 9"/><path d="M4 4a16 16 0 0 1 16 16"/><circle cx="5" cy="19" r="1" fill="currentColor"/></symbol>
</svg>

<!-- Topbar -->
<div class="topbar">
  <div class="container topbar-in">
    <span id="topbarDate">—</span>
    <span class="tb-right"><span>San Francisco HQ</span><span class="tb-sep"></span><span><span id="utcClock">--:--:--</span> UTC</span></span>
  </div>
</div>

<!-- Header -->
<header class="site-header" id="siteHeader">
  <div class="container header-inner">
    <a class="brand" href="#top" aria-label="CorePulse home">
      <img src="https://placehold.co/88x88/161A23/C8F542?text=CP&font=montserrat" alt="CorePulse logo" width="42" height="42">
      <span class="brand-text">
        <span class="brand-name">Core<em>Pulse</em></span>
        <span class="brand-tag">Signal over noise.</span>
      </span>
    </a>
    <nav class="main-nav" id="mainNav" aria-label="Primary">
      <a href="#latest" class="nav-link">News</a>
      <a href="#reviews" class="nav-link">Reviews</a>
      <a href="#tutorials" class="nav-link">Tutorials</a>
      <a href="#compare" class="nav-link">Compare</a>
      <a href="#shop" class="nav-link">Shop</a>
      <a href="#shop" class="nav-link">Deals</a>
      <a href="#methodology" class="nav-link">About</a>
    </nav>
    <div class="header-actions">
      <button class="icon-btn" id="searchOpen" aria-label="Search CorePulse"><svg class="icon"><use href="#i-search"/></svg></button>
      <a href="#newsletter" class="btn btn-primary btn-sm header-cta">Subscribe</a>
      <button class="icon-btn nav-toggle" id="navToggle" aria-label="Toggle menu" aria-expanded="false">
        <svg class="icon i-menu"><use href="#i-menu"/></svg>
        <svg class="icon i-close"><use href="#i-close"/></svg>
      </button>
    </div>
  </div>
</header>

<!-- Live ticker -->
<div class="ticker" aria-label="Breaking headlines">
  <div class="ticker-label"><span class="live-dot"></span>LIVE</div>
  <div class="ticker-viewport">
    <div class="ticker-track" id="tickerTrack">
      <div class="ticker-group">
        <span class="ticker-item"><b>AI</b>Open-weight models close the gap with frontier systems in blind evals</span><span class="t-dot"></span>
        <span class="ticker-item"><b>CPUs</b>Intel teases 40% NPU throughput gain on next-gen laptop silicon</span><span class="t-dot"></span>
        <span class="ticker-item"><b>Memory</b>DDR5 spot prices fall 22% quarter-over-quarter</span><span class="t-dot"></span>
        <span class="ticker-item"><b>Software</b>Fedora 42 ships with a fully redesigned installer</span><span class="t-dot"></span>
        <span class="ticker-item"><b>Security</b>Major platforms complete the passkey-only sign-in rollout</span><span class="t-dot"></span>
        <span class="ticker-item"><b>Cloud</b>Spot instance prices spike as cloud computing demand outpaces supply</span><span class="t-dot"></span>
        <span class="ticker-item"><b>Displays</b>360 Hz QD-OLED panels hit $649 at retail</span><span class="t-dot"></span>
        <span class="ticker-item"><b>RISC-V</b>First RISC-V laptops reach retail shelves in Japan</span><span class="t-dot"></span>
      </div>
    </div>
  </div>
</div>

<main id="top">

  <!-- ============ HERO ============ -->
  <section class="hero">
    <div class="container hero-grid">
      <div class="hero-copy reveal in">
        <p class="kicker">Featured · Industry Analysis</p>
        <h1 class="hero-title">The chiplet wars enter their endgame — and your next upgrade will pay for it</h1>
        <p class="hero-dek">Advanced packaging capacity is booked out through 2026, UCIe links are finally shipping in volume, and the humble compatibility matrix has quietly become the most important document in your upgrade plan. We mapped the supply chain — here's what changes for builders, buyers, and anyone keeping a fleet alive for five years.</p>
        <div class="hero-meta">
          <img src="https://i.pravatar.cc/80?u=mara" alt="Portrait of Mara Ellison">
          <span>By <strong>Mara Ellison</strong>, Senior Hardware Editor</span>
          <span class="sep">·</span>
          <span>Mar 14, 2025</span>
          <span class="sep">·</span>
          <span style="display:inline-flex;align-items:center;gap:6px"><svg class="icon"><use href="#i-clock"/></svg>12 min read</span>
        </div>
        <div class="hero-cta">
          <a href="#trends" class="btn btn-primary">Read the analysis <svg class="icon" style="width:15px;height:15px"><use href="#i-arrow-r"/></svg></a>
          <a href="#compare" class="btn btn-ghost"><svg class="icon" style="width:15px;height:15px"><use href="#i-zap"/></svg> Try the Compare Lab</a>
        </div>
      </div>
      <figure class="hero-media reveal in" style="--d:.12s">
        <div class="img-frame">
          <img src="https://picsum.photos/seed/cp-hero-chip/1100/880.jpg" alt="Close-up of advanced semiconductor silicon" loading="eager">
        </div>
        <div class="hero-chip"><svg class="icon"><use href="#i-zap"/></svg>Cover story</div>
        <figcaption><b>FIG. 01</b><span>A 3nm wafer at a advanced-packaging facility. Lithography is no longer the constraint on flagship silicon — packaging is.</span></figcaption>
      </figure>
    </div>
  </section>

  <!-- ============ LATEST ============ -->
  <section class="latest" id="latest">
    <div class="container">
      <div class="latest-head reveal">
        <h2 class="latest-title"><span class="live-dot"></span>The Latest</h2>
        <a href="#trends" class="text-link">All news <svg class="icon"><use href="#i-arrow-r"/></svg></a>
      </div>
      <div class="latest-grid stagger">
        <a class="story reveal" href="#trends"><span class="story-time">09:41</span><span class="story-tag">AI</span><span class="story-title">Open-weight models cross the quality threshold in our blind evals</span><svg class="icon"><use href="#i-arrow-ur"/></svg></a>
        <a class="story reveal" href="#reviews"><span class="story-time">08:15</span><span class="story-tag">CPUs</span><span class="story-title">Intel teases 40% NPU throughput gain with next-gen laptop silicon</span><svg class="icon"><use href="#i-arrow-ur"/></svg></a>
        <a class="story reveal" href="#shop"><span class="story-time">07:52</span><span class="story-tag">Storage</span><span class="story-title">DDR5 spot prices drop 22% — the case for a memory upgrade just got stronger</span><svg class="icon"><use href="#i-arrow-ur"/></svg></a>
        <a class="story reveal" href="#reviews"><span class="story-time">07:03</span><span class="story-tag">Software</span><span class="story-title">Fedora 42 lands with the installer it always deserved</span><svg class="icon"><use href="#i-arrow-ur"/></svg></a>
        <a class="story reveal" href="#shop"><span class="story-time">06:30</span><span class="story-tag">Security</span><span class="story-title">Passkeys go default: what changes for your password manager</span><svg class="icon"><use href="#i-arrow-ur"/></svg></a>
        <a class="story reveal" href="#trends"><span class="story-time">05:58</span><span class="story-tag">Cloud</span><span class="story-title">Spot prices spike as cloud computing demand outpaces supply</span><svg class="icon"><use href="#i-arrow-ur"/></svg></a>
      </div>
    </div>
  </section>

  <!-- ============ 01 TRENDS ============ -->
  <section class="section" id="trends">
    <div class="container">
      <div class="section-head reveal">
        <div>
          <p class="kicker"><span class="idx">01</span>Industry Trends</p>
          <h2>Three shifts quietly rewriting the computing stack</h2>
        </div>
        <div class="section-head-side">
          <p>Edge inference is leaving the data center, memory — not silicon — is the real bottleneck, and open hardware is having its main-character moment. These are the signals that survive the hype cycle.</p>
          <a href="#methodology" class="text-link">How we track trends <svg class="icon"><use href="#i-arrow-r"/></svg></a>
        </div>
      </div>
      <div class="trends-body">
        <div class="trends-text reveal">
          <p class="lede">For a decade, progress in computing arrived exactly the way the keynote promised: a faster chip, a thinner chassis, a bigger number on the box. That era is ending. The interesting shifts of the next few years won't be headline specs at all — they'll be structural: where inference runs, who controls memory, and which instruction sets your software can safely assume exist.</p>
          <p>First, the edge. Dedicated NPUs are migrating from marketing bullet point to baseline silicon, and the user interface of software itself is shifting from chat windows to ambient, on-device assistance. For IT buyers, that changes the compatibility matrix you need to validate before a single laptop ships: a machine that can't run the on-device models your users expect isn't a bargain, it's a three-year liability with a battery.</p>
          <blockquote class="pull-quote">
            <p>“The most important spec sheet of 2026 isn't printed on the box — it's the <em>compatibility matrix</em> behind it.”</p>
            <cite>— Mara Ellison, Senior Hardware Editor</cite>
          </blockquote>
          <p>Second, memory. DDR5 spot prices have fallen roughly a fifth quarter-over-quarter, CXL is shipping in volume, and the economics of cloud computing are being rewritten in real time. A growing share of inference workloads is quietly moving back on-premises — not out of nostalgia, but because the total cost of ownership math finally favors it. We crunched the numbers on where the crossover actually sits in 2025.</p>
          <p>Third, openness. Ratified RISC-V profiles have grown from 9 in 2022 to 41 today, and the toolchain — compilers, kernels, CI/CD pipelines — has matured from hobbyist curiosity into a legitimate target. For developers, that means a credible, royalty-free path from prototype to production. Sovereignty, it turns out, is a feature.</p>
        </div>
        <figure class="trends-media reveal" style="--d:.1s">
          <div class="img-frame"><img src="https://picsum.photos/seed/cp-trend-fab/900/700.jpg" alt="Semiconductor fabrication facility" loading="lazy"></div>
          <figcaption><b>FIG. 02</b><span>Advanced-packaging capacity is reportedly booked through 2026, pushing lead times for flagship GPUs past eight weeks.</span></figcaption>
        </figure>
      </div>
      <div class="stat-strip stagger">
        <div class="stat reveal"><span class="stat-num">68%</span><span class="stat-label">of laptops shipping in 2026 will include a dedicated NPU</span></div>
        <div class="stat reveal"><span class="stat-num">22%</span><span class="stat-label">quarter-over-quarter drop in DDR5 spot prices</span></div>
        <div class="stat reveal"><span class="stat-num">3.4×</span><span class="stat-label">projected growth in edge inference workloads through 2028</span></div>
        <div class="stat reveal"><span class="stat-num">41</span><span class="stat-label">ratified RISC-V profiles, up from 9 in 2022</span></div>
      </div>
    </div>
  </section>

  <!-- ============ 02 REVIEWS ============ -->
  <section class="section" id="reviews">
    <div class="container">
      <div class="section-head reveal">
        <div>
          <p class="kicker"><span class="idx">02</span>Reviews</p>
          <h2>Tested in-house. Scored without mercy.</h2>
        </div>
        <div class="section-head-side">
          <p>Every product is bought at retail, benched for three weeks minimum, and scored against a rubric that hasn't changed since 2019. No sponsored scores. Ever. Click any entry for the verdict and score breakdown.</p>
          <a href="#reviews" class="text-link demo-link">Full review archive <svg class="icon"><use href="#i-arrow-r"/></svg></a>
        </div>
      </div>

      <article class="review-feature acc reveal">
        <div class="review-feature-media">
          <div class="img-frame"><img src="https://picsum.photos/seed/cp-review-9950x/1000/760.jpg" alt="AMD Ryzen 9 9950X3D processor test bench" loading="lazy"></div>
          <div class="score-badge"><span class="score-num">9.4</span> <span class="score-sub">/ 10</span><span class="score-label">CorePulse score</span></div>
        </div>
        <div class="review-feature-body">
          <div><span class="tag">CPU</span> <span class="tag">14 min read</span> <span class="tag">Mar 10, 2025</span></div>
          <h3><a href="#reviews">Ryzen 9 9950X3D review: the gaming crown, defended — for now</a></h3>
          <p class="review-excerpt">AMD's second 3D V-Cache gaming chip is less a revolution than a coronation: 16 Zen 5 cores, 128 MB of stacked cache, and a lead in 1% lows that survives every counter-punch Intel has ready. We ran it through the full 42-test suite — thermals, acoustics, and all — to see if the crown actually fits.</p>
          <div class="pros-cons">
            <div>
              <p class="pc-label">What we liked</p>
              <ul class="pros">
                <li><svg class="icon"><use href="#i-check"/></svg>Class-leading 1% lows in cache-bound titles</li>
                <li><svg class="icon"><use href="#i-check"/></svg>Best-in-class efficiency at 1080p high refresh</li>
                <li><svg class="icon"><use href="#i-check"/></svg>AM5 support promised through at least 2027</li>
              </ul>
            </div>
            <div>
              <p class="pc-label">What held it back</p>
              <ul class="cons">
                <li><svg class="icon"><use href="#i-minus"/></svg>Runs hot under sustained all-core AVX loads</li>
                <li><svg class="icon"><use href="#i-minus"/></svg>Platform cost creeps toward HEDT territory</li>
                <li><svg class="icon"><use href="#i-minus"/></svg>No bundled cooler at this price</li>
              </ul>
            </div>
          </div>
          <div class="acc-body"><div class="acc-body-in">
            <p class="review-excerpt" style="margin-top:20px">Under the hood, the 9950X3D pairs 16 Zen 5 cores with 128 MB of stacked 3D V-Cache. In our suite it traded blows with Intel's best in lightly threaded workloads and simply walked away in anything that fits in cache — which, in modern games, is most of them. The scaling isn't free: all-core AVX work pushes the chip past 160 W and demands a serious cooler.</p>
            <p class="review-excerpt">The verdict is simple. If your workload is cache-sensitive — gaming, simulation, compilation — this is the default recommendation at any price. If you render video all day, buy the 9950X, pocket the difference, and put it toward a GPU. The crown fits, but it isn't universal.</p>
          </div></div>
          <div class="review-foot">
            <div class="byline">
              <img src="https://i.pravatar.cc/80?u=devon" alt="Portrait of Devon Reyes">
              <span>By <strong>Devon Reyes</strong> · Hardware Editor</span>
            </div>
            <button class="btn btn-primary acc-head" data-more="Read the full review" data-less="Hide the full review" aria-expanded="false"><span data-swap>Read the full review</span></button>
          </div>
        </div>
      </article>

      <div class="review-list stagger">
        <div class="review-item acc reveal">
          <button class="review-row acc-head" aria-expanded="false">
            <img class="review-thumb" src="https://picsum.photos/seed/cp-monitor-oled/240/160.jpg" alt="Samsung Odyssey OLED G8 monitor" loading="lazy">
            <span><span class="tag">Monitor</span><span class="review-row-title">Samsung Odyssey OLED G8 (2025)</span><span class="review-row-sub">49 inches of QD-OLED perfection — with a price that still stings.</span></span>
            <span class="review-row-score"><span class="score-num-sm">8.8</span><span class="score-bar"><span style="width:88%"></span></span><span class="review-date">Mar 8, 2025</span></span>
            <svg class="icon acc-chev"><use href="#i-chev-d"/></svg>
          </button>
          <div class="acc-body"><div class="acc-body-in"><div class="review-more">
            <p class="review-verdict"><strong>Verdict —</strong> If your desk has room for a 49-inch curve and your GPU can feed 5,120 pixels, this is the OLED to beat: motion clarity is flawless and the 240 Hz mode is genuinely usable, not a spec-sheet garnish. Everyone else should wait for the 34-inch refresh.</p>
            <div class="bd-row">
              <div class="bd"><span>Picture quality</span><span class="bd-bar"><span style="width:95%"></span></span><span class="bd-val">9.5</span></div>
              <div class="bd"><span>Motion clarity</span><span class="bd-bar"><span style="width:98%"></span></span><span class="bd-val">9.8</span></div>
              <div class="bd"><span>HDR handling</span><span class="bd-bar"><span style="width:92%"></span></span><span class="bd-val">9.2</span></div>
              <div class="bd"><span>OSD software</span><span class="bd-bar"><span style="width:76%"></span></span><span class="bd-val">7.6</span></div>
              <div class="bd"><span>Value</span><span class="bd-bar"><span style="width:64%"></span></span><span class="bd-val">6.4</span></div>
            </div>
          </div></div></div>
        </div>

        <div class="review-item acc reveal">
          <button class="review-row acc-head" aria-expanded="false">
            <img class="review-thumb" src="https://picsum.photos/seed/cp-fedora42/240/160.jpg" alt="Fedora 42 Linux desktop" loading="lazy">
            <span><span class="tag">Software</span><span class="review-row-title">Fedora 42 Workstation</span><span class="review-row-sub">The rare distro release that removes friction instead of adding features.</span></span>
            <span class="review-row-score"><span class="score-num-sm">9.1</span><span class="score-bar"><span style="width:91%"></span></span><span class="review-date">Mar 5, 2025</span></span>
            <svg class="icon acc-chev"><use href="#i-chev-d"/></svg>
          </button>
          <div class="acc-body"><div class="acc-body-in"><div class="review-more">
            <p class="review-verdict"><strong>Verdict —</strong> Fedora 42 is the rare release that makes things simpler: a redesigned installer that finally respects dark mode, PipeWire as the universal audio layer, and a default Wayland session that no longer punishes NVIDIA owners. It's our new reference desktop for reviews.</p>
            <div class="bd-row">
              <div class="bd"><span>Installer</span><span class="bd-bar"><span style="width:96%"></span></span><span class="bd-val">9.6</span></div>
              <div class="bd"><span>Performance</span><span class="bd-bar"><span style="width:92%"></span></span><span class="bd-val">9.2</span></div>
              <div class="bd"><span>Desktop UX</span><span class="bd-bar"><span style="width:90%"></span></span><span class="bd-val">9.0</span></div>
              <div class="bd"><span>Documentation</span><span class="bd-bar"><span style="width:88%"></span></span><span class="bd-val">8.8</span></div>
              <div class="bd"><span>Hardware support</span><span class="bd-bar"><span style="width:94%"></span></span><span class="bd-val">9.4</span></div>
            </div>
          </div></div></div>
        </div>

        <div class="review-item acc reveal">
          <button class="review-row acc-head" aria-expanded="false">
            <img class="review-thumb" src="https://picsum.photos/seed/cp-keychron-q1/240/160.jpg" alt="Keychron Q1 Max mechanical keyboard" loading="lazy">
            <span><span class="tag">Peripherals</span><span class="review-row-title">Keychron Q1 Max</span><span class="review-row-sub">A machined aluminium tank that types like a board half its price.</span></span>
            <span class="review-row-score"><span class="score-num-sm">8.5</span><span class="score-bar"><span style="width:85%"></span></span><span class="review-date">Feb 27, 2025</span></span>
            <svg class="icon acc-chev"><use href="#i-chev-d"/></svg>
          </button>
          <div class="acc-body"><div class="acc-body-in"><div class="review-more">
            <p class="review-verdict"><strong>Verdict —</strong> The Q1 Max is what happens when a company machines a keyboard like a mechanical watch: full aluminium body, gasket mount, factory-lubed stabilizers, and QMK/VIA wireless that just works. It's heavy enough to anchor a desk and good enough to end the endgame search.</p>
            <div class="bd-row">
              <div class="bd"><span>Build quality</span><span class="bd-bar"><span style="width:96%"></span></span><span class="bd-val">9.6</span></div>
              <div class="bd"><span>Typing feel</span><span class="bd-bar"><span style="width:94%"></span></span><span class="bd-val">9.4</span></div>
              <div class="bd"><span>Software (VIA)</span><span class="bd-bar"><span style="width:90%"></span></span><span class="bd-val">9.0</span></div>
              <div class="bd"><span>Wireless</span><span class="bd-bar"><span style="width:88%"></span></span><span class="bd-val">8.8</span></div>
              <div class="bd"><span>Value</span><span class="bd-bar"><span style="width:79%"></span></span><span class="bd-val">7.9</span></div>
            </div>
          </div></div></div>
        </div>

        <div class="review-item acc reveal">
          <button class="review-row acc-head" aria-expanded="false">
            <img class="review-thumb" src="https://picsum.photos/seed/cp-sony-xm6/240/160.jpg" alt="Sony WH-1000XM6 headphones" loading="lazy">
            <span><span class="tag">Audio</span><span class="review-row-title">Sony WH-1000XM6 (early sample)</span><span class="review-row-sub">Sony's six-year winning streak continues — barely, but it continues.</span></span>
            <span class="review-row-score"><span class="score-num-sm">8.9</span><span class="score-bar"><span style="width:89%"></span></span><span class="review-date">Feb 21, 2025</span></span>
            <svg class="icon acc-chev"><use href="#i-chev-d"/></svg>
          </button>
          <div class="acc-body"><div class="acc-body-in"><div class="review-more">
            <p class="review-verdict"><strong>Verdict —</strong> The XM6 doesn't reinvent the formula — it doesn't need to. Noise cancellation remains the best in the business, the new reference-grade drivers close the gap with planar magnetics, and the redesigned case finally folds flat again. The price is the only thing that hurts.</p>
            <div class="bd-row">
              <div class="bd"><span>Noise cancelling</span><span class="bd-bar"><span style="width:97%"></span></span><span class="bd-val">9.7</span></div>
              <div class="bd"><span>Sound</span><span class="bd-bar"><span style="width:90%"></span></span><span class="bd-val">9.0</span></div>
              <div class="bd"><span>Comfort</span><span class="bd-bar"><span style="width:93%"></span></span><span class="bd-val">9.3</span></div>
              <div class="bd"><span>App</span><span class="bd-bar"><span style="width:84%"></span></span><span class="bd-val">8.4</span></div>
              <div class="bd"><span>Value</span><span class="bd-bar"><span style="width:81%"></span></span><span class="bd-val">8.1</span></div>
            </div>
          </div></div></div>
        </div>
      </div>
      <p class="methodology-note">Every product is purchased at retail and tested for a minimum of three weeks on our standardized harness. When a BIOS update or driver changes a result, the review is re-run and the changelog says so. <a href="#methodology">Read the full methodology</a>.</p>
    </div>
  </section>

  <!-- ============ 03 COMPARE LAB ============ -->
  <section class="section section-console" id="compare">
    <div class="container">
      <div class="section-head reveal">
        <div>
          <p class="kicker"><span class="idx">03</span>Interactive · Compare Lab</p>
          <h2>Two products. Every spec. Zero marketing.</h2>
        </div>
        <div class="section-head-side">
          <p>Pick a category, pick two products, and the numbers do the talking. Bars are normalized per row, winners are highlighted automatically, and the verdict is generated from the data — not the press release.</p>
          <a href="#methodology" class="text-link">How scoring works <svg class="icon"><use href="#i-arrow-r"/></svg></a>
        </div>
      </div>
      <div class="console reveal">
        <div class="console-bar">
          <span class="c-dot c-dot-r"></span><span class="c-dot c-dot-y"></span><span class="c-dot c-dot-g"></span>
          <span class="console-title">corepulse@compare-lab:~$ ./specimens --head-to-head</span>
          <span class="console-ver">v2.4.1</span>
        </div>
        <div class="console-controls">
          <div class="seg" role="tablist" aria-label="Product category">
            <button class="seg-btn active" data-cat="laptop" role="tab" aria-selected="true">Laptops</button>
            <button class="seg-btn" data-cat="gpu" role="tab" aria-selected="false">GPUs</button>
            <button class="seg-btn" data-cat="cpu" role="tab" aria-selected="false">CPUs</button>
            <button class="seg-btn" data-cat="phone" role="tab" aria-selected="false">Phones</button>
          </div>
          <div class="selects">
            <label class="sel"><span>Product A</span><select id="selectA" aria-label="First product"></select></label>
            <span class="vs">VS</span>
            <label class="sel"><span>Product B</span><select id="selectB" aria-label="Second product"></select></label>
          </div>
          <div class="console-actions">
            <button class="btn btn-primary" id="compareBtn">Compare now</button>
            <button class="btn btn-ghost" id="surpriseBtn"><svg class="icon" style="width:15px;height:15px"><use href="#i-zap"/></svg> Surprise me</button>
            <button class="btn btn-ghost" id="csvBtn"><svg class="icon" style="width:15px;height:15px"><use href="#i-download"/></svg> Export CSV</button>
          </div>
          <span class="console-hint">Scores come from our own bench · specs normalized per row · works fully offline</span>
        </div>
        <div class="console-result" id="compareResult" aria-live="polite">
          <div class="cmp-empty"><svg class="icon"><use href="#i-cpu"/></svg><p>Select a category and two products — the head-to-head renders right here.</p></div>
        </div>
      </div>
    </div>
  </section>

  <!-- ============ 04 TUTORIALS + SIDEBAR ============ -->
  <section class="section" id="tutorials">
    <div class="container">
      <div class="section-head reveal">
        <div>
          <p class="kicker"><span class="idx">04</span>Tutorials &amp; Computing Resources</p>
          <h2>Level up your machine, one guide at a time</h2>
        </div>
        <div class="section-head-side">
          <p>Practical, tested guides written by the people who run the hardware — from kernel parameters to a full self-hosted stack. No affiliate fluff, no 4,000-word life stories. Expand a guide for the roadmap.</p>
          <a href="#tutorials" class="text-link demo-link">All tutorials <svg class="icon"><use href="#i-arrow-r"/></svg></a>
        </div>
      </div>
      <div class="tutorials-layout">
        <div class="tutorials-main stagger">
          <div class="tutorial acc reveal">
            <button class="tutorial-head acc-head" aria-expanded="false">
              <span class="tutorial-index">01</span>
              <span>
                <span class="tutorial-meta"><span class="badge b-adv">Advanced</span><span>28 min read</span><span>Updated Mar 12, 2025</span></span>
                <span class="tutorial-title">Build a local AI rig: from bare metal to your own private assistant</span>
                <span class="tutorial-desc">We spec, build, and benchmark a dual-GPU inference box that never touches the cloud — thermals, power draw, and the open-weight models actually worth running.</span>
              </span>
              <img class="tutorial-thumb" src="https://picsum.photos/seed/cp-tut-llm/240/160.jpg" alt="Dual-GPU local AI server build" loading="lazy">
              <svg class="icon acc-chev"><use href="#i-chev-d"/></svg>
            </button>
            <div class="acc-body"><div class="acc-body-in"><div class="tutorial-body-in">
              <p class="tutorial-body-label">In this guide</p>
              <ul>
                <li>Choosing a chassis and PSU that survive two 300 W GPUs</li>
                <li>ROCm vs. CUDA for inference — when each one wins</li>
                <li>Benchmarking tokens-per-second per dollar, honestly</li>
              </ul>
              <a href="#newsletter" class="text-link">Get new guides by email <svg class="icon"><use href="#i-arrow-r"/></svg></a>
            </div></div></div>
          </div>
          <div class="tutorial acc reveal">
            <button class="tutorial-head acc-head" aria-expanded="false">
              <span class="tutorial-index">02</span>
              <span>
                <span class="tutorial-meta"><span class="badge b-inter">Intermediate</span><span>16 min read</span><span>Updated Mar 4, 2025</span></span>
                <span class="tutorial-title">The complete Linux performance-tuning checklist</span>
                <span class="tutorial-desc">From kernel parameters to zswap, twenty tweaks that measurably cut latency — on everything from a Raspberry Pi to a Threadripper workstation.</span>
              </span>
              <img class="tutorial-thumb" src="https://picsum.photos/seed/cp-tut-linux/240/160.jpg" alt="Linux terminal on a laptop" loading="lazy">
              <svg class="icon acc-chev"><use href="#i-chev-d"/></svg>
            </button>
            <div class="acc-body"><div class="acc-body-in"><div class="tutorial-body-in">
              <p class="tutorial-body-label">In this guide</p>
              <ul>
                <li>The kernel parameters that matter — and the ones that don't</li>
                <li>zram and zswap: making 8 GB of RAM behave like 12</li>
                <li>A repeatable benchmarking workflow with fio and sysbench</li>
              </ul>
              <a href="#newsletter" class="text-link">Get new guides by email <svg class="icon"><use href="#i-arrow-r"/></svg></a>
            </div></div></div>
          </div>
          <div class="tutorial acc reveal">
            <button class="tutorial-head acc-head" aria-expanded="false">
              <span class="tutorial-index">03</span>
              <span>
                <span class="tutorial-meta"><span class="badge b-inter">Intermediate</span><span>11 min read</span><span>Updated Feb 19, 2025</span></span>
                <span class="tutorial-title">Undervolt the modern GPU: cooler, quieter, faster</span>
                <span class="tutorial-desc">Why the silicon lottery exists, how to find your chip's voltage floor, and the stability tests that actually prove a tune is safe.</span>
              </span>
              <img class="tutorial-thumb" src="https://picsum.photos/seed/cp-tut-undervolt/240/160.jpg" alt="GPU undervolting curve on a monitor" loading="lazy">
              <svg class="icon acc-chev"><use href="#i-chev-d"/></svg>
            </button>
            <div class="acc-body"><div class="acc-body-in"><div class="tutorial-body-in">
              <p class="tutorial-body-label">In this guide</p>
              <ul>
                <li>A scripted voltage sweep to find the silicon floor</li>
                <li>Stability testing that catches rare, load-specific crashes</li>
                <li>Measuring the real drop in thermals, noise, and power draw</li>
              </ul>
              <a href="#newsletter" class="text-link">Get new guides by email <svg class="icon"><use href="#i-arrow-r"/></svg></a>
            </div></div></div>
          </div>
          <div class="tutorial acc reveal">
            <button class="tutorial-head acc-head" aria-expanded="false">
              <span class="tutorial-index">04</span>
              <span>
                <span class="tutorial-meta"><span class="badge b-beginner">Beginner</span><span>19 min read</span><span>Updated Feb 6, 2025</span></span>
                <span class="tutorial-title">Self-hosting 101: Docker, reverse proxies, and you</span>
                <span class="tutorial-desc">Turn an old machine into a personal cloud: containers, automatic HTTPS, and the security checklist we run before exposing anything to the internet.</span>
              </span>
              <img class="tutorial-thumb" src="https://picsum.photos/seed/cp-tut-selfhost/240/160.jpg" alt="Home server rack with network gear" loading="lazy">
              <svg class="icon acc-chev"><use href="#i-chev-d"/></svg>
            </button>
            <div class="acc-body"><div class="acc-body-in"><div class="tutorial-body-in">
              <p class="tutorial-body-label">In this guide</p>
              <ul>
                <li>Docker Compose fundamentals for a single-board server</li>
                <li>Caddy and automatic HTTPS for every service you run</li>
                <li>The pre-exposure security checklist (backups, updates, firewalls)</li>
              </ul>
              <a href="#newsletter" class="text-link">Get new guides by email <svg class="icon"><use href="#i-arrow-r"/></svg></a>
            </div></div></div>
          </div>

          <div class="bench-strip reveal">
            <div>
              <p class="bench-kicker"><svg class="icon"><use href="#i-zap"/></svg>Core Bench v2.4 · Free</p>
              <h3>Our standardized benchmark suite. Free for everyone.</h3>
              <p>Every number on CorePulse comes from the same repeatable harness — 42 tests, fixed 22 °C ambient, median of three runs. Run it on your own hardware and compare against our published database.</p>
            </div>
            <div class="bench-actions">
              <button class="btn btn-primary" id="downloadBench"><svg class="icon" style="width:15px;height:15px"><use href="#i-download"/></svg> Download Software</button>
              <a href="#methodology" class="btn btn-ghost">How it works</a>
            </div>
          </div>
        </div>

        <aside class="sidebar stagger">
          <div class="side-box reveal" id="shop">
            <div class="side-box-head"><svg class="icon hot"><use href="#i-flame"/></svg><h3>Hot Deals</h3><a href="#shop" class="side-link demo-link">All deals</a></div>
            <p class="side-sub">Hand-picked by the deals team · updated hourly · click to copy</p>
            <div class="deal" data-deal="RTX 4070 Super — $549 at Newegg (ends in 2 days)" role="button" tabindex="0">
              <div><span class="deal-name">NVIDIA RTX 4070 Super</span><span class="deal-meta">Newegg · ends in 2 days</span></div>
              <div class="deal-price"><s>$599</s><span class="deal-now">$549</span><span class="deal-save">−8%</span></div>
            </div>
            <div class="deal" data-deal="32GB DDR5-6000 CL30 kit — $74 at Amazon" role="button" tabindex="0">
              <div><span class="deal-name">32 GB DDR5-6000 CL30</span><span class="deal-meta">Amazon · lightning deal</span></div>
              <div class="deal-price"><s>$96</s><span class="deal-now">$74</span><span class="deal-save">−23%</span></div>
            </div>
            <div class="deal" data-deal="Samsung 990 Pro 2TB NVMe — $89 at Best Buy" role="button" tabindex="0">
              <div><span class="deal-name">Samsung 990 Pro 2 TB</span><span class="deal-meta">Best Buy · member price</span></div>
              <div class="deal-price"><s>$129</s><span class="deal-now">$89</span><span class="deal-save">−31%</span></div>
            </div>
          </div>
          <div class="side-box reveal">
            <div class="side-box-head"><svg class="icon warn"><use href="#i-shield"/></svg><h3>Security Alerts</h3><a href="#shop" class="side-link demo-link">Archive</a></div>
            <p class="side-sub">Verified by our security desk · severity rated</p>
            <div class="alert-item">
              <span class="sev sev-crit">Critical</span>
              <span class="alert-title">CVE-2025-24813: Apache Tomcat remote code execution — patch to 9.0.99 immediately</span>
              <span class="alert-time">2 hours ago · 9.8 CVSS</span>
            </div>
            <div class="alert-item">
              <span class="sev sev-high">High</span>
              <span class="alert-title">Info-stealer campaign abuses browser sync APIs to lift credential stores</span>
              <span class="alert-time">6 hours ago · 7.5 CVSS</span>
            </div>
          </div>
          <div class="side-box spotlight reveal">
            <div class="side-box-head"><svg class="icon hot"><use href="#i-zap"/></svg><h3>Developer Spotlight</h3></div>
            <img src="https://i.pravatar.cc/96?u=amara" alt="Portrait of Amara Okafor">
            <blockquote>“The most exciting machine I've touched this year costs $12 and runs mainline Linux on day one.”</blockquote>
            <p class="spot-name"><strong>Amara Okafor</strong> · Firmware Engineer, RISC-V International</p>
            <a href="#newsletter" class="text-link">Get interviews in your inbox <svg class="icon"><use href="#i-arrow-r"/></svg></a>
          </div>
        </aside>
      </div>
    </div>
  </section>

  <!-- ============ 05 METHODOLOGY + FAQ ============ -->
  <section class="section" id="methodology">
    <div class="container methodology-grid">
      <div class="methodology-copy reveal">
        <p class="kicker"><span class="idx">05</span>Methodology</p>
        <h2>How we test — and why the numbers hold up</h2>
        <p>Every product you read about on CorePulse is purchased anonymously, at retail, with the same money you'd spend. We don't take review samples from manufacturers, we don't preview embargoed scores, and the people who write the checks are in a separate building from the people who cash them.</p>
        <p>The bench itself is boring on purpose. Every machine gets a fresh OS install, a fixed 22 °C ambient, background tasks disabled, and our 42-test suite run three times — we publish the median. Thermals and acoustics are measured in the same room, with the same instruments, every single time. When a BIOS update or a driver changes a result, the review is re-run and the changelog says so.</p>
        <p>Scores are opinionated — that's the point — but they're consistent. A 9 means "buy this without hesitation." An 8 means "buy it for the right workload." Anything below a 7 never gets recommended, period. The full rubric is public, and the benchmark suite is free to download.</p>
        <div class="methodology-stats">
          <div class="mstat"><span class="mstat-num">312</span><span class="mstat-label">products benched to date</span></div>
          <div class="mstat"><span class="mstat-num">42</span><span class="mstat-label">tests in every suite</span></div>
          <div class="mstat"><span class="mstat-num">0</span><span class="mstat-label">sponsored scores, ever</span></div>
        </div>
      </div>
      <div class="faq stagger">
        <div class="faq-item acc reveal">
          <button class="faq-q acc-head" aria-expanded="false">How long does a typical review take?<svg class="icon acc-chev"><use href="#i-chev-d"/></svg></button>
          <div class="acc-body"><div class="acc-body-in"><div class="faq-a-in"><p>Every product lives on our bench for a minimum of three weeks: a fresh OS install, the full 42-test suite, real daily driving, and a teardown. If a firmware update lands mid-review, the clock resets. We don't publish numbers we can't reproduce.</p></div></div></div>
        </div>
        <div class="faq-item acc reveal">
          <button class="faq-q acc-head" aria-expanded="false">Do affiliate links influence your scores?<svg class="icon acc-chev"><use href="#i-chev-d"/></svg></button>
          <div class="acc-body"><div class="acc-body-in"><div class="faq-a-in"><p>No. Scores are written and locked before any commercial conversation happens, and affiliate relationships are disclosed at the top of every review. We also publish a compatibility matrix for every build guide, so you can verify that our recommendations fit your hardware — not just our shopping cart.</p></div></div></div>
        </div>
        <div class="faq-item acc reveal">
          <button class="faq-q acc-head" aria-expanded="false">What exactly is a compatibility matrix?<svg class="icon acc-chev"><use href="#i-chev-d"/></svg></button>
          <div class="acc-body"><div class="acc-body-in"><div class="faq-a-in"><p>It's the cross-reference table that answers "will this work with what I already own": BIOS versions against memory kits, GPUs against power supplies, coolers against socket clearances, distros against Wi-Fi chipsets. We maintain one for every guide and update it when readers report mismatches. If a combination is untested, we say so instead of guessing.</p></div></div></div>
        </div>
        <div class="faq-item acc reveal">
          <button class="faq-q acc-head" aria-expanded="false">Can I run your benchmarks on my own machine?<svg class="icon acc-chev"><use href="#i-chev-d"/></svg></button>
          <div class="acc-body"><div class="acc-body-in"><div class="faq-a-in"><p>Yes — Core Bench is free to download in the Tutorials section above. It runs the same 42-test suite we use in the lab, exports a signed results file, and lets you diff your machine against our published database. Your results stay on your disk unless you choose to share them.</p></div></div></div>
        </div>
        <div class="faq-item acc reveal">
          <button class="faq-q acc-head" aria-expanded="false">How do I suggest a product or a tutorial?<svg class="icon acc-chev"><use href="#i-chev-d"/></svg></button>
          <div class="acc-body"><div class="acc-body-in"><div class="faq-a-in"><p>Pitch us at pitch@corepulse.io. Roughly a third of our review calendar comes from reader requests, and the tutorials section is built almost entirely from questions we get by email. Sponsored coverage is labeled as such and never receives a score.</p></div></div></div>
        </div>
      </div>
    </div>
  </section>

  <!-- ============ NEWSLETTER ============ -->
  <section class="newsletter" id="newsletter">
    <div class="container newsletter-in reveal">
      <p class="kicker">The Pulse — Weekly Dispatch</p>
      <h2>One email. Every Sunday. Zero noise.</h2>
      <p class="newsletter-sub">Join 48,000 engineers, developers, and hardware obsessives who start their week with the five stories that actually matter — plus one deep dive and one deal worth your money. Written by humans, read in under seven minutes.</p>
      <form class="nl-form" id="newsletterForm" novalidate>
        <div class="nl-field" id="nlField">
          <svg class="icon"><use href="#i-mail"/></svg>
          <input type="email" id="nlEmail" placeholder="you@example.com" aria-label="Email address" autocomplete="email">
        </div>
        <button class="btn btn-primary" type="submit">Subscribe Free</button>
      </form>
      <div class="nl-success" id="nlSuccess">
        <svg class="icon"><use href="#i-check"/></svg>
        <p><strong>You're in.</strong> Check your inbox to confirm your subscription — the next Pulse lands Sunday, 07:00 PT.</p>
      </div>
      <p class="form-msg" id="formMsg" role="status"></p>
      <p class="nl-fine">No spam. Unsubscribe in one click. We never share your address.</p>
    </div>
  </section>
</main>

<!-- ============ FOOTER ============ -->
<footer class="footer" id="footer">
  <div class="container">
    <div class="footer-grid">
      <div class="footer-brand">
        <a class="brand" href="#top">
          <img src="https://placehold.co/88x88/161A23/C8F542?text=CP&font=montserrat" alt="CorePulse logo" width="42" height="42">
          <span class="brand-text">
            <span class="brand-name">Core<em>Pulse</em></span>
            <span class="brand-tag">Signal over noise.</span>
          </span>
        </a>
        <p>Independent technology journalism, reviews, and computing resources — published from San Francisco since 2019. No sponsored scores. Ever.</p>
        <ul class="footer-contact">
          <li><svg class="icon"><use href="#i-mail"/></svg><a href="mailto:hello@corepulse.io">hello@corepulse.io</a></li>
          <li><svg class="icon"><use href="#i-phone"/></svg><a href="tel:+14155550134">+1 (415) 555-0134</a></li>
          <li><svg class="icon"><use href="#i-pin"/></svg><span>548 Market St, San Francisco, CA 94104</span></li>
        </ul>
      </div>
      <div class="footer-col">
        <h4>Sections</h4>
        <ul>
          <li><a href="#latest">News</a></li>
          <li><a href="#reviews">Reviews</a></li>
          <li><a href="#tutorials">Tutorials</a></li>
          <li><a href="#compare">Compare Lab</a></li>
          <li><a href="#shop">Shop &amp; Deals</a></li>
        </ul>
      </div>
      <div class="footer-col">
        <h4>Company</h4>
        <ul>
          <li><a href="#methodology">About &amp; Methodology</a></li>
          <li><a href="mailto:careers@corepulse.io">Careers</a></li>
          <li><a href="mailto:hello@corepulse.io">Contact</a></li>
          <li><a href="mailto:ads@corepulse.io">Advertise</a></li>
          <li><a href="#methodology">Ethics &amp; Disclosures</a></li>
        </ul>
      </div>
      <div class="footer-col">
        <h4>Follow</h4>
        <div class="socials">
          <a class="icon-btn" href="https://x.com" target="_blank" rel="noopener" aria-label="CorePulse on X"><svg class="icon"><use href="#i-x-brand"/></svg></a>
          <a class="icon-btn" href="https://youtube.com" target="_blank" rel="noopener" aria-label="CorePulse on YouTube"><svg class="icon"><use href="#i-youtube"/></svg></a>
          <a class="icon-btn" href="https://github.com" target="_blank" rel="noopener" aria-label="CorePulse on GitHub"><svg class="icon"><use href="#i-github"/></svg></a>
          <a class="icon-btn" href="#footer" id="rssLink" aria-label="RSS feed"><svg class="icon"><use href="#i-rss"/></svg></a>
        </div>
        <ul>
          <li><a href="#newsletter">The Pulse — weekly newsletter</a></li>
          <li><a href="#compare">Compare Lab</a></li>
          <li><a href="#shop">Hot deals tracker</a></li>
        </ul>
      </div>
    </div>
    <div class="footer-bottom">
      <p>© <span id="year">2025</span> CorePulse Media Inc. All rights reserved.</p>
      <div class="footer-legal">
        <a href="#footer" data-legal="privacy">Privacy Policy</a>
        <a href="#footer" data-legal="terms">Terms of Service</a>
        <a href="#footer" data-legal="cookies">Cookie Settings</a>
      </div>
      <p>Signal over noise since 2019.</p>
    </div>
  </div>
</footer>

<!-- Search overlay -->
<div class="search-overlay" id="searchOverlay" role="dialog" aria-modal="true" aria-label="Search CorePulse">
  <div class="search-panel">
    <div class="search-head">
      <svg class="icon"><use href="#i-search"/></svg>
      <input id="searchInput" type="text" placeholder="Search reviews, tutorials, news…" autocomplete="off">
      <kbd>esc</kbd>
    </div>
    <div class="search-results" id="searchResults"></div>
    <div class="search-foot"><span><kbd>↵</kbd>open</span><span><kbd>↑</kbd><kbd>↓</kbd>navigate</span><span id="searchCount"></span></div>
  </div>
</div>

<!-- Legal modal -->
<div class="modal" id="modal" role="dialog" aria-modal="true" aria-labelledby="modalTitle">
  <div class="modal-panel">
    <div class="modal-head">
      <h3 id="modalTitle"></h3>
      <button class="icon-btn" id="modalClose" aria-label="Close dialog"><svg class="icon"><use href="#i-close"/></svg></button>
    </div>
    <div class="modal-body" id="modalBody"></div>
  </div>
</div>

<!-- Toast + to-top -->
<div class="toast" id="toast" role="status"><svg class="icon"><use href="#i-check"/></svg><span id="toastText"></span></div>
<button class="to-top" id="toTop" aria-label="Back to top"><svg class="icon"><use href="#i-arrow-up"/></svg></button>

<script>
/* ================= Helpers ================= */
const $ = (s, c=document) => c.querySelector(s);
const $$ = (s, c=document) => [...c.querySelectorAll(s)];

let toastTimer;
function showToast(msg){
  $("#toastText").textContent = msg;
  $("#toast").classList.add("show");
  clearTimeout(toastTimer);
  toastTimer = setTimeout(()=> $("#toast").classList.remove("show"), 2800);
}

/* ================= Topbar clock / date / year ================= */
$("#topbarDate").textContent = new Date().toLocaleDateString("en-US",{weekday:"long",month:"long",day:"numeric",year:"numeric"});
function tickClock(){ $("#utcClock").textContent = new Date().toLocaleTimeString("en-GB",{hour12:false,timeZone:"UTC"}); }
tickClock(); setInterval(tickClock,1000);
$("#year").textContent = new Date().getFullYear();

/* ================= Header / to-top on scroll ================= */
const header = $("#siteHeader"), toTop = $("#toTop");
addEventListener("scroll", ()=>{
  header.classList.toggle("scrolled", scrollY > 10);
  toTop.classList.toggle("show", scrollY > 700);
},{passive:true});
toTop.addEventListener("click", ()=> scrollTo({top:0, behavior:"smooth"}));

/* ================= Mobile nav ================= */
const mainNav = $("#mainNav"), navToggle = $("#navToggle");
navToggle.addEventListener("click", ()=>{
  const open = mainNav.classList.toggle("open");
  navToggle.setAttribute("aria-expanded", open);
});
$$(".main-nav a").forEach(a => a.addEventListener("click", ()=>{
  mainNav.classList.remove("open");
  navToggle.setAttribute("aria-expanded","false");
}));

/* ================= Ticker: duplicate group for seamless loop ================= */
const track = $("#tickerTrack");
track.appendChild(track.firstElementChild.cloneNode(true));

/* ================= Scroll reveal ================= */
$$(".stagger").forEach(w => $$(".reveal", w).forEach((el,i)=> el.style.setProperty("--d", (i*70)+"ms")));
const revealObs = new IntersectionObserver(entries=>{
  entries.forEach(e=>{ if(e.isIntersecting){ e.target.classList.add("in"); revealObs.unobserve(e.target); } });
},{threshold:.12});
$$(".reveal").forEach(el=> revealObs.observe(el));

/* ================= Scrollspy ================= */
const navLinks = $$(".main-nav a");
const spy = new IntersectionObserver(entries=>{
  entries.forEach(en=>{
    if(en.isIntersecting){
      navLinks.forEach(l => l.classList.toggle("active", l.getAttribute("href") === "#"+en.target.id));
    }
  });
},{rootMargin:"-35% 0px -55% 0px"});
["latest","trends","reviews","compare","tutorials","methodology","newsletter"].forEach(id=>{
  const s = document.getElementById(id); if(s) spy.observe(s);
});

/* ================= Accordions (reviews / tutorials / FAQ / featured) ================= */
$$(".acc-head").forEach(btn=>{
  btn.addEventListener("click", ()=>{
    const item = btn.closest(".acc");
    const open = item.classList.toggle("open");
    btn.setAttribute("aria-expanded", open);
    const swap = btn.querySelector("[data-swap]");
    if(swap) swap.textContent = open ? btn.dataset.less : btn.dataset.more;
  });
});

/* ================= Demo archive links ================= */
$$(".demo-link").forEach(el=> el.addEventListener("click", e=>{
  e.preventDefault();
  showToast("That archive lives on the full site — this one-page build keeps everything on a single scroll.");
}));

/* ================= Deal rows: click to copy ================= */
$$(".deal").forEach(d=>{
  const act = async ()=>{
    const text = d.dataset.deal;
    try{ await navigator.clipboard.writeText(text); showToast("Deal copied: " + text); }
    catch(err){ showToast("Deal: " + text); }
  };
  d.addEventListener("click", act);
  d.addEventListener("keydown", e=>{ if(e.key==="Enter"||e.key===" "){ e.preventDefault(); act(); } });
});

/* ================= RSS copy ================= */
$("#rssLink").addEventListener("click", async e=>{
  e.preventDefault();
  try{ await navigator.clipboard.writeText("https://corepulse.io/feed.xml"); showToast("RSS feed URL copied to clipboard"); }
  catch(err){ showToast("RSS feed: corepulse.io/feed.xml"); }
});

/* ================= Search overlay ================= */
const SEARCH_INDEX = [
  {t:"The chiplet wars enter their endgame — cover story", tag:"Analysis", sec:"Cover", href:"#top"},
  {t:"Three shifts quietly rewriting the computing stack", tag:"Trends", sec:"01 · Trends", href:"#trends"},
  {t:"Ryzen 9 9950X3D review: the gaming crown, defended", tag:"Review", sec:"02 · Reviews", href:"#reviews"},
  {t:"Samsung Odyssey OLED G8 (2025) review", tag:"Review", sec:"02 · Reviews", href:"#reviews"},
  {t:"Fedora 42 Workstation review", tag:"Review", sec:"02 · Reviews", href:"#reviews"},
  {t:"Keychron Q1 Max review", tag:"Review", sec:"02 · Reviews", href:"#reviews"},
  {t:"Sony WH-1000XM6 early review", tag:"Review", sec:"02 · Reviews", href:"#reviews"},
  {t:"Compare Lab: laptops, GPUs, CPUs & phones", tag:"Tool", sec:"03 · Compare", href:"#compare"},
  {t:"Build a local AI rig from bare metal", tag:"Tutorial", sec:"04 · Tutorials", href:"#tutorials"},
  {t:"The complete Linux performance-tuning checklist", tag:"Tutorial", sec:"04 · Tutorials", href:"#tutorials"},
  {t:"Undervolt the modern GPU: cooler, quieter, faster", tag:"Tutorial", sec:"04 · Tutorials", href:"#tutorials"},
  {t:"Self-hosting 101: Docker, reverse proxies, and you", tag:"Tutorial", sec:"04 · Tutorials", href:"#tutorials"},
  {t:"Hot deals: RTX 4070 Super, DDR5-6000, NVMe Gen4", tag:"Shop", sec:"Sidebar", href:"#shop"},
  {t:"Security alerts: CVE-2025-24813 & browser credential theft", tag:"Security", sec:"Sidebar", href:"#shop"},
  {t:"How we test: methodology, scoring & disclosures", tag:"About", sec:"05 · Methodology", href:"#methodology"},
  {t:"The Pulse — weekly newsletter, every Sunday", tag:"Newsletter", sec:"Dispatch", href:"#newsletter"},
];
const overlay = $("#searchOverlay"), searchInput = $("#searchInput"),
      resultsEl = $("#searchResults"), countEl = $("#searchCount");
let searchItems = [], searchActive = -1;

function renderResults(q){
  q = q.trim().toLowerCase();
  searchItems = q
    ? SEARCH_INDEX.filter(x => x.t.toLowerCase().includes(q) || x.tag.toLowerCase().includes(q))
    : SEARCH_INDEX.slice(0,7);
  searchActive = searchItems.length ? 0 : -1;
  if(!searchItems.length){
    resultsEl.innerHTML = '<p class="search-empty">No results for “' + q.replace(/[<>&"]/g,"") + '” — try “GPU”, “Linux”, or “review”.</p>';
    countEl.textContent = "0 results";
    return;
  }
  resultsEl.innerHTML = searchItems.map((x,i)=>
    '<a class="search-result'+(i===searchActive?' active':'')+'" href="'+x.href+'">'+
    '<span class="r-tag">'+x.tag+'</span><span class="r-title">'+x.t+'</span><span class="r-sec">'+x.sec+'</span></a>'
  ).join("");
  countEl.textContent = q ? searchItems.length + " result" + (searchItems.length>1?"s":"") : "Trending on CorePulse";
}
function openSearch(){
  overlay.classList.add("open");
  document.body.style.overflow = "hidden";
  searchInput.value = "";
  renderResults("");
  setTimeout(()=> searchInput.focus(), 40);
}
function closeSearch(){ overlay.classList.remove("open"); document.body.style.overflow = ""; }
$("#searchOpen").addEventListener("click", openSearch);
overlay.addEventListener("click", e=>{ if(e.target === overlay) closeSearch(); });
searchInput.addEventListener("input", e=> renderResults(e.target.value));
resultsEl.addEventListener("click", e=>{ if(e.target.closest("a")) closeSearch(); });
searchInput.addEventListener("keydown", e=>{
  const rows = $$(".search-result", resultsEl);
  if(e.key === "ArrowDown" && rows.length){ e.preventDefault(); searchActive = (searchActive+1) % rows.length; }
  else if(e.key === "ArrowUp" && rows.length){ e.preventDefault(); searchActive = (searchActive-1+rows.length) % rows.length; }
  else if(e.key === "Enter" && rows.length){ e.preventDefault(); rows[searchActive].click(); return; }
  else return;
  rows.forEach((r,i)=> r.classList.toggle("active", i===searchActive));
});
document.addEventListener("keydown", e=>{
  if(e.key === "Escape"){ closeSearch(); closeModal(); mainNav.classList.remove("open"); navToggle.setAttribute("aria-expanded","false"); }
  const typing = /^(INPUT|TEXTAREA|SELECT)$/.test(document.activeElement.tagName);
  if(!typing && e.key === "/"){ e.preventDefault(); openSearch(); }
  if(!typing && (e.metaKey || e.ctrlKey) && e.key.toLowerCase() === "k"){ e.preventDefault(); openSearch(); }
});

/* ================= Legal modal ================= */
const LEGAL = {
  privacy:{ t:"Privacy Policy", b:"<p>CorePulse Media Inc. collects only the information you hand us directly: your email address when you subscribe to The Pulse, and anonymized, self-hosted analytics that never leave our servers. We do not sell personal data, and we do not run third-party advertising trackers.</p><p>Newsletter data is stored with our email provider solely to deliver the dispatch; every message includes a one-click unsubscribe. You can request a copy or full deletion of your data at any time by writing to privacy@corepulse.io — we respond within 72 hours.</p><p>Deals and prices are aggregated from public retailer listings and may contain affiliate links, which are disclosed at the top of every deals post. Affiliate relationships never influence review scores.</p>"},
  terms:{ t:"Terms of Service", b:"<p>Content on CorePulse is provided for informational purposes. Reviews reflect our opinions at the time of testing; prices, availability, and specifications change without notice and should be verified with the retailer before purchase.</p><p>You're welcome to quote brief excerpts with attribution and a link. Republishing full reviews, benchmark data, or the Core Bench suite output requires written permission — email hello@corepulse.io.</p><p>Accounts and newsletter subscriptions are free and may be terminated by either party at any time. Don't use the site to break the law, and don't scrape the benchmark database without asking — we usually say yes.</p>"},
  cookies:{ t:"Cookie Settings", b:"<p>CorePulse uses a single first-party cookie to remember your preferences (like the Compare Lab's last category). That's the whole list. No advertising cookies, no cross-site trackers, no fingerprinting.</p><p>Self-hosted, anonymized analytics help us understand which guides are useful; they store no IP addresses and no personally identifiable information.</p><p>You can clear or block cookies in your browser at any time — the site works fully without them. The newsletter form uses a short-lived session cookie only to prevent duplicate signups.</p>"}
};
const modal = $("#modal");
function openModal(key){
  const d = LEGAL[key]; if(!d) return;
  $("#modalTitle").textContent = d.t;
  $("#modalBody").innerHTML = d.b;
  modal.classList.add("open");
  document.body.style.overflow = "hidden";
}
function closeModal(){ modal.classList.remove("open"); document.body.style.overflow = ""; }
$$("[data-legal]").forEach(a=> a.addEventListener("click", e=>{ e.preventDefault(); openModal(a.dataset.legal); }));
$("#modalClose").addEventListener("click", closeModal);
modal.addEventListener("click", e=>{ if(e.target === modal) closeModal(); });

/* ================= Newsletter ================= */
const nlForm = $("#newsletterForm"), nlEmail = $("#nlEmail"), nlField = $("#nlField"), formMsg = $("#formMsg");
nlForm.addEventListener("submit", e=>{
  e.preventDefault();
  const v = nlEmail.value.trim();
  if(!/^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test(v)){
    nlField.classList.add("error");
    formMsg.textContent = "Please enter a valid email address.";
    formMsg.className = "form-msg err";
    nlEmail.focus();
    return;
  }
  nlForm.style.display = "none";
  formMsg.textContent = "";
  $("#nlSuccess").style.display = "flex";
  showToast("Welcome aboard — confirmation sent to " + v);
});
nlEmail.addEventListener("input", ()=>{ nlField.classList.remove("error"); formMsg.textContent = ""; });

/* ================= Compare Lab ================= */
const COMPARE = {
  laptop:{ label:"Laptops", rows:[
    {k:"cpu",l:"Processor",t:"text"},
    {k:"gpu",l:"GPU",t:"text"},
    {k:"ram",l:"Memory",u:" GB",n:1},
    {k:"storage",l:"Storage",u:" GB",n:1},
    {k:"display",l:"Display",t:"text"},
    {k:"weight",l:"Weight",u:" kg",n:1,lower:1,dec:2},
    {k:"battery",l:"Battery",u:" Wh",n:1},
    {k:"price",l:"Launch price",n:1,lower:1,money:1},
    {k:"score",l:"CorePulse score",n:1,score:1}],
    products:[
    {id:"g14",brand:"ASUS",name:"ROG Zephyrus G14 (2025)",price:2499,img:"https://picsum.photos/seed/cp-lap-g14/400/300.jpg",s:{cpu:"Ryzen 9 9950HS",gpu:"RTX 5070 Ti 8 GB",ram:32,storage:1000,display:"14″ OLED 2.8K 120 Hz",weight:1.50,battery:73,price:2499,score:9.0}},
    {id:"mbp",brand:"Apple",name:"MacBook Pro 14″ (M4 Pro)",price:1999,img:"https://picsum.photos/seed/cp-lap-mbp/400/300.jpg",s:{cpu:"Apple M4 Pro (12-core)",gpu:"16-core integrated GPU",ram:24,storage:512,display:"14.2″ XDR 120 Hz",weight:1.61,battery:70,price:1999,score:9.3}},
    {id:"x1c",brand:"Lenovo",name:"ThinkPad X1 Carbon Gen 13",price:1849,img:"https://picsum.photos/seed/cp-lap-x1/400/300.jpg",s:{cpu:"Core Ultra 7 258V",gpu:"Arc Graphics 140V",ram:32,storage:1000,display:"14″ 2.8K OLED 120 Hz",weight:1.12,battery:57,price:1849,score:8.7}},
    {id:"fw16",brand:"Framework",name:"Framework Laptop 16",price:1899,img:"https://picsum.photos/seed/cp-lap-fw16/400/300.jpg",s:{cpu:"Ryzen 9 7945HX",gpu:"Radeon RX 7700S",ram:32,storage:1000,display:"16″ 2.5K 165 Hz",weight:2.10,battery:85,price:1899,score:8.4}}]},
  gpu:{ label:"GPUs", rows:[
    {k:"cores",l:"Shading units",n:1},
    {k:"vram",l:"Memory",u:" GB",n:1},
    {k:"bw",l:"Memory bandwidth",u:" GB/s",n:1},
    {k:"power",l:"Board power",u:" W",n:1,lower:1},
    {k:"price",l:"Launch price",n:1,lower:1,money:1},
    {k:"score",l:"CorePulse score",n:1,score:1}],
    products:[
    {id:"5080",brand:"NVIDIA",name:"GeForce RTX 5080",price:999,img:"https://picsum.photos/seed/cp-gpu-5080/400/300.jpg",s:{cores:10752,vram:16,bw:960,power:360,price:999,score:9.2}},
    {id:"9070xt",brand:"AMD",name:"Radeon RX 9070 XT",price:599,img:"https://picsum.photos/seed/cp-gpu-9070xt/400/300.jpg",s:{cores:4096,vram:16,bw:644,power:304,price:599,score:8.8}},
    {id:"b580",brand:"Intel",name:"Arc B580 12 GB",price:249,img:"https://picsum.photos/seed/cp-gpu-b580/400/300.jpg",s:{cores:2560,vram:12,bw:456,power:150,price:249,score:8.1}},
    {id:"4060",brand:"NVIDIA",name:"GeForce RTX 4060",price:299,img:"https://picsum.photos/seed/cp-gpu-4060/400/300.jpg",s:{cores:3072,vram:8,bw:272,power:115,price:299,score:8.5}}]},
  cpu:{ label:"CPUs", rows:[
    {k:"cores",l:"Cores",n:1},
    {k:"threads",l:"Threads",n:1},
    {k:"base",l:"Base clock",u:" GHz",n:1,dec:1},
    {k:"boost",l:"Boost clock",u:" GHz",n:1,dec:1},
    {k:"cache",l:"L3 cache",u:" MB",n:1},
    {k:"tdp",l:"TDP",u:" W",n:1,lower:1},
    {k:"price",l:"Launch price",n:1,lower:1,money:1},
    {k:"score",l:"CorePulse score",n:1,score:1}],
    products:[
    {id:"9800x3d",brand:"AMD",name:"Ryzen 7 9800X3D",price:479,img:"https://picsum.photos/seed/cp-cpu-9800x3d/400/300.jpg",s:{cores:8,threads:16,base:4.7,boost:5.2,cache:96,tdp:120,price:479,score:9.5}},
    {id:"265k",brand:"Intel",name:"Core Ultra 7 265K",price:409,img:"https://picsum.photos/seed/cp-cpu-265k/400/300.jpg",s:{cores:20,threads:20,base:3.9,boost:5.7,cache:36,tdp:125,price:409,score:8.9}},
    {id:"9950x",brand:"AMD",name:"Ryzen 9 9950X",price:549,img:"https://picsum.photos/seed/cp-cpu-9950x/400/300.jpg",s:{cores:16,threads:32,base:4.3,boost:5.7,cache:80,tdp:170,price:549,score:9.1}},
    {id:"14600k",brand:"Intel",name:"Core i5-14600K",price:319,img:"https://picsum.photos/seed/cp-cpu-14600k/400/300.jpg",s:{cores:14,threads:20,base:3.5,boost:5.3,cache:24,tdp:125,price:319,score:8.3}}]},
  phone:{ label:"Phones", rows:[
    {k:"chip",l:"Chipset",t:"text"},
    {k:"ram",l:"Memory",u:" GB",n:1},
    {k:"storage",l:"Storage",u:" GB",n:1},
    {k:"battery",l:"Battery",u:" mAh",n:1},
    {k:"hz",l:"Display refresh",u:" Hz",n:1},
    {k:"cam",l:"Main camera",u:" MP",n:1},
    {k:"price",l:"Launch price",n:1,lower:1,money:1},
    {k:"score",l:"CorePulse score",n:1,score:1}],
    products:[
    {id:"p9p",brand:"Google",name:"Pixel 9 Pro",price:999,img:"https://picsum.photos/seed/cp-ph-pixel/400/300.jpg",s:{chip:"Google Tensor G4",ram:16,storage:256,battery:5050,hz:120,cam:50,price:999,score:8.9}},
    {id:"s25u",brand:"Samsung",name:"Galaxy S25 Ultra",price:1299,img:"https://picsum.photos/seed/cp-ph-s25/400/300.jpg",s:{chip:"Snapdragon 8 Elite",ram:12,storage:256,battery:5000,hz:120,cam:200,price:1299,score:9.1}},
    {id:"ip16p",brand:"Apple",name:"iPhone 16 Pro",price:999,img:"https://picsum.photos/seed/cp-ph-iphone/400/300.jpg",s:{chip:"A18 Pro",ram:8,storage:256,battery:3274,hz:120,cam:48,price:999,score:9.3}},
    {id:"ph3",brand:"Nothing",name:"Phone (3)",price:799,img:"https://picsum.photos/seed/cp-ph-nothing/400/300.jpg",s:{chip:"Snapdragon 8s Gen 3",ram:12,storage:256,battery:5150,hz:120,cam:50,price:799,score:8.6}}]}
};
let currentCat = "laptop";
const selectA = $("#selectA"), selectB = $("#selectB"), resultEl = $("#compareResult");

function fillSelects(){
  const cat = COMPARE[currentCat];
  [selectA, selectB].forEach(sel=>{
    sel.innerHTML = cat.products.map((p,i)=>'<option value="'+i+'">'+p.brand+" "+p.name+'</option>').join("");
  });
  selectA.value = 0; selectB.value = 1;
}
function fmt(row, v){
  if(row.score) return v.toFixed(1);
  if(row.money) return "$" + v.toLocaleString("en-US");
  return (row.dec ? v.toFixed(row.dec) : String(v)) + (row.u || "");
}
function productCard(p){
  return '<div class="cmp-product"><img src="'+p.img+'" alt="'+p.brand+" "+p.name+'" loading="lazy">'+
    '<div><span class="cmp-brand">'+p.brand+'</span><h4>'+p.name+'</h4><span class="cmp-price">$'+p.price.toLocaleString("en-US")+'</span></div>'+
    '<div class="cmp-score">'+p.s.score.toFixed(1)+' <span>/10</span></div></div>';
}
function renderComparison(){
  const cat = COMPARE[currentCat];
  const a = cat.products[+selectA.value], b = cat.products[+selectB.value];
  let winsA = 0, winsB = 0, biggest = null;
  let rowsHtml = "";
  cat.rows.forEach(row=>{
    const va = a.s[row.k], vb = b.s[row.k];
    if(row.t === "text"){
      rowsHtml += '<tr><th scope="row">'+row.l+'</th><td><span class="val">'+va+'</span></td><td><span class="val">'+vb+'</span></td></tr>';
      return;
    }
    const best = row.lower ? Math.min(va,vb) : Math.max(va,vb);
    const winA = row.lower ? va < vb : va > vb;
    const winB = row.lower ? vb < va : vb > va;
    if(winA) winsA++;
    if(winB) winsB++;
    const wa = Math.round((row.lower ? best/va : va/best) * 100);
    const wb = Math.round((row.lower ? best/vb : vb/best) * 100);
    const gap = Math.abs(wa - wb);
    if(!biggest || gap > biggest.gap) biggest = {gap, row, va, vb};
    rowsHtml += '<tr'+(row.score ? ' class="cmp-score-row"' : '')+'><th scope="row">'+row.l+'</th>'+
      '<td class="'+(winA?'win':'')+'"><span class="val">'+fmt(row,va)+'</span><span class="bar"><span style="--w:'+wa+'%"></span></span></td>'+
      '<td class="'+(winB?'win':'')+'"><span class="val">'+fmt(row,vb)+'</span><span class="bar"><span style="--w:'+wb+'%"></span></span></td></tr>';
  });
  const total = cat.rows.filter(r=>r.t!=="text").length;
  const sWin = a.s.score >= b.s.score ? a : b;
  const sLose = sWin === a ? b : a;
  const wCount = sWin === a ? winsA : winsB;
  let verdict = "<strong>"+sWin.name+" wins, "+sWin.s.score.toFixed(1)+" to "+sLose.s.score.toFixed(1)+".</strong> It takes "+wCount+" of "+total+" spec rows";
  if(biggest && biggest.gap > 0)
    verdict += "; the decisive gap is "+biggest.row.l.toLowerCase()+" — "+fmt(biggest.row,biggest.va)+" against "+fmt(biggest.row,biggest.vb);
  const cheap = a.price <= b.price ? a : b, dear = cheap === a ? b : a;
  verdict += ". On price, the "+cheap.name+" undercuts the "+dear.name+" by $" + Math.abs(a.price-b.price).toLocaleString("en-US") + ".";
  resultEl.innerHTML =
    '<div class="cmp-products">'+productCard(a)+productCard(b)+'</div>'+
    '<div class="cmp-table-wrap"><table class="cmp-table"><thead><tr><th>Specification</th><th>'+a.name+'</th><th>'+b.name+'</th></tr></thead><tbody>'+rowsHtml+'</tbody></table></div>'+
    '<div class="cmp-verdict"><svg class="icon"><use href="#i-zap"/></svg><p>'+verdict+'</p></div>';
  resultEl.classList.remove("grown");
  void resultEl.offsetWidth;
  requestAnimationFrame(()=> requestAnimationFrame(()=> resultEl.classList.add("grown")));
}
function setCat(cat){
  currentCat = cat;
  $$(".seg-btn").forEach(b=>{
    const on = b.dataset.cat === cat;
    b.classList.toggle("active", on);
    b.setAttribute("aria-selected", on);
  });
  fillSelects();
  renderComparison();
}
$$(".seg-btn").forEach(b=> b.addEventListener("click", ()=> setCat(b.dataset.cat)));
[selectA, selectB].forEach(sel=> sel.addEventListener("change", ()=>{
  if(selectA.value === selectB.value){
    const other = sel === selectA ? selectB : selectA;
    other.value = (+sel.value + 1) % COMPARE[currentCat].products.length;
  }
  renderComparison();
}));
$("#compareBtn").addEventListener("click", ()=>{
  renderComparison();
  resultEl.classList.remove("flash"); void resultEl.offsetWidth; resultEl.classList.add("flash");
  resultEl.scrollIntoView({behavior:"smooth", block:"nearest"});
});
$("#surpriseBtn").addEventListener("click", ()=>{
  const cats = Object.keys(COMPARE);
  const c = cats[Math.floor(Math.random()*cats.length)];
  const n = COMPARE[c].products.length;
  const i = Math.floor(Math.random()*n);
  let j = Math.floor(Math.random()*n);
  if(j === i) j = (i+1) % n;
  setCat(c);
  selectA.value = i; selectB.value = j;
  renderComparison();
  showToast("Random matchup: " + COMPARE[c].label + " — " + COMPARE[c].products[i].name + " vs " + COMPARE[c].products[j].name);
});
$("#csvBtn").addEventListener("click", ()=>{
  const cat = COMPARE[currentCat];
  const a = cat.products[+selectA.value], b = cat.products[+selectB.value];
  let csv = "Specification," + '"' + a.name + '","' + b.name + '"\n';
  cat.rows.forEach(row=>{
    csv += '"' + row.l + '","' + fmt(row, a.s[row.k]) + '","' + fmt(row, b.s[row.k]) + '"\n';
  });
  const blob = new Blob([csv], {type:"text/csv"});
  const url = URL.createObjectURL(blob);
  const link = document.createElement("a");
  link.href = url;
  link.download = "corepulse-" + currentCat + "-" + a.id + "-vs-" + b.id + ".csv";
  document.body.appendChild(link); link.click(); link.remove();
  URL.revokeObjectURL(url);
  showToast("CSV exported — check your downloads");
});
/* Auto-render the first comparison when the lab scrolls into view */
const labObs = new IntersectionObserver((entries, obs)=>{
  entries.forEach(en=>{
    if(en.isIntersecting){ renderComparison(); labObs.disconnect(); }
  });
},{threshold:.25});
labObs.observe($("#compare"));
fillSelects();

/* ================= Core Bench download ================= */
$("#downloadBench").addEventListener("click", ()=>{
  const txt =
"COREPULSE BENCH v2.4 — README\n" +
"=============================\n\n" +
"Thanks for downloading Core Bench, the standardized suite behind every\n" +
"score published on CorePulse.\n\n" +
"WHAT IT DOES\n" +
"- 42 tests across compute, memory, storage, thermals, and acoustics\n" +
"- Three automated runs; the median is reported\n" +
"- Exports a signed results file you can diff against our database\n\n" +
"REQUIREMENTS\n" +
"- Linux (kernel 6.8+) or Windows 11 23H2+\n" +
"- 8 GB free disk space, 4 GB RAM\n" +
"- No admin rights needed for the standard suite\n\n" +
"RUNNING IT\n" +
"  ./corebench --suite full     # ~22 minutes\n" +
"  ./corebench --suite quick    # ~6 minutes\n\n" +
"Full documentation: https://corepulse.io/bench\n" +
"(c) " + new Date().getFullYear() + " CorePulse Media Inc. Free for personal and commercial use.\n";
  const blob = new Blob([txt], {type:"text/plain"});
  const url = URL.createObjectURL(blob);
  const link = document.createElement("a");
  link.href = url;
  link.download = "corepulse-bench-v2.4.txt";
  document.body.appendChild(link); link.click(); link.remove();
  URL.revokeObjectURL(url);
  showToast("Download started — corepulse-bench-v2.4.txt");
});
</script>
</body>
</html>
View Axe Report (JSON)
{
  "testEngine": {
    "name": "axe-core",
    "version": "4.10.2"
  },
  "testRunner": {
    "name": "axe"
  },
  "testEnvironment": {
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/156.0.8078.4 Safari/537.36",
    "windowWidth": 1280,
    "windowHeight": 720,
    "orientationAngle": 0,
    "orientationType": "landscape-primary"
  },
  "timestamp": "2026-11-12T10:12:34.084Z",
  "url": "https://benchmark.aimac.invalid/4f1d7ab6063ea80bd1255d7a6c031cf064b2e01a58df5fb3e82424414f006f9b.html",
  "toolOptions": {
    "runOnly": {
      "type": "tag",
      "values": [
        "wcag2a",
        "wcag2aa",
        "wcag21a",
        "wcag21aa",
        "wcag22a",
        "wcag22aa"
      ]
    },
    "resultTypes": [
      "violations"
    ],
    "reporter": "v1"
  },
  "inapplicable": [
    {
      "id": "area-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag244",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.2.4.4",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure <area> elements of image maps have alternative text",
      "help": "Active <area> elements must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/area-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-braille-equivalent",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure aria-braillelabel and aria-brailleroledescription have a non-braille equivalent",
      "help": "aria-braille attributes must have a non-braille equivalent",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-braille-equivalent?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-input-field-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every ARIA input field has an accessible name",
      "help": "ARIA input fields must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-input-field-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-meter-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag111",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "description": "Ensure every ARIA meter node has an accessible name",
      "help": "ARIA meter nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-meter-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-progressbar-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag111",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "description": "Ensure every ARIA progressbar node has an accessible name",
      "help": "ARIA progressbar nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-progressbar-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-toggle-field-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every ARIA toggle field has an accessible name",
      "help": "ARIA toggle fields must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-toggle-field-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-tooltip-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure every ARIA tooltip node has an accessible name",
      "help": "ARIA tooltip nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-tooltip-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "blink",
      "impact": null,
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag222",
        "section508",
        "section508.22.j",
        "TTv5",
        "TT2.b",
        "EN-301-549",
        "EN-9.2.2.2"
      ],
      "description": "Ensure <blink> elements are not used",
      "help": "<blink> elements are deprecated and must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/blink?application=axeAPI",
      "nodes": []
    },
    {
      "id": "definition-list",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure <dl> elements are structured correctly",
      "help": "<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/definition-list?application=axeAPI",
      "nodes": []
    },
    {
      "id": "dlitem",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure <dt> and <dd> elements are contained by a <dl>",
      "help": "<dt> and <dd> elements must be contained by a <dl>",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/dlitem?application=axeAPI",
      "nodes": []
    },
    {
      "id": "frame-focusable-content",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag211",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1"
      ],
      "description": "Ensure <frame> and <iframe> elements with focusable content do not have tabindex=-1",
      "help": "Frames with focusable content must not have tabindex=-1",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-focusable-content?application=axeAPI",
      "nodes": []
    },
    {
      "id": "frame-title-unique",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT12.d",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure <iframe> and <frame> elements contain a unique title attribute",
      "help": "Frames must have a unique title attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title-unique?application=axeAPI",
      "nodes": []
    },
    {
      "id": "frame-title",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.i",
        "TTv5",
        "TT12.d",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure <iframe> and <frame> elements have an accessible name",
      "help": "Frames must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title?application=axeAPI",
      "nodes": []
    },
    {
      "id": "html-xml-lang-mismatch",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "description": "Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page",
      "help": "HTML elements with lang and xml:lang must have the same base language",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-xml-lang-mismatch?application=axeAPI",
      "nodes": []
    },
    {
      "id": "input-button-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure input buttons have discernible text",
      "help": "Input buttons must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-button-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "input-image-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure <input type=\"image\"> elements have alternative text",
      "help": "Image buttons must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-image-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "marquee",
      "impact": null,
      "tags": [
        "cat.parsing",
        "wcag2a",
        "wcag222",
        "TTv5",
        "TT2.b",
        "EN-301-549",
        "EN-9.2.2.2"
      ],
      "description": "Ensure <marquee> elements are not used",
      "help": "<marquee> elements are deprecated and must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/marquee?application=axeAPI",
      "nodes": []
    },
    {
      "id": "meta-refresh",
      "impact": null,
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag221",
        "TTv5",
        "TT8.a",
        "EN-301-549",
        "EN-9.2.2.1"
      ],
      "description": "Ensure <meta http-equiv=\"refresh\"> is not used for delayed refresh",
      "help": "Delayed refresh under 20 hours must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-refresh?application=axeAPI",
      "nodes": []
    },
    {
      "id": "object-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "description": "Ensure <object> elements have alternative text",
      "help": "<object> elements must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/object-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "role-img-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "description": "Ensure [role=\"img\"] elements have alternative text",
      "help": "[role=\"img\"] elements must have an alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/role-img-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "scrollable-region-focusable",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag211",
        "wcag213",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1",
        "EN-9.2.1.3"
      ],
      "description": "Ensure elements that have scrollable content are accessible by keyboard",
      "help": "Scrollable region must have keyboard access",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/scrollable-region-focusable?application=axeAPI",
      "nodes": []
    },
    {
      "id": "server-side-image-map",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag211",
        "section508",
        "section508.22.f",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1"
      ],
      "description": "Ensure that server-side image maps are not used",
      "help": "Server-side image maps must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/server-side-image-map?application=axeAPI",
      "nodes": []
    },
    {
      "id": "summary-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure summary elements have discernible text",
      "help": "Summary elements must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/summary-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "svg-img-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "description": "Ensure <svg> elements with an img, graphics-document or graphics-symbol role have an accessible text",
      "help": "<svg> elements with an img role must have an alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/svg-img-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "td-headers-attr",
      "impact": null,
      "tags": [
        "cat.tables",
        "wcag2a",
        "wcag131",
        "section508",
        "section508.22.g",
        "TTv5",
        "TT14.b",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure that each cell in a table that uses the headers attribute refers only to other cells in that table",
      "help": "Table cells that use the headers attribute must only refer to cells in the same table",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/td-headers-attr?application=axeAPI",
      "nodes": []
    },
    {
      "id": "th-has-data-cells",
      "impact": null,
      "tags": [
        "cat.tables",
        "wcag2a",
        "wcag131",
        "section508",
        "section508.22.g",
        "TTv5",
        "TT14.b",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure that <th> elements and elements with role=columnheader/rowheader have data cells they describe",
      "help": "Table headers in a data table must refer to data cells",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/th-has-data-cells?application=axeAPI",
      "nodes": []
    },
    {
      "id": "valid-lang",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2aa",
        "wcag312",
        "TTv5",
        "TT11.b",
        "EN-301-549",
        "EN-9.3.1.2",
        "ACT"
      ],
      "description": "Ensure lang attributes have valid values",
      "help": "lang attribute must have a valid value",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/valid-lang?application=axeAPI",
      "nodes": []
    },
    {
      "id": "video-caption",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag122",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT17.a",
        "EN-301-549",
        "EN-9.1.2.2"
      ],
      "description": "Ensure <video> elements have captions",
      "help": "<video> elements must have captions",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/video-caption?application=axeAPI",
      "nodes": []
    },
    {
      "id": "no-autoplay-audio",
      "impact": null,
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag142",
        "TTv5",
        "TT2.a",
        "EN-301-549",
        "EN-9.1.4.2",
        "ACT"
      ],
      "description": "Ensure <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio",
      "help": "<video> or <audio> elements must not play automatically",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/no-autoplay-audio?application=axeAPI",
      "nodes": []
    }
  ],
  "passes": [
    {
      "id": "aria-allowed-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure an element's role supports its ARIA attributes",
      "help": "Elements must only use supported ARIA attributes",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-allowed-attr?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "aria-allowed-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attributes are used correctly for the defined role"
            }
          ],
          "none": [
            {
              "id": "aria-unsupported-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attribute is supported"
            }
          ],
          "impact": null,
          "html": "<a class=\"brand\" href=\"#top\" aria-label=\"CorePulse home\">",
          "target": [
            "a[aria-label=\"CorePulse home\"]"
          ]
        }
      ]
    },
    {
      "id": "aria-command-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every ARIA button, link and menuitem has an accessible name",
      "help": "ARIA commands must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-command-name?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "has-visible-text",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element has text that is visible to screen readers"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<div class=\"deal\" data-deal=\"RTX 4070 Super \u2014 $549 at Newegg (ends in 2 days)\" role=\"button\" tabindex=\"0\">",
          "target": [
            ".deal[role=\"button\"]:nth-child(3)"
          ]
        }
      ]
    },
    {
      "id": "aria-conditional-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure ARIA attributes are used as described in the specification of the element's role",
      "help": "ARIA attributes must be used as specified for the element's role",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-conditional-attr?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "aria-conditional-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "ARIA attribute is allowed"
            }
          ],
          "none": [],
          "impact": null,
          "html": "<a class=\"brand\" href=\"#top\" aria-label=\"CorePulse home\">",
          "target": [
            "a[aria-label=\"CorePulse home\"]"
          ]
        }
      ]
    },
    {
      "id": "aria-deprecated-role",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure elements do not use deprecated roles",
      "help": "Deprecated ARIA roles must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-deprecated-role?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "deprecatedrole",
              "data": null,
              "relatedNodes": [],
              "impact": "minor",
              "message": "ARIA role is not deprecated"
            }
          ],
          "impact": null,
          "html": "<div class=\"seg\" role=\"tablist\" aria-label=\"Product category\">",
          "target": [
            ".seg"
          ]
        }
      ]
    },
    {
      "id": "aria-hidden-body",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "wcag412",
        "EN-301-549",
        "EN-9.1.3.1",
        "EN-9.4.1.2"
      ],
      "description": "Ensure aria-hidden=\"true\" is not present on the document body.",
      "help": "aria-hidden=\"true\" must not be present on the document body",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-body?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "aria-hidden-body",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "No aria-hidden attribute is present on document body"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<body>",
          "target": [
            "body"
          ]
        }
      ]
    },
    {
      "id": "aria-hidden-focus",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure aria-hidden elements are not focusable nor contain focusable elements",
      "help": "ARIA hidden element must not be focusable or contain focusable elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-focus?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "focusable-modal-open",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "No focusable elements while a modal is open"
            },
            {
              "id": "focusable-disabled",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "No focusable elements contained within element"
            },
            {
              "id": "focusable-not-tabbable",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "No focusable elements contained within element"
            }
          ],
          "none": [],
          "impact": null,
          "html": "<svg xmlns=\"http://www.w3.org/2000/svg\" style=\"display:none\" aria-hidden=\"true\">",
          "target": [
            "svg[aria-hidden=\"true\"]"
          ]
        }
      ]
    },
    {
      "id": "aria-prohibited-attr",
      "impact": "serious",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure ARIA attributes are not prohibited for an element's role",
      "help": "Elements must only use permitted ARIA attributes",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "aria-prohibited-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "ARIA attribute is allowed"
            }
          ],
          "impact": null,
          "html": "<a class=\"brand\" href=\"#top\" aria-label=\"CorePulse home\">",
          "target": [
            "a[aria-label=\"CorePulse home\"]"
          ]
        }
      ]
    },
    {
      "id": "aria-required-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure elements with ARIA roles have all required ARIA attributes",
      "help": "Required ARIA attributes must be provided",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-attr?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "aria-required-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "All required ARIA attributes are present"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<div class=\"seg\" role=\"tablist\" aria-label=\"Product category\">",
          "target": [
            ".seg"
          ]
        }
      ]
    },
    {
      "id": "aria-required-children",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure elements with an ARIA role that require child roles contain them",
      "help": "Certain ARIA roles must contain particular children",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-children?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "aria-required-children",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Required ARIA children are present"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<div class=\"seg\" role=\"tablist\" aria-label=\"Product category\">",
          "target": [
            ".seg"
          ]
        }
      ]
    },
    {
      "id": "aria-required-parent",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure elements with an ARIA role that require parent roles are contained by them",
      "help": "Certain ARIA roles must be contained by particular parents",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-parent?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "aria-required-parent",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Required ARIA parent role present"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<button class=\"seg-btn active\" data-cat=\"laptop\" role=\"tab\" aria-selected=\"true\">Laptops</button>",
          "target": [
            ".active"
          ]
        }
      ]
    },
    {
      "id": "aria-roles",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure all elements with a role attribute use a valid value",
      "help": "ARIA roles used must conform to valid values",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-roles?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "invalidrole",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA role is valid"
            },
            {
              "id": "abstractrole",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Abstract roles are not used"
            },
            {
              "id": "unsupportedrole",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA role is supported"
            }
          ],
          "impact": null,
          "html": "<div class=\"seg\" role=\"tablist\" aria-label=\"Product category\">",
          "target": [
            ".seg"
          ]
        }
      ]
    },
    {
      "id": "aria-valid-attr-value",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure all ARIA attributes have valid values",
      "help": "ARIA attributes must conform to valid values",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr-value?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "aria-valid-attr-value",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attribute values are valid"
            },
            {
              "id": "aria-errormessage",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-errormessage exists and references elements visible to screen readers that use a supported aria-errormessage technique"
            },
            {
              "id": "aria-level",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-level values are valid"
            }
          ],
          "none": [],
          "impact": null,
          "html": "<a class=\"brand\" href=\"#top\" aria-label=\"CorePulse home\">",
          "target": [
            "a[aria-label=\"CorePulse home\"]"
          ]
        }
      ]
    },
    {
      "id": "aria-valid-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure attributes that begin with aria- are valid ARIA attributes",
      "help": "ARIA attributes must conform to valid names",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "aria-valid-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attribute name is valid"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<a class=\"brand\" href=\"#top\" aria-label=\"CorePulse home\">",
          "target": [
            "a[aria-label=\"CorePulse home\"]"
          ]
        }
      ]
    },
    {
      "id": "autocomplete-valid",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag21aa",
        "wcag135",
        "EN-301-549",
        "EN-9.1.3.5",
        "ACT"
      ],
      "description": "Ensure the autocomplete attribute is correct and suitable for the form field",
      "help": "autocomplete attribute must be used correctly",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/autocomplete-valid?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "autocomplete-valid",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "the autocomplete attribute is correctly formatted"
            }
          ],
          "none": [],
          "impact": null,
          "html": "<input type=\"email\" id=\"nlEmail\" placeholder=\"you@example.com\" aria-label=\"Email address\" autocomplete=\"email\">",
          "target": [
            "#nlEmail"
          ]
        }
      ]
    },
    {
      "id": "avoid-inline-spacing",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag21aa",
        "wcag1412",
        "EN-301-549",
        "EN-9.1.4.12",
        "ACT"
      ],
      "description": "Ensure that text spacing set through style attributes can be adjusted with custom stylesheets",
      "help": "Inline text spacing must be adjustable with custom stylesheets",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/avoid-inline-spacing?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "important-letter-spacing",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Letter-spacing in the style attribute is not set to !important, or meets the minimum"
            },
            {
              "id": "important-word-spacing",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "word-spacing in the style attribute is not set to !important, or meets the minimum"
            },
            {
              "id": "important-line-height",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "line-height in the style attribute is not set to !important, or meets the minimum"
            }
          ],
          "none": [],
          "impact": null,
          "html": "<span style=\"display:inline-flex;align-items:center;gap:6px\"><svg class=\"icon\"><use href=\"#i-clock\"></use></svg>12 min read</span>",
          "target": [
            ".hero-meta > span:nth-child(6)"
          ]
        }
      ]
    },
    {
      "id": "button-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure buttons have discernible text",
      "help": "Buttons must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/button-name?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute exists and is not empty"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<button class=\"icon-btn\" id=\"searchOpen\" aria-label=\"Search CorePulse\"><svg class=\"icon\"><use href=\"#i-search\"></use></svg></button>",
          "target": [
            "#searchOpen"
          ]
        }
      ]
    },
    {
      "id": "bypass",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag241",
        "section508",
        "section508.22.o",
        "TTv5",
        "TT9.a",
        "EN-301-549",
        "EN-9.2.4.1"
      ],
      "description": "Ensure each page has at least one mechanism for a user to bypass navigation and jump straight to the content",
      "help": "Page must have means to bypass repeated blocks",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/bypass?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "internal-link-present",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Valid skip link found"
            },
            {
              "id": "header-present",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1 class=\"hero-title\">The chiplet wars enter their endgame \u2014 and your next upgrade will pay for it</h1>",
                  "target": [
                    "h1"
                  ]
                },
                {
                  "html": "<h2 class=\"latest-title\"><span class=\"live-dot\"></span>The Latest</h2>",
                  "target": [
                    ".latest-title"
                  ]
                },
                {
                  "html": "<h2>Three shifts quietly rewriting the computing stack</h2>",
                  "target": [
                    "#trends > .container > .section-head.reveal > div:nth-child(1) > h2"
                  ]
                },
                {
                  "html": "<h2>Tested in-house. Scored without mercy.</h2>",
                  "target": [
                    "#reviews > .container > .section-head.reveal > div:nth-child(1) > h2"
                  ]
                },
                {
                  "html": "<h3><a href=\"#reviews\">Ryzen 9 9950X3D review: the gaming crown, defended \u2014 for now</a></h3>",
                  "target": [
                    ".review-feature-body > h3"
                  ]
                },
                {
                  "html": "<h2>Two products. Every spec. Zero marketing.</h2>",
                  "target": [
                    "#compare > .container > .section-head.reveal > div:nth-child(1) > h2"
                  ]
                },
                {
                  "html": "<h2>Level up your machine, one guide at a time</h2>",
                  "target": [
                    "#tutorials > .container > .section-head.reveal > div:nth-child(1) > h2"
                  ]
                },
                {
                  "html": "<h3>Our standardized benchmark suite. Free for everyone.</h3>",
                  "target": [
                    ".bench-strip > div:nth-child(1) > h3"
                  ]
                },
                {
                  "html": "<h3>Hot Deals</h3>",
                  "target": [
                    "#shop > .side-box-head > h3"
                  ]
                },
                {
                  "html": "<h3>Security Alerts</h3>",
                  "target": [
                    ".side-box.reveal:nth-child(2) > .side-box-head > h3"
                  ]
                },
                {
                  "html": "<h3>Developer Spotlight</h3>",
                  "target": [
                    ".spotlight > .side-box-head > h3"
                  ]
                },
                {
                  "html": "<h2>How we test \u2014 and why the numbers hold up</h2>",
                  "target": [
                    ".methodology-copy > h2"
                  ]
                },
                {
                  "html": "<h2>One email. Every Sunday. Zero noise.</h2>",
                  "target": [
                    ".newsletter-in > h2"
                  ]
                },
                {
                  "html": "<h4>Sections</h4>",
                  "target": [
                    ".footer-col:nth-child(2) > h4"
                  ]
                },
                {
                  "html": "<h4>Company</h4>",
                  "target": [
                    ".footer-col:nth-child(3) > h4"
                  ]
                },
                {
                  "html": "<h4>Follow</h4>",
                  "target": [
                    ".footer-col:nth-child(4) > h4"
                  ]
                },
                {
                  "html": "<h3 id=\"modalTitle\"></h3>",
                  "target": [
                    "#modalTitle"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Page has a heading"
            },
            {
              "id": "landmark",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<main id=\"top\">",
                  "target": [
                    "#top"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Page has a landmark region"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "color-contrast",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#eaedef",
                "bgColor": "#0a0c10",
                "contrastRatio": 16.64,
                "fontSize": "15.8pt (21px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "3:1",
                "shadowColor": null
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element has sufficient color contrast of 16.64"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<span class=\"brand-name\">Core<em>Pulse</em></span>",
          "target": [
            "a[aria-label=\"CorePulse home\"] > .brand-text > .brand-name"
          ]
        }
      ]
    },
    {
      "id": "document-title",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag242",
        "TTv5",
        "TT12.a",
        "EN-301-549",
        "EN-9.2.4.2",
        "ACT"
      ],
      "description": "Ensure each HTML document contains a non-empty <title> element",
      "help": "Documents must have <title> element to aid in navigation",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/document-title?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "doc-has-title",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Document has a non-empty <title> element"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "duplicate-id-aria",
      "impact": null,
      "tags": [
        "cat.parsing",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure every id attribute value used in ARIA and in labels is unique",
      "help": "IDs used in ARIA and labels must be unique",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/duplicate-id-aria?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "duplicate-id-aria",
              "data": "modalTitle",
              "relatedNodes": [],
              "impact": "critical",
              "message": "Document has no elements referenced with ARIA or labels that share the same id attribute"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<h3 id=\"modalTitle\"></h3>",
          "target": [
            "#modalTitle"
          ]
        }
      ]
    },
    {
      "id": "form-field-multiple-labels",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag332",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.3.3.2"
      ],
      "description": "Ensure form field does not have multiple label elements",
      "help": "Form field must not have multiple label elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/form-field-multiple-labels?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "multiple-label",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<label class=\"sel\">",
                  "target": [
                    "label:nth-child(1)"
                  ]
                }
              ],
              "impact": "moderate",
              "message": "Form field does not have multiple label elements"
            }
          ],
          "impact": null,
          "html": "<select id=\"selectA\" aria-label=\"First product\"><option value=\"0\">ASUS ROG Zephyrus G14 (2025)</option><option value=\"1\">Apple MacBook Pro 14\u2033 (M4 Pro)</option><option value=\"2\">Lenovo ThinkPad X1 Carbon Gen 13</option><option value=\"3\">Framework Framework Laptop 16</option></select>",
          "target": [
            "#selectA"
          ]
        }
      ]
    },
    {
      "id": "html-has-lang",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "TTv5",
        "TT11.a",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "description": "Ensure every HTML document has a lang attribute",
      "help": "<html> element must have a lang attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-has-lang?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "has-lang",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "The <html> element has a lang attribute"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "html-lang-valid",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "TTv5",
        "TT11.a",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "description": "Ensure the lang attribute of the <html> element has a valid value",
      "help": "<html> element must have a valid value for the lang attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-lang-valid?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "valid-lang",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Value of lang attribute is included in the list of valid languages"
            }
          ],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "image-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "TT7.b",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "description": "Ensure <img> elements have alternative text or a role of none or presentation",
      "help": "Images must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/image-alt?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "has-alt",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has an alt attribute"
            }
          ],
          "all": [],
          "none": [
            {
              "id": "alt-space-value",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has a valid alt attribute value"
            }
          ],
          "impact": null,
          "html": "<img src=\"https://placehold.co/88x88/161A23/C8F542?text=CP&amp;font=montserrat\" alt=\"CorePulse logo\" width=\"42\" height=\"42\">",
          "target": [
            "a[aria-label=\"CorePulse home\"] > img[alt=\"CorePulse logo\"][width=\"42\"][height=\"42\"]"
          ]
        }
      ]
    },
    {
      "id": "label",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.n",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every form element has a label",
      "help": "Form elements must have labels",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/label?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute exists and is not empty"
            },
            {
              "id": "non-empty-placeholder",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has a placeholder attribute"
            }
          ],
          "all": [],
          "none": [
            {
              "id": "hidden-explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Form element has a visible explicit <label>"
            }
          ],
          "impact": null,
          "html": "<input type=\"email\" id=\"nlEmail\" placeholder=\"you@example.com\" aria-label=\"Email address\" autocomplete=\"email\">",
          "target": [
            "#nlEmail"
          ]
        }
      ]
    },
    {
      "id": "link-in-text-block",
      "impact": null,
      "tags": [
        "cat.color",
        "wcag2a",
        "wcag141",
        "TTv5",
        "TT13.a",
        "EN-301-549",
        "EN-9.1.4.1"
      ],
      "description": "Ensure links are distinguished from surrounding text in a way that does not rely on color",
      "help": "Links must be distinguishable without relying on color",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-in-text-block?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "link-in-text-block",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<p class=\"methodology-note\">Every product is purchased at retail and tested for a minimum of three weeks on our standardized harness. When a BIOS update or driver changes a result, the review is re-run and the changelog says so. <a href=\"#methodology\">Read the full methodology</a>.</p>",
                  "target": [
                    ".methodology-note"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Links can be distinguished from surrounding text in some way other than by color"
            },
            {
              "id": "link-in-text-block-style",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<p class=\"methodology-note\">Every product is purchased at retail and tested for a minimum of three weeks on our standardized harness. When a BIOS update or driver changes a result, the review is re-run and the changelog says so. <a href=\"#methodology\">Read the full methodology</a>.</p>",
                  "target": [
                    ".methodology-note"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Links can be distinguished from surrounding text by visual styling"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<a href=\"#methodology\">Read the full methodology</a>",
          "target": [
            ".methodology-note > a[href$=\"#methodology\"]"
          ]
        }
      ]
    },
    {
      "id": "link-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag244",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.2.4.4",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure links have discernible text",
      "help": "Links must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-name?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "has-visible-text",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element has text that is visible to screen readers"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "aria-label attribute exists and is not empty"
            }
          ],
          "all": [],
          "none": [
            {
              "id": "focusable-no-name",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element is not in tab order or has accessible text"
            }
          ],
          "impact": null,
          "html": "<a class=\"brand\" href=\"#top\" aria-label=\"CorePulse home\">",
          "target": [
            "a[aria-label=\"CorePulse home\"]"
          ]
        }
      ]
    },
    {
      "id": "list",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure that lists are structured correctly",
      "help": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/list?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "only-listitems",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "List element only has direct children that are allowed inside <li> elements"
            }
          ],
          "impact": null,
          "html": "<ul class=\"pros\">",
          "target": [
            ".pros"
          ]
        }
      ]
    },
    {
      "id": "listitem",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure <li> elements are used semantically",
      "help": "<li> elements must be contained in a <ul> or <ol>",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/listitem?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "listitem",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "List item has a <ul>, <ol> or role=\"list\" parent element"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<li><svg class=\"icon\"><use href=\"#i-check\"></use></svg>Class-leading 1% lows in cache-bound titles</li>",
          "target": [
            ".pros > li:nth-child(1)"
          ]
        }
      ]
    },
    {
      "id": "meta-viewport",
      "impact": null,
      "tags": [
        "cat.sensory-and-visual-cues",
        "wcag2aa",
        "wcag144",
        "EN-301-549",
        "EN-9.1.4.4",
        "ACT"
      ],
      "description": "Ensure <meta name=\"viewport\"> does not disable text scaling and zooming",
      "help": "Zooming and scaling must not be disabled",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-viewport?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "meta-viewport",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "<meta> tag does not disable zooming on mobile devices"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",
          "target": [
            "meta[name=\"viewport\"]"
          ]
        }
      ]
    },
    {
      "id": "nested-interactive",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies",
      "help": "Interactive controls must not be nested",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/nested-interactive?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "no-focusable-content",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element does not have focusable descendants"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<img src=\"https://placehold.co/88x88/161A23/C8F542?text=CP&amp;font=montserrat\" alt=\"CorePulse logo\" width=\"42\" height=\"42\">",
          "target": [
            "a[aria-label=\"CorePulse home\"] > img[alt=\"CorePulse logo\"][width=\"42\"][height=\"42\"]"
          ]
        }
      ]
    },
    {
      "id": "select-name",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.n",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure select element has an accessible name",
      "help": "Select element must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/select-name?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "implicit-label",
              "data": {
                "implicitLabel": "Product AFirst product"
              },
              "relatedNodes": [
                {
                  "html": "<label class=\"sel\">",
                  "target": [
                    "label:nth-child(1)"
                  ]
                }
              ],
              "impact": "critical",
              "message": "Element has an implicit (wrapped) <label>"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute exists and is not empty"
            }
          ],
          "all": [],
          "none": [
            {
              "id": "hidden-explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Form element has a visible explicit <label>"
            }
          ],
          "impact": null,
          "html": "<select id=\"selectA\" aria-label=\"First product\"><option value=\"0\">ASUS ROG Zephyrus G14 (2025)</option><option value=\"1\">Apple MacBook Pro 14\u2033 (M4 Pro)</option><option value=\"2\">Lenovo ThinkPad X1 Carbon Gen 13</option><option value=\"3\">Framework Framework Laptop 16</option></select>",
          "target": [
            "#selectA"
          ]
        }
      ]
    },
    {
      "id": "target-size",
      "impact": null,
      "tags": [
        "cat.sensory-and-visual-cues",
        "wcag22aa",
        "wcag258"
      ],
      "description": "Ensure touch targets have sufficient size and space",
      "help": "All touch targets must be 24px large, or leave sufficient space",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/target-size?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "target-size",
              "data": {
                "minSize": 24,
                "width": 180.5,
                "height": 42
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Control has sufficient size (180.5px by 42px, should be at least 24px by 24px)"
            },
            {
              "id": "target-offset",
              "data": {
                "closestOffset": 24,
                "minOffset": 24
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Target has sufficient space from its closest neighbors. Safe clickable space has a diameter of 24px which is at least 24px."
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<a class=\"brand\" href=\"#top\" aria-label=\"CorePulse home\">",
          "target": [
            "a[aria-label=\"CorePulse home\"]"
          ]
        }
      ]
    }
  ],
  "incomplete": [
    {
      "id": "aria-prohibited-attr",
      "impact": "serious",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure ARIA attributes are not prohibited for an element's role",
      "help": "Elements must only use permitted ARIA attributes",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "aria-prohibited-attr",
              "data": {
                "role": null,
                "nodeName": "div",
                "messageKey": "noRoleSingular",
                "prohibited": [
                  "aria-label"
                ]
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ],
          "impact": "serious",
          "html": "<div class=\"ticker\" aria-label=\"Breaking headlines\">",
          "target": [
            ".ticker"
          ],
          "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
        }
      ]
    },
    {
      "id": "color-contrast",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": null,
                "bgColor": null,
                "contrastRatio": 0,
                "fontSize": "7.5pt (10px)",
                "fontWeight": "bold",
                "messageKey": "bgOverlap",
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element's background color could not be determined because it is overlapped by another element"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<div class=\"ticker-label\"><span class=\"live-dot\"></span>LIVE</div>",
          "target": [
            ".ticker-label"
          ],
          "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
        }
      ]
    }
  ],
  "violations": [
    {
      "id": "color-contrast",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"topbar\">\n  <div class=\"container topbar-in\">\n    <span id=\"topbarDate\">Thursday, November 12, 2026</span>\n    <span class=\"tb-right\"><span>San Francisco HQ</span><span class=\"tb-sep\"></span><span><span id=\"utcClock\">10:12:33</span> UTC</span></span>\n  </div>\n</div>",
                  "target": [
                    ".topbar"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span id=\"topbarDate\">Thursday, November 12, 2026</span>",
          "target": [
            "#topbarDate"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"topbar\">\n  <div class=\"container topbar-in\">\n    <span id=\"topbarDate\">Thursday, November 12, 2026</span>\n    <span class=\"tb-right\"><span>San Francisco HQ</span><span class=\"tb-sep\"></span><span><span id=\"utcClock\">10:12:33</span> UTC</span></span>\n  </div>\n</div>",
                  "target": [
                    ".topbar"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>San Francisco HQ</span>",
          "target": [
            ".tb-right > span:nth-child(1)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"topbar\">\n  <div class=\"container topbar-in\">\n    <span id=\"topbarDate\">Thursday, November 12, 2026</span>\n    <span class=\"tb-right\"><span>San Francisco HQ</span><span class=\"tb-sep\"></span><span><span id=\"utcClock\">10:12:33</span> UTC</span></span>\n  </div>\n</div>",
                  "target": [
                    ".topbar"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span><span id=\"utcClock\">10:12:33</span> UTC</span>",
          "target": [
            ".tb-right > span:nth-child(3)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"topbar\">\n  <div class=\"container topbar-in\">\n    <span id=\"topbarDate\">Thursday, November 12, 2026</span>\n    <span class=\"tb-right\"><span>San Francisco HQ</span><span class=\"tb-sep\"></span><span><span id=\"utcClock\">10:12:33</span> UTC</span></span>\n  </div>\n</div>",
                  "target": [
                    ".topbar"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span id=\"utcClock\">10:12:33</span>",
          "target": [
            "#utcClock"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.1pt (9.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.1pt (9.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"brand-tag\">Signal over noise.</span>",
          "target": [
            "a[aria-label=\"CorePulse home\"] > .brand-text > .brand-tag"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.1pt (9.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "10.1pt (13.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 10.1pt (13.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"methodology-note\">Every product is purchased at retail and tested for a minimum of three weeks on our standardized harness. When a BIOS update or driver changes a result, the review is re-run and the changelog says so. <a href=\"#methodology\">Read the full methodology</a>.</p>",
          "target": [
            ".methodology-note"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 10.1pt (13.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.1pt (9.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.1pt (9.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"brand-tag\">Signal over noise.</span>",
          "target": [
            ".footer-brand > .brand[href$=\"#top\"] > .brand-text > .brand-tag"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.1pt (9.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0c0f15",
                "contrastRatio": 4.24,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"latest\" id=\"latest\">",
                  "target": [
                    "#latest"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"story-time\">09:41</span>",
          "target": [
            ".story.in[href$=\"#trends\"]:nth-child(1) > .story-time"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0c0f15",
                "contrastRatio": 4.24,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"latest\" id=\"latest\">",
                  "target": [
                    "#latest"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"story-time\">08:15</span>",
          "target": [
            ".story.in[href$=\"#reviews\"]:nth-child(2) > .story-time"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0c0f15",
                "contrastRatio": 4.24,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"latest\" id=\"latest\">",
                  "target": [
                    "#latest"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"story-time\">07:52</span>",
          "target": [
            ".story.in[href$=\"#shop\"]:nth-child(3) > .story-time"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0c0f15",
                "contrastRatio": 4.24,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"latest\" id=\"latest\">",
                  "target": [
                    "#latest"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"story-time\">07:03</span>",
          "target": [
            ".story.in[href$=\"#reviews\"]:nth-child(4) > .story-time"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0c0f15",
                "contrastRatio": 4.24,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"latest\" id=\"latest\">",
                  "target": [
                    "#latest"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"story-time\">06:30</span>",
          "target": [
            ".story.in[href$=\"#shop\"]:nth-child(5) > .story-time"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0c0f15",
                "contrastRatio": 4.24,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"latest\" id=\"latest\">",
                  "target": [
                    "#latest"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"story-time\">05:58</span>",
          "target": [
            ".story.in[href$=\"#trends\"]:nth-child(6) > .story-time"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"idx\">01</span>",
          "target": [
            ".section-head.in.reveal > div:nth-child(1) > .kicker > .idx"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<cite>\u2014 Mara Ellison, Senior Hardware Editor</cite>",
          "target": [
            "cite"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>Advanced-packaging capacity is reportedly booked through 2026, pushing lead times for flagship GPUs past eight weeks.</span>",
          "target": [
            ".trends-media > figcaption > span"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"idx\">01</span>",
          "target": [
            "#trends > .container > .section-head.in.reveal > div:nth-child(1) > .kicker > .idx"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"idx\">02</span>",
          "target": [
            "#reviews > .container > .section-head.in.reveal > div:nth-child(1) > .kicker > .idx"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#11141b",
                "contrastRatio": 4.07,
                "fontSize": "7.5pt (10px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"review-feature acc reveal in\">",
                  "target": [
                    "article"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 7.5pt (10px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"pc-label\">What we liked</p>",
          "target": [
            "div:nth-child(1) > .pc-label"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 7.5pt (10px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#11141b",
                "contrastRatio": 4.07,
                "fontSize": "7.5pt (10px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"review-feature acc reveal in\">",
                  "target": [
                    "article"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 7.5pt (10px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"pc-label\">What held it back</p>",
          "target": [
            "div:nth-child(2) > .pc-label"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 7.5pt (10px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"review-date\">Mar 8, 2025</span>",
          "target": [
            ".review-item.acc.in:nth-child(1) > .review-row.acc-head > .review-row-score > .review-date"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"review-date\">Mar 5, 2025</span>",
          "target": [
            ".review-item.acc.in:nth-child(2) > .review-row.acc-head > .review-row-score > .review-date"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"review-date\">Feb 27, 2025</span>",
          "target": [
            ".review-item.acc.in:nth-child(3) > .review-row.acc-head > .review-row-score > .review-date"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"review-date\">Feb 21, 2025</span>",
          "target": [
            ".review-item.acc.in:nth-child(4) > .review-row.acc-head > .review-row-score > .review-date"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0c0f15",
                "contrastRatio": 4.24,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"section section-console\" id=\"compare\">",
                  "target": [
                    "#compare"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"idx\">03</span>",
          "target": [
            "#compare > .container > .section-head.in.reveal > div:nth-child(1) > .kicker > .idx"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#11141b",
                "contrastRatio": 4.07,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"console-bar\">",
                  "target": [
                    ".console-bar"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"console-title\">corepulse@compare-lab:~$ ./specimens --head-to-head</span>",
          "target": [
            ".console-title"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#11141b",
                "contrastRatio": 4.07,
                "fontSize": "7.5pt (10px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"console-bar\">",
                  "target": [
                    ".console-bar"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 7.5pt (10px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"console-ver\">v2.4.1</span>",
          "target": [
            ".console-ver"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 7.5pt (10px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0e1117",
                "contrastRatio": 4.17,
                "fontSize": "7.1pt (9.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"console reveal in\">",
                  "target": [
                    ".console"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.17 (foreground color: #6f7783, background color: #0e1117, font size: 7.1pt (9.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>Product A</span>",
          "target": [
            "label:nth-child(1) > span"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.17 (foreground color: #6f7783, background color: #0e1117, font size: 7.1pt (9.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0e1117",
                "contrastRatio": 4.17,
                "fontSize": "7.5pt (10px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"console reveal in\">",
                  "target": [
                    ".console"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.17 (foreground color: #6f7783, background color: #0e1117, font size: 7.5pt (10px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"vs\">VS</span>",
          "target": [
            ".vs"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.17 (foreground color: #6f7783, background color: #0e1117, font size: 7.5pt (10px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0e1117",
                "contrastRatio": 4.17,
                "fontSize": "7.1pt (9.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"console reveal in\">",
                  "target": [
                    ".console"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.17 (foreground color: #6f7783, background color: #0e1117, font size: 7.1pt (9.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>Product B</span>",
          "target": [
            "label:nth-child(3) > span"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.17 (foreground color: #6f7783, background color: #0e1117, font size: 7.1pt (9.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0e1117",
                "contrastRatio": 4.17,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"console reveal in\">",
                  "target": [
                    ".console"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.17 (foreground color: #6f7783, background color: #0e1117, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"console-hint\">Scores come from our own bench \u00b7 specs normalized per row \u00b7 works fully offline</span>",
          "target": [
            ".console-hint"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.17 (foreground color: #6f7783, background color: #0e1117, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#10131a",
                "contrastRatio": 4.1,
                "fontSize": "7.1pt (9.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"cmp-product\">",
                  "target": [
                    ".cmp-product:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.1 (foreground color: #6f7783, background color: #10131a, font size: 7.1pt (9.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"cmp-brand\">ASUS</span>",
          "target": [
            ".cmp-product:nth-child(1) > div:nth-child(2) > .cmp-brand"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.1 (foreground color: #6f7783, background color: #10131a, font size: 7.1pt (9.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#10131a",
                "contrastRatio": 4.1,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"cmp-product\">",
                  "target": [
                    ".cmp-product:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.1 (foreground color: #6f7783, background color: #10131a, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>/10</span>",
          "target": [
            ".cmp-product:nth-child(1) > .cmp-score > span"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.1 (foreground color: #6f7783, background color: #10131a, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#10131a",
                "contrastRatio": 4.1,
                "fontSize": "7.1pt (9.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"cmp-product\">",
                  "target": [
                    ".cmp-product:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.1 (foreground color: #6f7783, background color: #10131a, font size: 7.1pt (9.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"cmp-brand\">Apple</span>",
          "target": [
            ".cmp-product:nth-child(2) > div:nth-child(2) > .cmp-brand"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.1 (foreground color: #6f7783, background color: #10131a, font size: 7.1pt (9.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#10131a",
                "contrastRatio": 4.1,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"cmp-product\">",
                  "target": [
                    ".cmp-product:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.1 (foreground color: #6f7783, background color: #10131a, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>/10</span>",
          "target": [
            ".cmp-product:nth-child(2) > .cmp-score > span"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.1 (foreground color: #6f7783, background color: #10131a, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0e1117",
                "contrastRatio": 4.17,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"console reveal in\">",
                  "target": [
                    ".console"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.17 (foreground color: #6f7783, background color: #0e1117, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<th>Specification</th>",
          "target": [
            "thead > tr > th:nth-child(1)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.17 (foreground color: #6f7783, background color: #0e1117, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0e1117",
                "contrastRatio": 4.17,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"console reveal in\">",
                  "target": [
                    ".console"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.17 (foreground color: #6f7783, background color: #0e1117, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<th>ROG Zephyrus G14 (2025)</th>",
          "target": [
            "th:nth-child(2)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.17 (foreground color: #6f7783, background color: #0e1117, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0e1117",
                "contrastRatio": 4.17,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"console reveal in\">",
                  "target": [
                    ".console"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.17 (foreground color: #6f7783, background color: #0e1117, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<th>MacBook Pro 14\u2033 (M4 Pro)</th>",
          "target": [
            "th:nth-child(3)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.17 (foreground color: #6f7783, background color: #0e1117, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"idx\">04</span>",
          "target": [
            "#tutorials > .container > .section-head.in.reveal > div:nth-child(1) > .kicker > .idx"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "9.8pt (13px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"tutorial-index\">01</span>",
          "target": [
            ".tutorial.acc.in:nth-child(1) > .tutorial-head.acc-head > .tutorial-index"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>28 min read</span>",
          "target": [
            ".tutorial.acc.in:nth-child(1) > .tutorial-head.acc-head > span:nth-child(2) > .tutorial-meta > span:nth-child(2)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>Updated Mar 12, 2025</span>",
          "target": [
            ".tutorial.acc.in:nth-child(1) > .tutorial-head.acc-head > span:nth-child(2) > .tutorial-meta > span:nth-child(3)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "9.8pt (13px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"tutorial-index\">02</span>",
          "target": [
            ".tutorial.acc.in:nth-child(2) > .tutorial-head.acc-head > .tutorial-index"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>16 min read</span>",
          "target": [
            ".tutorial.acc.in:nth-child(2) > .tutorial-head.acc-head > span:nth-child(2) > .tutorial-meta > span:nth-child(2)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>Updated Mar 4, 2025</span>",
          "target": [
            ".tutorial.acc.in:nth-child(2) > .tutorial-head.acc-head > span:nth-child(2) > .tutorial-meta > span:nth-child(3)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "9.8pt (13px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"tutorial-index\">03</span>",
          "target": [
            ".tutorial.acc.in:nth-child(3) > .tutorial-head.acc-head > .tutorial-index"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>11 min read</span>",
          "target": [
            ".tutorial.acc.in:nth-child(3) > .tutorial-head.acc-head > span:nth-child(2) > .tutorial-meta > span:nth-child(2)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>Updated Feb 19, 2025</span>",
          "target": [
            ".tutorial.acc.in:nth-child(3) > .tutorial-head.acc-head > span:nth-child(2) > .tutorial-meta > span:nth-child(3)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#11141b",
                "contrastRatio": 4.07,
                "fontSize": "7.5pt (10px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"side-box reveal in\" id=\"shop\" style=\"--d: 0ms;\">",
                  "target": [
                    "#shop"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 7.5pt (10px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#shop\" class=\"side-link demo-link\">All deals</a>",
          "target": [
            "#shop > .side-box-head > .side-link.demo-link[href$=\"#shop\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 7.5pt (10px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#11141b",
                "contrastRatio": 4.07,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"side-box reveal in\" id=\"shop\" style=\"--d: 0ms;\">",
                  "target": [
                    "#shop"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"side-sub\">Hand-picked by the deals team \u00b7 updated hourly \u00b7 click to copy</p>",
          "target": [
            "#shop > .side-sub"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#11141b",
                "contrastRatio": 4.07,
                "fontSize": "8.6pt (11.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"side-box reveal in\" id=\"shop\" style=\"--d: 0ms;\">",
                  "target": [
                    "#shop"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"deal-meta\">Newegg \u00b7 ends in 2 days</span>",
          "target": [
            ".deal[role=\"button\"]:nth-child(3) > div:nth-child(1) > .deal-meta"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#11141b",
                "contrastRatio": 4.07,
                "fontSize": "8.6pt (11.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"side-box reveal in\" id=\"shop\" style=\"--d: 0ms;\">",
                  "target": [
                    "#shop"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<s>$599</s>",
          "target": [
            ".deal[role=\"button\"]:nth-child(3) > .deal-price > s"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#11141b",
                "contrastRatio": 4.07,
                "fontSize": "8.6pt (11.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"side-box reveal in\" id=\"shop\" style=\"--d: 0ms;\">",
                  "target": [
                    "#shop"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"deal-meta\">Amazon \u00b7 lightning deal</span>",
          "target": [
            ".deal[role=\"button\"]:nth-child(4) > div:nth-child(1) > .deal-meta"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#11141b",
                "contrastRatio": 4.07,
                "fontSize": "8.6pt (11.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"side-box reveal in\" id=\"shop\" style=\"--d: 0ms;\">",
                  "target": [
                    "#shop"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<s>$96</s>",
          "target": [
            ".deal[role=\"button\"]:nth-child(4) > .deal-price > s"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#11141b",
                "contrastRatio": 4.07,
                "fontSize": "8.6pt (11.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"side-box reveal in\" id=\"shop\" style=\"--d: 0ms;\">",
                  "target": [
                    "#shop"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"deal-meta\">Best Buy \u00b7 member price</span>",
          "target": [
            ".deal[role=\"button\"]:nth-child(5) > div:nth-child(1) > .deal-meta"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#11141b",
                "contrastRatio": 4.07,
                "fontSize": "8.6pt (11.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"side-box reveal in\" id=\"shop\" style=\"--d: 0ms;\">",
                  "target": [
                    "#shop"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<s>$129</s>",
          "target": [
            ".deal[role=\"button\"]:nth-child(5) > .deal-price > s"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#11141b",
                "contrastRatio": 4.07,
                "fontSize": "7.5pt (10px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"side-box reveal in\" style=\"--d: 70ms;\">",
                  "target": [
                    ".side-box.in.reveal:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 7.5pt (10px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#shop\" class=\"side-link demo-link\">Archive</a>",
          "target": [
            ".side-box.in.reveal:nth-child(2) > .side-box-head > .side-link.demo-link[href$=\"#shop\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 7.5pt (10px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#11141b",
                "contrastRatio": 4.07,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"side-box reveal in\" style=\"--d: 70ms;\">",
                  "target": [
                    ".side-box.in.reveal:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"side-sub\">Verified by our security desk \u00b7 severity rated</p>",
          "target": [
            ".side-box.in.reveal:nth-child(2) > .side-sub"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#11141b",
                "contrastRatio": 4.07,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"side-box reveal in\" style=\"--d: 70ms;\">",
                  "target": [
                    ".side-box.in.reveal:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"alert-time\">2 hours ago \u00b7 9.8 CVSS</span>",
          "target": [
            ".alert-item:nth-child(3) > .alert-time"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#11141b",
                "contrastRatio": 4.07,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"side-box reveal in\" style=\"--d: 70ms;\">",
                  "target": [
                    ".side-box.in.reveal:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"alert-time\">6 hours ago \u00b7 7.5 CVSS</span>",
          "target": [
            ".alert-item:nth-child(4) > .alert-time"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "9.8pt (13px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"tutorial-index\">04</span>",
          "target": [
            ".tutorial.acc.in:nth-child(4) > .tutorial-head.acc-head > .tutorial-index"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>19 min read</span>",
          "target": [
            ".tutorial.acc.in:nth-child(4) > .tutorial-head.acc-head > span:nth-child(2) > .tutorial-meta > span:nth-child(2)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>Updated Feb 6, 2025</span>",
          "target": [
            ".tutorial.acc.in:nth-child(4) > .tutorial-head.acc-head > span:nth-child(2) > .tutorial-meta > span:nth-child(3)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#11141b",
                "contrastRatio": 4.07,
                "fontSize": "9.4pt (12.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"side-box spotlight reveal in\" style=\"--d: 140ms;\">",
                  "target": [
                    ".spotlight"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 9.4pt (12.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"spot-name\"><strong>Amara Okafor</strong> \u00b7 Firmware Engineer, RISC-V International</p>",
          "target": [
            ".spot-name"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 9.4pt (12.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "11.6pt (15.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 11.6pt (15.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"idx\">05</span>",
          "target": [
            ".methodology-copy > .kicker > .idx"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 11.6pt (15.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0c0f15",
                "contrastRatio": 4.24,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"latest\" id=\"latest\">",
                  "target": [
                    "#latest"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"story-time\">09:41</span>",
          "target": [
            ".story.reveal[href$=\"#trends\"]:nth-child(1) > .story-time"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0c0f15",
                "contrastRatio": 4.24,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"latest\" id=\"latest\">",
                  "target": [
                    "#latest"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"story-time\">08:15</span>",
          "target": [
            ".story.reveal[href$=\"#reviews\"]:nth-child(2) > .story-time"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0c0f15",
                "contrastRatio": 4.24,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"latest\" id=\"latest\">",
                  "target": [
                    "#latest"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"story-time\">07:52</span>",
          "target": [
            ".story.reveal[href$=\"#shop\"]:nth-child(3) > .story-time"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0c0f15",
                "contrastRatio": 4.24,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"latest\" id=\"latest\">",
                  "target": [
                    "#latest"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"story-time\">07:03</span>",
          "target": [
            ".story.reveal[href$=\"#reviews\"]:nth-child(4) > .story-time"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0c0f15",
                "contrastRatio": 4.24,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"latest\" id=\"latest\">",
                  "target": [
                    "#latest"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"story-time\">06:30</span>",
          "target": [
            ".story.reveal[href$=\"#shop\"]:nth-child(5) > .story-time"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0c0f15",
                "contrastRatio": 4.24,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"latest\" id=\"latest\">",
                  "target": [
                    "#latest"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"story-time\">05:58</span>",
          "target": [
            ".story.reveal[href$=\"#trends\"]:nth-child(6) > .story-time"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"idx\">01</span>",
          "target": [
            "#trends > .container > .section-head.reveal.in > div:nth-child(1) > .kicker > .idx"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"idx\">02</span>",
          "target": [
            "#reviews > .container > .section-head.reveal.in > div:nth-child(1) > .kicker > .idx"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"review-date\">Mar 8, 2025</span>",
          "target": [
            ".review-item.acc.reveal:nth-child(1) > .review-row.acc-head > .review-row-score > .review-date"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"review-date\">Mar 5, 2025</span>",
          "target": [
            ".review-item.acc.reveal:nth-child(2) > .review-row.acc-head > .review-row-score > .review-date"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"review-date\">Feb 27, 2025</span>",
          "target": [
            ".review-item.acc.reveal:nth-child(3) > .review-row.acc-head > .review-row-score > .review-date"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"review-date\">Feb 21, 2025</span>",
          "target": [
            ".review-item.acc.reveal:nth-child(4) > .review-row.acc-head > .review-row-score > .review-date"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0c0f15",
                "contrastRatio": 4.24,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"section section-console\" id=\"compare\">",
                  "target": [
                    "#compare"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"idx\">03</span>",
          "target": [
            "#compare > .container > .section-head.reveal.in > div:nth-child(1) > .kicker > .idx"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.24 (foreground color: #6f7783, background color: #0c0f15, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"idx\">04</span>",
          "target": [
            "#tutorials > .container > .section-head.reveal.in > div:nth-child(1) > .kicker > .idx"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "9.8pt (13px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"tutorial-index\">01</span>",
          "target": [
            ".tutorial.acc.reveal:nth-child(1) > .tutorial-head.acc-head > .tutorial-index"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>28 min read</span>",
          "target": [
            ".tutorial.acc.reveal:nth-child(1) > .tutorial-head.acc-head > span:nth-child(2) > .tutorial-meta > span:nth-child(2)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>Updated Mar 12, 2025</span>",
          "target": [
            ".tutorial.acc.reveal:nth-child(1) > .tutorial-head.acc-head > span:nth-child(2) > .tutorial-meta > span:nth-child(3)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "9.8pt (13px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"tutorial-index\">02</span>",
          "target": [
            ".tutorial.acc.reveal:nth-child(2) > .tutorial-head.acc-head > .tutorial-index"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>16 min read</span>",
          "target": [
            ".tutorial.acc.reveal:nth-child(2) > .tutorial-head.acc-head > span:nth-child(2) > .tutorial-meta > span:nth-child(2)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>Updated Mar 4, 2025</span>",
          "target": [
            ".tutorial.acc.reveal:nth-child(2) > .tutorial-head.acc-head > span:nth-child(2) > .tutorial-meta > span:nth-child(3)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "9.8pt (13px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"tutorial-index\">03</span>",
          "target": [
            ".tutorial.acc.reveal:nth-child(3) > .tutorial-head.acc-head > .tutorial-index"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>11 min read</span>",
          "target": [
            ".tutorial.acc.reveal:nth-child(3) > .tutorial-head.acc-head > span:nth-child(2) > .tutorial-meta > span:nth-child(2)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>Updated Feb 19, 2025</span>",
          "target": [
            ".tutorial.acc.reveal:nth-child(3) > .tutorial-head.acc-head > span:nth-child(2) > .tutorial-meta > span:nth-child(3)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "9.8pt (13px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"tutorial-index\">04</span>",
          "target": [
            ".tutorial.acc.reveal:nth-child(4) > .tutorial-head.acc-head > .tutorial-index"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>19 min read</span>",
          "target": [
            ".tutorial.acc.reveal:nth-child(4) > .tutorial-head.acc-head > span:nth-child(2) > .tutorial-meta > span:nth-child(2)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#0a0c10",
                "contrastRatio": 4.32,
                "fontSize": "7.9pt (10.5px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>Updated Feb 6, 2025</span>",
          "target": [
            ".tutorial.acc.reveal:nth-child(4) > .tutorial-head.acc-head > span:nth-child(2) > .tutorial-meta > span:nth-child(3)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.32 (foreground color: #6f7783, background color: #0a0c10, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#11141b",
                "contrastRatio": 4.07,
                "fontSize": "7.5pt (10px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"side-box reveal in\" style=\"--d: 70ms;\">",
                  "target": [
                    ".side-box.reveal.in:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 7.5pt (10px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#shop\" class=\"side-link demo-link\">Archive</a>",
          "target": [
            ".side-box.reveal.in:nth-child(2) > .side-box-head > .side-link.demo-link[href$=\"#shop\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 7.5pt (10px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6f7783",
                "bgColor": "#11141b",
                "contrastRatio": 4.07,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"side-box reveal in\" style=\"--d: 70ms;\">",
                  "target": [
                    ".side-box.reveal.in:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"side-sub\">Verified by our security desk \u00b7 severity rated</p>",
          "target": [
            ".side-box.reveal.in:nth-child(2) > .side-sub"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.07 (foreground color: #6f7783, background color: #11141b, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        }
      ]
    }
  ],
  "coverage": {
    "contract": "main-document-vertical-scroll",
    "complete": true,
    "positions": [
      {
        "y": 0,
        "height": 8804
      },
      {
        "y": 576,
        "height": 8804
      },
      {
        "y": 1152,
        "height": 8804
      },
      {
        "y": 1728,
        "height": 8804
      },
      {
        "y": 2304,
        "height": 8804
      },
      {
        "y": 2880,
        "height": 8804
      },
      {
        "y": 3456,
        "height": 8804
      },
      {
        "y": 4032,
        "height": 9441
      },
      {
        "y": 4608,
        "height": 9441
      },
      {
        "y": 5184,
        "height": 9441
      },
      {
        "y": 5760,
        "height": 9441
      },
      {
        "y": 6336,
        "height": 9441
      },
      {
        "y": 6912,
        "height": 9441
      },
      {
        "y": 7488,
        "height": 9441
      },
      {
        "y": 8064,
        "height": 9441
      },
      {
        "y": 8640,
        "height": 9441
      },
      {
        "y": 8721,
        "height": 9441
      }
    ],
    "scans": 18,
    "max_states": 512,
    "settle_ms": 5000,
    "page_timeout_seconds": 150,
    "layout_stability": "consecutive 100ms size samples within one CSS pixel",
    "animation_settling": "finite animations present when scroll resources are ready finish or are cancelled",
    "interactive_states": "not exercised",
    "horizontal_scroll": "not exercised"
  }
}
System Prompt
You are a lead web developer at a top digital agency, tasked with creating a one-page website for a new client based on the given specifications, delivered as an HTML file. First non-whitespace char '<', last non-whitespace char '>'. Use the following services to generate placeholder images where needed:
- placehold.co (text): https://placehold.co/[{w}x{h}|{size}][/{bg-color}/{text-color}]?text={text}&font=[lato|lora|montserrat|noto sans|open sans|oswald|playfair display|poppins|pt sans|raleway|roboto|source sans|source sans pro]
- picsum.photos (photos): https://picsum.photos/[{w}/{h}|{size}]?[grayscale][&blur={1-10}]
- pravatar.cc (avatars): https://i.pravatar.cc/{size}?u={identifier}
Choose sizes appropriate to layout.
User Prompt
Create a **complete, polished, production-quality** primary web page for a new client in the "Technology & Computing" sector.
Your goal is to generate the full HTML code for a page that is not just functional but also visually compelling, content-rich, and feels like a finished product ready for launch.

**Client & Category:**
- Industry: "Technology & Computing"
- Description: Tech news, software and hardware reviews, gadgets, and computing resources.

**Your Creative Task:**
1.  **Invent:** Create a unique, professional-sounding site name and a strong tagline fitting the "Technology & Computing" category.
2.  **Define Page:** Determine the most effective primary page type (e.g., homepage, service landing page, category portal) to showcase this fictional entity.
3.  **Design:** Develop an opinionated, modern, and professional layout. Make distinct choices about structure and flow.

**Content & Structure Requirements (Deliver a COMPLETE page):**
-   **Overall:** The final page must feel substantial and complete, with realistic amounts of text (multiple paragraphs per section where appropriate, avoid single sentences), well-integrated placeholder images, and logical flow. It should look like a real website a business would proudly use.
-   **HEADER:** Include the invented site name, tagline, a logo placeholder image, and a primary navigation bar. Ensure the navigation has **at least 5-7 clearly defined, relevant links** including: "Shop", "Tutorials", "Compare".
-   **MAIN CONTENT:** Structure this area with **at least 3-4 distinct, well-developed sections**.
    -   Address key topics relevant to the "Technology & Computing" category. Consider themes similar to: "Industry Trends", "Tech News", "Product Reviews".
    -   **Content Depth:** Populate each section with **substantial, realistic text** (multiple sentences/paragraphs). Use authentic industry language and terminology like: "compatibility matrix", "user interface", "cloud computing".
    -   **Visuals:** Integrate relevant placeholder images logically within the content sections.
    -   **Calls to Action:** Include clear and contextually relevant CTAs. Use strong verbs similar to: "Learn More", "Download Software", "Try Free".
-   **ENGAGEMENT (Recommended):** Strongly consider incorporating **one meaningful interactive element** that would genuinely benefit a user in the "Technology & Computing" sector. Ideas similar but not limited to: "spec finder".
-   **SIDEBAR (Optional):** If your design includes a sidebar, populate it with **useful, relevant content**. Ideas: "hot deals", "security alerts", "developer spotlights".
-   **FOOTER:** Include a professional footer with invented contact details, copyright (current year), social media links, and standard links (Privacy, Terms).
-   **MODERN WEB PATTERNS:** Include modern web patterns like testimonial cards, feature grids, or FAQ accordions where appropriate.