
:root{
  color-scheme: light dark;
  --ink: #0A0A0B;
  --ink-muted: #5A5F6B;
  --paper: #FFFFFF;
  --paper-2: #F6F7F9;
  --hair: #E4E6EB;
  --hl-band: color-mix(in oklab, var(--cat-ground) 55%, transparent);
  --hl-fade: color-mix(in oklab, var(--cat-ground) 16%, transparent);
  --code-tint: color-mix(in oklab, var(--cat-ground) 13%, transparent);
  --code-edge: color-mix(in oklab, var(--cat-ground) 30%, transparent);
  --v-buy: #0E7A3D; --v-buy-bg: #E6F5EC;
  --v-wait: #8A5600; --v-wait-bg: #FDF3E0;
  --v-skip: #B4231C; --v-skip-bg: #FCEAE9;
  --cat-ai: #C8FF00; --cat-ai-ink: #4F6B00;
  --cat-computing: #00A3FF; --cat-computing-ink: #0057B8;
  --cat-mobile: #FF2D6F; --cat-mobile-ink: #C00A4A;
  --cat-audio: #FF7A00; --cat-audio-ink: #9A4400;
  --cat-smart-home: #00E5A0; --cat-smart-home-ink: #00705A;
  --cat-services: #FFD400; --cat-services-ink: #7A5A00;
  --cat-gaming: #B14DFF; --cat-gaming-ink: #7B18C7;
  --fmt-deals: #FF3B30; --fmt-deals-ink: #C21A11;
  --accent-ink-dark: #93A6FF;
  --cat-ground-default: #2F4BFF;
  --cat-ink-default: #1E36D9;
  --cat-ground: var(--cat-ground-default);
  --cat-ink: var(--cat-ink-default);
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --ink: #F2F3F6;
  --ink-muted: #9AA0AD;
  --paper: #0B0D12;
  --paper-2: #141821;
  --hair: #272C37;
  --hl-band: color-mix(in oklab, var(--cat-ground) 30%, transparent);
  --hl-fade: color-mix(in oklab, var(--cat-ground) 10%, transparent);
  --code-tint: color-mix(in oklab, var(--cat-ground) 16%, transparent);
  --code-edge: color-mix(in oklab, var(--cat-ground) 32%, transparent);
  --v-buy: #56D48C; --v-buy-bg: #10281C;
  --v-wait: #E3B15B; --v-wait-bg: #2A2010;
  --v-skip: #FF7A72; --v-skip-bg: #2E1412;
  --cat-ai: #C8FF00; --cat-ai-ink: #C8FF00;
  --cat-computing: #00A3FF; --cat-computing-ink: #4DB8FF;
  --cat-mobile: #FF2D6F; --cat-mobile-ink: #FF6B9D;
  --cat-audio: #FF7A00; --cat-audio-ink: #FFA04D;
  --cat-smart-home: #00E5A0; --cat-smart-home-ink: #00E5A0;
  --cat-services: #FFD400; --cat-services-ink: #FFD400;
  --cat-gaming: #B14DFF; --cat-gaming-ink: #C77DFF;
  --fmt-deals: #FF3B30; --fmt-deals-ink: #FF3B30;
  --cat-ink-default: #93A6FF;}}
:root[data-theme="dark"]{
  --ink: #F2F3F6;
  --ink-muted: #9AA0AD;
  --paper: #0B0D12;
  --paper-2: #141821;
  --hair: #272C37;
  --hl-band: color-mix(in oklab, var(--cat-ground) 30%, transparent);
  --hl-fade: color-mix(in oklab, var(--cat-ground) 10%, transparent);
  --code-tint: color-mix(in oklab, var(--cat-ground) 16%, transparent);
  --code-edge: color-mix(in oklab, var(--cat-ground) 32%, transparent);
  --v-buy: #56D48C; --v-buy-bg: #10281C;
  --v-wait: #E3B15B; --v-wait-bg: #2A2010;
  --v-skip: #FF7A72; --v-skip-bg: #2E1412;
  --cat-ai: #C8FF00; --cat-ai-ink: #C8FF00;
  --cat-computing: #00A3FF; --cat-computing-ink: #4DB8FF;
  --cat-mobile: #FF2D6F; --cat-mobile-ink: #FF6B9D;
  --cat-audio: #FF7A00; --cat-audio-ink: #FFA04D;
  --cat-smart-home: #00E5A0; --cat-smart-home-ink: #00E5A0;
  --cat-services: #FFD400; --cat-services-ink: #FFD400;
  --cat-gaming: #B14DFF; --cat-gaming-ink: #C77DFF;
  --fmt-deals: #FF3B30; --fmt-deals-ink: #FF3B30;
  --cat-ink-default: #93A6FF;}
[data-cat="ai"]{--cat-ground:var(--cat-ai);--cat-ink:var(--cat-ai-ink);}
[data-cat="computing"]{--cat-ground:var(--cat-computing);--cat-ink:var(--cat-computing-ink);}
[data-cat="mobile"]{--cat-ground:var(--cat-mobile);--cat-ink:var(--cat-mobile-ink);}
[data-cat="audio"]{--cat-ground:var(--cat-audio);--cat-ink:var(--cat-audio-ink);}
[data-cat="smart-home"]{--cat-ground:var(--cat-smart-home);--cat-ink:var(--cat-smart-home-ink);}
[data-cat="services"]{--cat-ground:var(--cat-services);--cat-ink:var(--cat-services-ink);}
[data-cat="gaming"]{--cat-ground:var(--cat-gaming);--cat-ink:var(--cat-gaming-ink);}
[data-fmt="deals"]{--cat-ground:var(--fmt-deals);--cat-ink:var(--fmt-deals-ink);}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body,h1,h2,h3,h4,p,figure,blockquote,ul,ol,dl,dd{margin:0}
ul[class],ol[class]{list-style:none;padding:0}
img,picture,svg,video{display:block;max-width:100%;height:auto}
button,input,select,textarea{font:inherit;color:inherit}
table{border-collapse:collapse}
@font-face{font-family:'Archivo';src:url('/fonts/archivo.woff2') format('woff2-variations');
  font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'Newsreader';src:url('/fonts/newsreader-600.woff2') format('woff2');
  font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Newsreader';src:url('/fonts/newsreader-700.woff2') format('woff2');
  font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Unbounded';src:url('/fonts/unbounded-800.woff2') format('woff2');
  font-weight:800;font-style:normal;font-display:block}
@font-face{font-family:'MartianMono';src:url('/fonts/martianmono-700.woff2') format('woff2');
  font-weight:700;font-style:normal;font-display:block}
:root{
  --font-body:'Archivo',ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --font-display:'Newsreader',ui-serif,Georgia,'Times New Roman',serif;
  --font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --font-mark:'Unbounded',ui-sans-serif,system-ui,sans-serif;
  --font-bits:'MartianMono',ui-monospace,monospace;
  --t-eyebrow:.6875rem; --t-meta:.8125rem;
  --t-body:clamp(1.0625rem,.4vw + 1rem,1.125rem);
  --t-h3:clamp(1.0625rem,.9vw + .9rem,1.25rem);
  --t-h2:clamp(1.25rem,2vw + .9rem,1.75rem);
  --t-h1:clamp(1.75rem,4.4vw + .7rem,2.875rem);
  --t-mega:clamp(2.5rem,11vw + .5rem,6rem);
  --measure:68ch; --shell:1240px;
  --s1:.25rem;--s2:.5rem;--s3:.75rem;--s4:1rem;--s5:1.5rem;--s6:2rem;--s7:3rem;--s8:4rem;
  --gutter:1rem;
  --r-sm:4px;--r-md:8px;--r-lg:14px;--r-pill:999px;
  --h-masthead:56px; --h-thumbnav:56px;
  --dur:180ms; --ease:cubic-bezier(.2,0,0,1);
  --e1:0 1px 2px rgb(0 0 0/.06);
  --e2:0 10px 30px rgb(0 0 0/.12),0 2px 6px rgb(0 0 0/.06);
}
@media(min-width:48rem){:root{--gutter:1.5rem;--h-masthead:68px;--h-thumbnav:0px}}
body{
  background:var(--paper); color:var(--ink);
  font-family:var(--font-body); font-size:var(--t-body); line-height:1.65;
  -webkit-font-smoothing:antialiased;
  padding-bottom:calc(var(--h-thumbnav) + env(safe-area-inset-bottom));
}
h1,h2,h3{font-family:var(--font-display);font-weight:700;letter-spacing:-.022em;line-height:1.14;text-wrap:balance}
a{color:inherit;text-decoration:none}
.prose a{color:var(--cat-ink);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1.5px}
:focus-visible{outline:none;box-shadow:0 0 0 2px var(--paper),0 0 0 4px var(--cat-ink);border-radius:var(--r-sm)}
.wrap{max-width:var(--shell);margin-inline:auto;padding-inline:var(--gutter)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:var(--gutter);top:var(--s2);z-index:100;background:var(--ink);color:var(--paper);padding:var(--s3) var(--s4);border-radius:var(--r-md)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.eyebrow{
  font:700 var(--t-eyebrow)/1 var(--font-body);letter-spacing:.1em;text-transform:uppercase;
  color:var(--cat-ink);display:inline-flex;align-items:center;gap:var(--s2)
}
.masthead{
  position:sticky;top:0;z-index:50;background:var(--paper);
  border-bottom:1px solid var(--hair);height:var(--h-masthead)
}
.masthead .wrap{display:flex;align-items:center;gap:var(--s4);height:100%}
.mark{
  font-family:var(--font-mark);font-weight:800;font-size:1.375rem;line-height:1;
  letter-spacing:-.05em;flex:none;display:inline-flex;align-items:flex-end;color:var(--ink)
}
.mark-bits{perspective:600px;color:var(--cat-ink)}
.mark-b{position:relative;display:inline-block;transform-style:preserve-3d}
.mark-b .l{display:inline-block;font-style:normal;backface-visibility:hidden}
.mark-b .d{position:absolute;left:50%;top:0;transform:translateX(-50%);font-style:normal;
  font-family:var(--font-bits);font-weight:700;font-size:.56em;line-height:1.55;
  color:var(--ink-muted);opacity:0;backface-visibility:hidden}
.mark-crit{color:var(--ink)}
.mark-sq{
  width:.2em;height:.2em;border-radius:.04em;margin-left:.11em;margin-bottom:.1em;
  background:var(--cat-ground);flex:none
}
:root:not([data-cat]):not([data-fmt]) .marklink .mark-sq{
  animation:bq-brand-cycle 7s steps(1,end) infinite, bq-brand-blink 7s linear infinite
}
@keyframes bq-brand-cycle{
  0%{background:var(--cat-ai)} 14.2%{background:var(--cat-computing)}
  28.4%{background:var(--cat-mobile)} 42.6%{background:var(--cat-audio)}
  56.8%{background:var(--cat-smart-home)} 71%{background:var(--cat-services)}
  85.2%{background:var(--cat-gaming)} 100%{background:var(--cat-ai)}
}
@keyframes bq-brand-blink{
  0%,11%{opacity:1} 12.6%,13.8%{opacity:.12} 14.2%,25%{opacity:1}
  26.6%,27.8%{opacity:.12} 28.4%,39%{opacity:1} 41%,42%{opacity:.12}
  42.6%,54%{opacity:1} 55.2%,56.4%{opacity:.12} 56.8%,68%{opacity:1}
  69.4%,70.6%{opacity:.12} 71%,82%{opacity:1} 83.6%,84.8%{opacity:.12}
  85.2%,97%{opacity:1} 98.4%,99.6%{opacity:.12} 100%{opacity:1}
}
.mark.is-intro .mark-b{animation:bq-brand-flip var(--d) cubic-bezier(.25,0,.15,1) both}
.mark.is-intro .mark-b:nth-child(1){--d:.46s;animation-delay:0s}
.mark.is-intro .mark-b:nth-child(2){--d:.5s;animation-delay:.05s}
.mark.is-intro .mark-b:nth-child(3){--d:.54s;animation-delay:.1s}
@keyframes bq-brand-flip{0%{transform:rotateX(0)}82%,100%{transform:rotateX(720deg)}}
.mark.is-intro .mark-b .d{animation:bq-brand-out .16s ease-out both}
.mark.is-intro .mark-b:nth-child(1) .d{animation-delay:.24s}
.mark.is-intro .mark-b:nth-child(2) .d{animation-delay:.29s}
.mark.is-intro .mark-b:nth-child(3) .d{animation-delay:.34s}
@keyframes bq-brand-out{0%{opacity:1}100%{opacity:0}}
.mark.is-intro .mark-b .l{animation:bq-brand-in .16s ease-out both}
.mark.is-intro .mark-b:nth-child(1) .l{animation-delay:.32s}
.mark.is-intro .mark-b:nth-child(2) .l{animation-delay:.37s}
.mark.is-intro .mark-b:nth-child(3) .l{animation-delay:.42s}
@keyframes bq-brand-in{0%{opacity:0}100%{opacity:1}}
.mark.is-intro .mark-crit span{display:inline-block;animation:bq-brand-slide .3s cubic-bezier(.2,0,0,1) both}
.mark.is-intro .mark-crit span:nth-child(1){animation-delay:.5s}
.mark.is-intro .mark-crit span:nth-child(2){animation-delay:.54s}
.mark.is-intro .mark-crit span:nth-child(3){animation-delay:.58s}
.mark.is-intro .mark-crit span:nth-child(4){animation-delay:.62s}
.mark.is-intro .mark-crit span:nth-child(5){animation-delay:.66s}
.mark.is-intro .mark-crit span:nth-child(6){animation-delay:.7s}
@keyframes bq-brand-slide{0%{opacity:0;transform:translateX(-.5em)}100%{opacity:1;transform:none}}
.mnav{display:none;gap:var(--s1);flex:1;overflow-x:auto}
.mnav a{
  position:relative;isolation:isolate;
  font:600 .875rem/1 var(--font-body);padding:var(--s2) var(--s3);border-radius:var(--r-pill);
  white-space:nowrap;color:var(--ink-muted);min-height:44px;display:inline-flex;align-items:center;
  transition:color .18s ease,transform .18s cubic-bezier(.2,0,0,1)
}
.mnav a::before{
  content:"";position:absolute;inset:0;z-index:-1;border-radius:var(--r-pill);
  background:var(--paper-2);opacity:0;transform:scale(.92);
  transition:opacity .18s ease,transform .18s cubic-bezier(.2,0,0,1)
}
.mnav a:hover{color:var(--ink);transform:translateY(-1px)}
.mnav a:hover::before{opacity:1;transform:scale(1)}
.mnav a:focus-visible{color:var(--ink)}
.mnav a:focus-visible::before{opacity:1;transform:scale(1)}
.mnav a:active{transform:translateY(0) scale(.98)}
@media(prefers-reduced-motion:reduce){
  .mnav a,.mnav a::before{transition-duration:.01ms}
  .mnav a:hover{transform:none}
}
.mnav a[aria-current]{background:var(--cat-ground);color:var(--ink)}
.mtools{margin-left:auto;display:flex;gap:var(--s1);align-items:center}
.iconbtn{
  width:44px;height:44px;display:grid;place-content:center;border:0;background:none;
  border-radius:var(--r-md);cursor:pointer;color:var(--ink)
}
.iconbtn:hover{background:var(--paper-2)}
@media(min-width:60rem){.mnav{display:flex}}
.thebit{overflow:visible}
.thebit .lens-l,.thebit .lens-r,.thebit .brow{filter:saturate(1.5) brightness(1.35)}
.thebit *{transform-box:fill-box;transform-origin:center}
.thebit .tilt{transform-origin:50% 80%;transform:rotate(-4deg)}
.thebit.is-react .tilt{animation:bq-brand-tilt 2.1s cubic-bezier(.34,.2,.2,1) both;animation-delay:.12s}
@keyframes bq-brand-tilt{
  0%{transform:rotate(-4deg)} 18%{transform:rotate(4.5deg)}
  34%,74%{transform:rotate(3deg)} 100%{transform:rotate(-4deg)}}
.thebit .brow{transform:rotate(-9deg)}
.thebit.is-react .brow{animation:bq-brand-brow 2.1s cubic-bezier(.3,0,.2,1) both;animation-delay:.06s}
@keyframes bq-brand-brow{
  0%{transform:translateY(0) rotate(-9deg)}
  20%,76%{transform:translateY(-9px) rotate(-19deg)}
  100%{transform:translateY(0) rotate(-9deg)}}
.thebit.is-react .lens-r{animation:bq-brand-squint 2.1s ease-in-out both;animation-delay:.1s}
@keyframes bq-brand-squint{0%{transform:scaleY(1)}20%,76%{transform:scaleY(.24)}100%{transform:scaleY(1)}}
.thebit.is-react .mouth{animation:bq-brand-mouth 2.1s cubic-bezier(.3,0,.2,1) both;animation-delay:.16s}
@keyframes bq-brand-mouth{
  0%{transform:rotate(0) translateX(0)} 24%,76%{transform:rotate(-7deg) translateX(-2px)}
  100%{transform:rotate(0) translateX(0)}}
.buylink{display:inline-flex;align-items:center;gap:.35rem;margin-top:var(--s3);
  font:600 .875rem/1 var(--font-body);color:var(--cat-ink);
  text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1.5px;
  min-height:44px}
.buylink:hover{text-decoration-thickness:2.5px}
.sl-namerow{display:flex;align-items:baseline;gap:var(--s2);flex-wrap:wrap;position:relative}
.spec{position:relative;display:inline-block}
.pchip[aria-expanded="true"]{background:var(--cat-ground);border-color:var(--cat-ground);color:var(--ink)}
.spec-panel[hidden]{display:none}
.spec-panel{
  display:block;margin-top:var(--s3);
  border:1px solid var(--hair);border-left:3px solid var(--cat-ground);
  border-radius:var(--r-md);background:var(--paper-2);padding:var(--s3) var(--s4);
  opacity:0;transform:translateX(-10px);
  transition:opacity .16s ease,transform .16s cubic-bezier(.2,0,0,1)
}
.spec-panel.is-open{opacity:1;transform:none}
.spec-grid{display:grid;gap:.15rem;font-size:.8125rem}
.spec-grid .spec-v{margin-bottom:.45rem}
.spec-grid .spec-v:last-child{margin-bottom:0}
@media(min-width:30rem){
  .spec-grid{grid-template-columns:auto 1fr;gap:.35rem var(--s4)}
  .spec-grid .spec-v{margin-bottom:0}
}
.spec-k{font-weight:600;color:var(--ink-muted);white-space:nowrap}
.spec-v{font-family:var(--font-mono);font-size:.78125rem;color:var(--ink)}
@media(min-width:64rem){
  .spec-panel{
    position:absolute;top:-.4rem;left:calc(100% + var(--s3));margin-top:0;
    width:22rem;z-index:5;background:var(--paper);
    box-shadow:0 10px 34px rgb(0 0 0/.12)
  }
}
@media(prefers-reduced-motion:reduce){.spec-panel{transition-duration:.01ms}}
.answerfirst{margin:var(--s5) 0 var(--s6);padding-left:var(--s4);
  border-left:3px solid var(--cat-ground)}
.answerfirst ol{list-style:none;display:grid;gap:var(--s4);margin:0;padding:0}
.answerfirst li{display:grid;gap:.2rem}
.af-role{font:700 .625rem/1 var(--font-body);letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-muted)}
.af-name{font:800 1.125rem/1.25 var(--font-body);letter-spacing:-.02em;color:var(--ink);
  text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1.5px;
  text-decoration-color:var(--cat-ground)}
.af-score{font:500 .8125rem/1 var(--font-mono);color:var(--ink-muted);
  font-variant-numeric:tabular-nums}
.af-why{font-size:.9375rem;line-height:1.45;color:var(--ink)}
.af-note{margin-top:var(--s4);font-size:.8125rem;color:var(--ink-muted)}
.sl-pick{scroll-margin-top:calc(var(--h-masthead) + var(--s6))}
.sl-pick:target{
  box-shadow:inset 3px 0 0 var(--cat-ground);
  padding-left:var(--s4);margin-left:calc(var(--s4) * -1);
  padding-right:var(--s4);margin-right:calc(var(--s4) * -1)
}
.sl-pick:target .sl-name::after{
  content:"you are here";margin-left:var(--s2);vertical-align:.2em;
  font:700 .625rem/1 var(--font-body);letter-spacing:.08em;text-transform:uppercase;
  background:var(--cat-ground);color:var(--ink);padding:3px 6px;border-radius:var(--r-sm)
}
.tiernav{
  position:sticky;top:calc(var(--h-masthead) - 1px);z-index:5;
  display:flex;align-items:center;gap:var(--s2);
  margin:var(--s4) 0 var(--s4);padding:var(--s2) 0;
  background:var(--paper);border-bottom:1px solid var(--hair)
}
.tiernav-l{
  font:600 .625rem/1 var(--font-body);letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-muted);flex:none;opacity:.7
}
.tiernav ul{display:flex;gap:var(--s2);overflow-x:auto;list-style:none;margin:0;padding:0;
  scrollbar-width:none;-webkit-overflow-scrolling:touch}
.tiernav ul::-webkit-scrollbar{display:none}
.tiernav li{flex:none;list-style:none}
.tierchip{
  display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap;
  min-height:34px;padding:0 .6rem;border-radius:var(--r-sm);
  font:600 .75rem/1 var(--font-body);letter-spacing:.01em;
  border:1px solid var(--cat-ground);background:transparent;color:var(--ink);
  transition:background .16s ease,color .16s ease
}
.tiernav-n{font-weight:400;color:var(--ink-muted);font-variant-numeric:tabular-nums;font-size:.6875rem}
.tiernav a:hover{background:color-mix(in srgb,var(--cat-ground) 14%,transparent)}
.tiernav a[aria-current]{background:var(--cat-ground);color:var(--ink)}
.tiernav a[aria-current] .tiernav-n{color:var(--ink);opacity:.6}
.sl-pick .tierchip{
  border:0;background:transparent;padding:0;min-height:0;
  font:700 .625rem/1 var(--font-body);letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink-muted)
}
.sl-pick .tierchip::before{content:"";width:6px;height:6px;border-radius:1px;
  background:var(--cat-ground);flex:none}
.spread{margin:var(--s3) 0 var(--s2)}
.spread-track{position:relative;height:18px;margin:0 4px}
.spread-track::before{content:"";position:absolute;left:0;right:0;top:8px;height:2px;
  background:var(--hair);border-radius:1px}
.spread-range{position:absolute;top:7px;height:4px;border-radius:2px;
  background:var(--ink);opacity:.2}
.spread-dot{position:absolute;top:5px;width:8px;height:8px;margin-left:-4px;
  border-radius:50%;background:var(--ink);opacity:.55}
.spread-avg{position:absolute;top:1px;width:4px;height:16px;margin-left:-2px;
  border-radius:2px;background:var(--cat-ground)}
.spread-key{margin-top:var(--s2);font:600 .75rem/1.3 var(--font-body);color:var(--ink-muted)}
.spread-key .spread-dup{display:none}
.spread-key b{color:var(--ink);font-size:.875rem}
.spread-warn{color:var(--v-wait)}
.shot{margin:0}
.shot-frame{position:relative;border-radius:var(--r-lg);overflow:hidden;
  background:var(--paper-2);
  border-bottom:3px solid var(--cat-ground)}
.shot-frame img{display:block;width:100%;height:auto}
.shot-frame::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(315deg,var(--cat-ground) 0%,transparent 42%);
  opacity:.4;mix-blend-mode:soft-light;
  transition:opacity .28s ease
}
.shot-frame:hover::after{opacity:0}
.shotmark{z-index:2}
@media(prefers-reduced-motion:reduce){.shot-frame::after{transition-duration:.01ms}}
.shotmark{
  position:absolute;right:.75rem;bottom:.75rem;
  display:inline-flex;align-items:flex-end;gap:.12em;
  padding:.32rem .5rem;border-radius:var(--r-sm);
  background:rgb(10 10 11/.55);backdrop-filter:blur(6px);
  font-family:var(--font-mark);font-weight:800;font-size:.8125rem;line-height:1;
  color:#fff;letter-spacing:-.04em;
  transform:rotate(-4deg);transform-origin:100% 100%;
  opacity:.88;transition:opacity .28s ease,transform .28s cubic-bezier(.2,0,0,1)
}
.shotmark-sq{width:.3em;height:.3em;border-radius:.05em;background:var(--cat-ground);margin-bottom:.06em}
.shot-frame:hover .shotmark{opacity:0;transform:rotate(-4deg) translateY(6px) scale(.94)}
.shot-credit{margin-top:var(--s2);font-size:.75rem;color:var(--ink-muted)}
.sl-shot{margin-bottom:var(--s3)}
.sl-shot .shot-frame{max-width:22rem}
@media(prefers-reduced-motion:reduce){.shotmark{transition-duration:.01ms}}
.consent{position:fixed;left:0;right:0;z-index:61;padding:var(--s3);
  bottom:calc(var(--h-thumbnav) + env(safe-area-inset-bottom))}
.consent[hidden]{display:none}
.consent-in{background:var(--paper);border:1px solid var(--hair);
  border-top:3px solid var(--cat-ground);border-radius:var(--r-lg);
  padding:var(--s4);box-shadow:0 8px 40px rgb(0 0 0/.16);max-width:26rem;margin-inline:auto}
.consent h2{font-family:var(--font-body);font-weight:800;font-size:1rem;
  letter-spacing:-.02em;margin-bottom:var(--s2)}
.consent p{font-size:.875rem;line-height:1.5;color:var(--ink-muted)}
.consent p a{color:var(--cat-ink);text-decoration:underline;text-underline-offset:2px}
.consent-btns{display:flex;gap:var(--s2);margin-top:var(--s4)}
.consent-btns button{
  flex:1;min-height:44px;padding:0 var(--s4);cursor:pointer;
  font:700 .875rem/1 var(--font-body);
  border:2px solid var(--ink);border-radius:var(--r-md);
  background:var(--paper);color:var(--ink);
  transition:transform .16s cubic-bezier(.2,0,0,1),background .16s ease
}
.consent-btns button:hover{background:var(--paper-2);transform:translateY(-1px)}
.consent-btns button:active{transform:translateY(0)}
@media(min-width:48rem){
  .consent{inset:auto auto var(--s5) var(--s5);padding:0}
  .consent-in{margin-inline:0}
}
@media(prefers-reduced-motion:reduce){.consent-btns button{transition-duration:.01ms}}
.emptyhub{display:grid;justify-items:center;text-align:center;gap:var(--s3);padding-block:var(--s7)}
.emptyhub h2{font-family:var(--font-body);font-weight:800;font-size:var(--t-h2);letter-spacing:-.03em}
.emptyhub p{color:var(--ink-muted);max-width:46ch}
.nf{text-align:center;padding-block:var(--s7) var(--s8);display:grid;justify-items:center;gap:var(--s4)}
.nf h1{font-family:var(--font-body);font-weight:800;font-size:var(--t-h1);letter-spacing:-.035em}
.nf p{color:var(--ink-muted);max-width:42ch}
.nf-links{display:flex;gap:var(--s3);flex-wrap:wrap;justify-content:center;margin-top:var(--s3)}
.nf-links a{border:2px solid var(--ink);border-radius:var(--r-md);padding:11px var(--s4);
  font:700 .875rem/1 var(--font-body);min-height:44px;display:inline-flex;align-items:center}
.nf-links a:hover{background:var(--cat-ground);border-color:var(--cat-ground);color:var(--ink)}
.nf-recent{margin-top:var(--s7);width:100%;max-width:var(--measure);text-align:left}
.thumbnav{
  position:fixed;bottom:0;left:0;right:0;z-index:60;height:var(--h-thumbnav);
  background:var(--paper);border-top:1px solid var(--hair);
  display:grid;grid-template-columns:repeat(4,1fr);
  padding-bottom:env(safe-area-inset-bottom);
  transition:transform var(--dur) var(--ease)
}
.thumbnav[data-hidden]{transform:translateY(110%)}
.thumbnav a{
  display:grid;place-items:center;gap:3px;font:600 .625rem/1 var(--font-body);
  letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);min-height:44px
}
.thumbnav a[aria-current]{color:var(--ink)}
.thumbnav a[aria-current] svg{color:var(--cat-ink)}
@media(min-width:48rem){.thumbnav{display:none}}
.hub{background:var(--cat-ground);color:var(--ink);padding:var(--s7) 0 var(--s6)}
.hub h1{font-family:var(--font-body);font-weight:800;font-size:var(--t-mega);
  letter-spacing:-.05em;line-height:.86;text-transform:lowercase}
.hub .blurb{max-width:34ch;font-size:1.0625rem;font-weight:500;margin-top:var(--s4);opacity:.82}
.hub .counts{display:flex;gap:var(--s5);margin-top:var(--s5);flex-wrap:wrap}
.hub .counts b{font:800 1.5rem/1 var(--font-body);display:block}
.hub .counts span{font:600 var(--t-eyebrow)/1 var(--font-body);letter-spacing:.1em;text-transform:uppercase;opacity:.7}
.hubfmt{background:var(--ink);color:var(--paper);padding:var(--s3) 0}
.hubfmt .wrap{display:flex;gap:var(--s1);overflow-x:auto;scrollbar-width:none}
.hubfmt .wrap::-webkit-scrollbar{display:none}
.hubfmt a{font:600 .8125rem/1 var(--font-body);padding:var(--s2) var(--s4);border-radius:var(--r-pill);
  white-space:nowrap;opacity:.72;min-height:40px;display:inline-flex;align-items:center}
.hubfmt a:hover{opacity:1}
.hubfmt a[aria-current]{background:var(--cat-ground);color:var(--ink);opacity:1}
.sect{padding:var(--s6) 0}
.sect-head{display:flex;align-items:baseline;gap:var(--s3);margin-bottom:var(--s5)}
.sect-head h2{font-family:var(--font-body);font-weight:800;font-size:var(--t-h2);letter-spacing:-.03em;text-transform:lowercase}
.sect-head .more{margin-left:auto;font:600 .8125rem/1 var(--font-body);color:var(--cat-ink)}
.rule{height:3px;background:var(--cat-ground);margin-bottom:var(--s5)}
.board{background:var(--ink);color:var(--paper);padding:var(--s5) 0 var(--s6)}
.board-head{display:flex;align-items:baseline;gap:var(--s3);flex-wrap:wrap;margin-bottom:var(--s5)}
.board-head h2{font-family:var(--font-body);font-weight:800;font-size:var(--t-h2);
  letter-spacing:-.04em;text-transform:lowercase}
.board-head p{font-size:.875rem;opacity:.6;max-width:44ch;flex:1 1 16ch}
.board-head .more{font:700 .8125rem/1 var(--font-body);color:var(--paper);opacity:.8;white-space:nowrap}
@media(min-width:48rem){.board-head .more{margin-left:auto}}
.board-head .more:hover{opacity:1}
.board-rail{
  display:flex;gap:var(--s3);overflow-x:auto;scroll-snap-type:x mandatory;
  scrollbar-width:none;margin-inline:calc(var(--gutter) * -1);padding:0 var(--gutter) var(--s2);
  counter-reset:none;list-style:none
}
.board-rail::-webkit-scrollbar{display:none}
.board-tile{
  scroll-snap-align:start;flex:none;width:min(58vw,206px);
  background:var(--paper);color:var(--ink);border-radius:var(--r-md);position:relative
}
.board-tile a{display:grid;gap:2px;padding:var(--s4);height:100%;align-content:start}
.board-tile:hover .board-title{text-decoration:underline;text-underline-offset:2px}
.board-score{
  font:800 2.75rem/.9 var(--font-body);letter-spacing:-.05em;font-variant-numeric:tabular-nums
}
.board-verdict{
  font:800 .625rem/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;margin-bottom:var(--s3)
}
.board-tile.v-buy {background:var(--v-buy-bg)}
.board-tile.v-wait{background:var(--v-wait-bg)}
.board-tile.v-skip{background:var(--v-skip-bg)}
.board-tile.v-buy  .board-score,.board-tile.v-buy  .board-verdict{color:var(--v-buy)}
.board-tile.v-wait .board-score,.board-tile.v-wait .board-verdict{color:var(--v-wait)}
.board-tile.v-skip .board-score,.board-tile.v-skip .board-verdict{color:var(--v-skip)}
.board-tile .board-title{color:var(--ink)}
.board-title{font:700 .9375rem/1.25 var(--font-body);letter-spacing:-.015em;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.board-meta{display:flex;gap:var(--s2);align-items:baseline;margin-top:var(--s3);
  font:500 var(--t-meta)/1 var(--font-body);color:var(--ink-muted);flex-wrap:wrap}
.board-meta b{color:var(--ink);font-family:var(--font-mono);font-weight:500}
@media(min-width:60rem){
  .board-rail{display:grid;grid-template-columns:repeat(5,1fr);overflow:visible;margin-inline:0;padding-inline:0}
  .board-tile{width:auto}
}
.grid{display:grid;gap:var(--s5);grid-template-columns:1fr}
@media(min-width:34rem){.grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:60rem){.grid{grid-template-columns:repeat(3,1fr);gap:var(--s5) var(--s5)}}
.card{display:grid;gap:var(--s3);position:relative}
.card .thumb{aspect-ratio:16/9;border-radius:var(--r-md);overflow:hidden;background:var(--paper-2)}
.card .thumb img,.card .thumb picture{width:100%;height:100%;object-fit:cover;display:block}
.card h3{font-size:var(--t-h3);font-family:var(--font-body);font-weight:700;letter-spacing:-.015em}
.card-row h3,.card-text h3{font-family:var(--font-body);font-weight:700;letter-spacing:-.015em}
.card a::after{content:"";position:absolute;inset:0}
.card:hover h3{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px;text-decoration-color:var(--cat-ground)}
.cardmeta{display:flex;align-items:center;gap:var(--s2);font:500 var(--t-meta)/1 var(--font-body);color:var(--ink-muted);flex-wrap:wrap}
.card-hero .thumb{border-radius:var(--r-lg)}
.card-hero h2{font-size:var(--t-h1);margin-block:var(--s2)}
.card-hero .dek{color:var(--ink-muted);font-size:1.0625rem;max-width:52ch}
.card-row{display:flex;gap:var(--s4);align-items:flex-start;padding:var(--s4) 0;border-bottom:1px solid var(--hair);position:relative}
.card-row .thumb{flex:none;width:96px;aspect-ratio:4/3;border-radius:var(--r-md);overflow:hidden;background:var(--paper-2)}
.card-row h3{font-size:1.0625rem}
.card-hero h2{font-family:var(--font-display)}
.card-row .rank{font:800 1.25rem/1 var(--font-body);color:var(--cat-ground);flex:none;width:1.6em;
  -webkit-text-stroke:1px var(--ink);paint-order:stroke fill}
.nowrail{display:flex;gap:var(--s4);overflow-x:auto;scroll-snap-type:x mandatory;
  padding-bottom:var(--s3);scrollbar-width:none;margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter)}
.nowrail::-webkit-scrollbar{display:none}
.card-text{scroll-snap-align:start;flex:none;width:min(72vw,270px);
  border-left:3px solid var(--cat-ground);padding-left:var(--s3);position:relative}
.card-text time{font:600 var(--t-eyebrow)/1 var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--cat-ink)}
.card-text h3{font-size:.9375rem;margin-top:var(--s2)}
.pulse{width:6px;height:6px;border-radius:50%;background:var(--cat-ground);display:inline-block;
  position:relative}
.pulse::after{
  content:"";position:absolute;inset:0;border-radius:50%;background:var(--cat-ground);
  animation:bq-pulse 2.4s ease-out infinite
}
@keyframes bq-pulse{
  0%{transform:scale(1);opacity:.55}
  70%{transform:scale(3.2);opacity:0}
  100%{transform:scale(3.2);opacity:0}
}
.vchip{
  display:inline-flex;align-items:center;gap:var(--s2);border-radius:var(--r-sm);
  padding:5px 8px;font:700 .75rem/1 var(--font-body);letter-spacing:.02em;
  font-variant-numeric:tabular-nums
}
.vchip.v-buy{background:var(--v-buy-bg);color:var(--v-buy)}
.vchip.v-wait{background:var(--v-wait-bg);color:var(--v-wait)}
.vchip.v-skip{background:var(--v-skip-bg);color:var(--v-skip)}
.verdict{border:2px solid var(--ink);border-radius:var(--r-lg);overflow:hidden;margin-block:var(--s5)}
.verdict .vhead{display:flex;gap:var(--s4);padding:var(--s4);align-items:flex-start;border-bottom:2px solid var(--ink)}
.vscore{flex:none;width:78px;height:78px;border-radius:var(--r-md);display:grid;place-content:center;text-align:center}
.vscore b{font:800 1.75rem/1 var(--font-body);font-variant-numeric:tabular-nums;display:block}
.vscore span{font:700 .625rem/1 var(--font-body);letter-spacing:.12em;text-transform:uppercase;display:block;margin-top:5px}
.vscore.v-buy{background:var(--v-buy-bg);color:var(--v-buy)}
.vscore.v-wait{background:var(--v-wait-bg);color:var(--v-wait)}
.vscore.v-skip{background:var(--v-skip-bg);color:var(--v-skip)}
.verdict .call{font-family:var(--font-display);font-weight:600;font-size:1.1875rem;line-height:1.34}
.verdict .price{font:500 var(--t-meta)/1.4 var(--font-body);color:var(--ink-muted);margin-top:var(--s2)}
.verdict .price b{color:var(--ink)}
.vpc{display:grid;grid-template-columns:1fr}
.vpc > div{padding:var(--s4)}
.vpc > div + div{border-top:1px solid var(--hair)}
@media(min-width:34rem){.vpc{grid-template-columns:1fr 1fr}.vpc>div+div{border-top:0;border-left:1px solid var(--hair)}}
.vpc h3{font:700 var(--t-eyebrow)/1 var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:var(--s3)}
.vpc ul{display:grid;gap:var(--s2)}
.vpc li{font-size:.9375rem;line-height:1.45;padding-left:1.1em;position:relative}
.vpc li::before{position:absolute;left:0;font-weight:800}
.vpros li::before{content:"+";color:var(--v-buy)}
.vcons li::before{content:"\2013";color:var(--v-skip)}
.vbar{
  position:fixed;left:0;right:0;bottom:calc(var(--h-thumbnav) + env(safe-area-inset-bottom));z-index:55;
  background:var(--paper);border-top:1px solid var(--hair);box-shadow:var(--e2);
  display:flex;align-items:center;gap:var(--s3);padding:var(--s2) var(--gutter);height:48px;
  transform:translateY(120%);transition:transform var(--dur) var(--ease)
}
.vbar[data-show]{transform:none}
.vbar .t{font:700 .875rem/1.2 var(--font-body);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vbar .p{font:500 var(--t-meta)/1 var(--font-body);color:var(--ink-muted)}
@media(min-width:60rem){.vbar{display:none}}
.article{padding-block:var(--s5) var(--s8)}
.artgrid{display:grid;gap:var(--s7);grid-template-columns:1fr}
@media(min-width:64rem){.artgrid{grid-template-columns:minmax(0,1fr) 300px}}
.arthead h1{font-size:var(--t-h1);margin-block:var(--s3)}
.arthead .dek{font-size:1.1875rem;line-height:1.5;color:var(--ink-muted);max-width:48ch;margin-bottom:var(--s4)}
.byline{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);font:500 var(--t-meta)/1 var(--font-body);
  color:var(--ink-muted);padding-block:var(--s3);border-block:1px solid var(--hair)}
.arthero{margin-block:var(--s5);border-radius:var(--r-lg);overflow:hidden}
.arthero img,.arthero picture{width:100%;display:block}
.arthero figcaption{font:400 var(--t-meta)/1.5 var(--font-body);color:var(--ink-muted);padding-top:var(--s2)}
.prose{max-width:var(--measure);font-size:var(--t-body)}
.prose > * + *{margin-top:var(--s4)}
.prose h2{font-size:var(--t-h2);margin-top:var(--s6);scroll-margin-top:calc(var(--h-masthead) + var(--s5))}
.prose h3{font-size:var(--t-h3);margin-top:var(--s5);scroll-margin-top:calc(var(--h-masthead) + var(--s5))}
.prose ul,.prose ol{padding-left:1.25em;display:grid;gap:var(--s2)}
.prose ul{list-style:disc}.prose ol{list-style:decimal}
.prose blockquote{border-left:4px solid var(--cat-ground);padding-left:var(--s4);
  font-family:var(--font-display);font-size:1.25rem;line-height:1.45}
.prose table{width:100%;font-size:.9375rem;display:block;overflow-x:auto}
.prose th{text-align:left;font:700 var(--t-eyebrow)/1 var(--font-body);letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-muted);padding:0 var(--s4) var(--s2) 0;border-bottom:2px solid var(--ink)}
.prose td{padding:var(--s3) var(--s4) var(--s3) 0;border-bottom:1px solid var(--hair);font-variant-numeric:tabular-nums}
.prose :not(pre) > code{
  font-family:var(--font-mono);
  font-size:.875em;line-height:1.4;
  background:var(--code-tint);
  border:1px solid var(--code-edge);
  border-radius:var(--r-sm);padding:.1em .34em;
  overflow-wrap:break-word;
  box-decoration-break:clone;-webkit-box-decoration-break:clone
}
.prose kbd{
  font-family:var(--font-mono);font-size:.8125em;font-weight:600;line-height:1.4;
  background:var(--paper-2);border:1px solid var(--hair);
  border-bottom-width:2px;border-radius:var(--r-sm);padding:.1em .4em;white-space:nowrap
}
.prose mark{
  background:linear-gradient(to top,
    var(--hl-band) 0,
    var(--hl-band) .3em,
    var(--hl-fade) .48em,
    transparent .56em);
  color:inherit;
  padding-inline:.12em;
  box-decoration-break:clone;-webkit-box-decoration-break:clone
}
.prose pre{
  font-family:var(--font-mono);font-size:.8125rem;line-height:1.65;
  background:var(--paper-2);border:1px solid var(--hair);
  border-left:3px solid var(--cat-ground);
  border-radius:var(--r-md);padding:var(--s4);
  max-width:100%;overflow-x:auto;overscroll-behavior-x:contain
}
.prose pre code{background:none;border:0;padding:0;font-size:inherit;border-radius:0}
.seg{display:inline-flex;background:var(--paper-2);border:1px solid var(--hair);border-radius:var(--r-md);padding:3px;gap:2px;margin:0}
.seg button{border:0;background:none;font:700 .8125rem/1 var(--font-body);color:var(--ink-muted);
  padding:var(--s2) var(--s4);border-radius:6px;cursor:pointer;min-height:38px}
.seg button[aria-pressed="true"]{background:var(--cat-ground);color:var(--ink)}
.gistmeta{font:500 var(--t-meta)/1 var(--font-body);color:var(--ink-muted)}
.gistrow{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap;margin-bottom:var(--s5)}
.prose.is-gist > *:not(.g):not(h2){display:none}
.prose.is-gist .g{font-size:1.1875rem;line-height:1.55}
.tested{border:1px solid var(--hair);border-left:4px solid var(--cat-ground);border-radius:var(--r-md);
  padding:var(--s4);margin-top:var(--s6);font-size:.9375rem}
.tested h2{font-family:var(--font-body);font-weight:800;font-size:.9375rem;text-transform:uppercase;
  letter-spacing:.06em;margin-bottom:var(--s3)}
.tested dl{display:grid;gap:var(--s1)}
.tested dt{font-weight:700;color:var(--ink-muted);font-size:.8125rem;
  text-transform:uppercase;letter-spacing:.05em}
.tested dd{margin-bottom:var(--s3)}
.tested dd:last-of-type{margin-bottom:0}
@media(min-width:48rem){
  .tested dl{grid-template-columns:11rem 1fr;gap:var(--s3) var(--s4)}
  .tested dt{font-size:.875rem;text-transform:none;letter-spacing:0;font-weight:600}
  .tested dd{margin-bottom:0}
}
.parts{margin-top:var(--s6)}
.parts h2{font-family:var(--font-body);font-weight:800;font-size:.9375rem;text-transform:uppercase;
  letter-spacing:.06em;margin-bottom:var(--s3)}
.parts-list{list-style:none;display:grid;gap:0}
.parts-list li{padding:var(--s4) 0;border-top:1px solid var(--hair)}
.parts-list li:last-child{border-bottom:1px solid var(--hair)}
.parts-thing{font-weight:700;margin-bottom:var(--s1)}
.parts-spec{font-size:.9375rem;color:var(--ink-muted);line-height:1.5;margin-bottom:var(--s2);max-width:60ch}
.parts-note{font-size:.8125rem;color:var(--ink-muted);line-height:1.5;margin-top:var(--s3);max-width:66ch}
.evidence{margin-top:var(--s6)}
.evidence h2{font-family:var(--font-body);font-weight:800;font-size:.9375rem;text-transform:uppercase;
  letter-spacing:.06em;margin-bottom:var(--s2)}
.ev-intro{font-size:.875rem;color:var(--ink-muted);margin-bottom:var(--s4);max-width:60ch}
.ev-list{list-style:none;display:grid;gap:0}
.ev-list li{padding:var(--s3) 0;border-top:1px solid var(--hair)}
.ev-list li:last-child{border-bottom:1px solid var(--hair)}
.ev-claim{font-size:1rem;line-height:1.45;margin-bottom:var(--s2)}
.ev-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s2) var(--s3);
  font-size:.8125rem;color:var(--ink-muted)}
.ev-basis{font:700 var(--t-eyebrow)/1 var(--font-body);letter-spacing:.08em;text-transform:uppercase;
  padding:.35em .5em;border-radius:var(--r-sm);white-space:nowrap;color:var(--ink)}
.ev-official{background:var(--cat-ground)}
.ev-consensus{background:color-mix(in oklab,var(--cat-ground) 38%,transparent)}
.ev-reported{background:var(--paper-2);box-shadow:inset 0 0 0 1px var(--hair)}
.ev-unverified{background:none;box-shadow:inset 0 0 0 1px var(--hair);color:var(--ink-muted)}
.disclose{background:var(--paper-2);border-radius:var(--r-md);padding:var(--s3) var(--s4);
  font-size:.875rem;color:var(--ink-muted);margin-block:var(--s5)}
.rail{display:grid;gap:var(--s6);align-content:start}
@media(min-width:64rem){
  .rail-toc{
    position:sticky;top:calc(var(--h-masthead) + var(--s4));
    max-height:calc(100vh - var(--h-masthead) - var(--s7));
    overflow-y:auto;overscroll-behavior:contain
  }
}
.rail h2{font-family:var(--font-body);font-weight:800;font-size:.8125rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--s3)}
.rail-verdict{border:1px solid var(--hair);border-radius:var(--r-md);padding:var(--s4)}
.rail-vrow{display:flex;gap:var(--s3);align-items:flex-start}
.rail-price{font:500 .875rem/1 var(--font-mono);color:var(--ink);margin-bottom:var(--s2)}
.rail-line{font-size:.875rem;line-height:1.4;color:var(--ink-muted)}
.rail-toc{border-left:0}
.toc{display:grid;gap:var(--s2);font-size:.9375rem;border-left:2px solid var(--hair);
  padding-left:var(--s3);list-style:none;counter-reset:toc}
.toc li{counter-increment:toc}
.toc a{color:var(--ink-muted);display:block}
.toc a:hover{color:var(--ink)}
.toc a[aria-current]{color:var(--cat-ink);font-weight:700}
.toc a{position:relative;padding-left:var(--s3);margin-left:calc(var(--s3) * -1);
  transition:color .16s ease}
.toc a[aria-current]::before{
  content:"";position:absolute;left:calc(var(--s3) * -1 - 2px);top:.15em;bottom:.15em;
  width:2px;background:var(--cat-ground);border-radius:1px
}
@media(max-width:63.99rem){.rail-verdict,.rail-toc{display:none}}
.ad{
  display:grid;place-content:center;background:var(--paper-2);border-radius:var(--r-md);
  position:relative;overflow:hidden;margin-inline:auto;width:100%
}
.ad::before{content:"Advertisement";position:absolute;top:6px;left:8px;
  font:600 9px/1 var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);opacity:.65}
.ad-wrap{margin-block:var(--s6);display:grid;justify-items:center}
@media(min-width:48rem){.ad{height:var(--adh-d)}}
.ad[data-h="0"]{display:none}
.byline{align-items:center}
.byline .by{display:inline-flex;align-items:center;gap:var(--s2)}
.byline .by a{font-weight:700;color:var(--ink)}
.byline .by a:hover{text-decoration:underline}
.avatar{flex:none;border-radius:var(--r-sm)}
.ailabel{
  font:700 .6875rem/1 var(--font-body);letter-spacing:.06em;text-transform:uppercase;
  background:var(--ink);color:var(--paper);padding:4px 6px;border-radius:var(--r-sm);
  white-space:nowrap
}
.research{border-left-color:var(--ink)}
.research .nothandson{margin-top:0;padding-top:0;border-top:0;
  font-weight:600;color:var(--ink)}
.research-limits{margin-top:var(--s3)}
.research-how{margin-top:var(--s3);border-top:1px solid var(--hair);padding-top:var(--s2)}
.nothandson{margin-top:var(--s3);padding-top:var(--s3);border-top:1px solid var(--hair);
  font-size:.875rem;color:var(--ink-muted)}
.sources{margin-top:var(--s6);font-size:.9375rem}
.sources h2{font-family:var(--font-body);font-weight:800;font-size:.8125rem;text-transform:uppercase;
  letter-spacing:.08em;margin-bottom:var(--s3);display:flex;align-items:center;gap:var(--s2)}
.src-count{font-size:.75rem;background:var(--paper-2);color:var(--ink-muted);
  border-radius:var(--r-pill);padding:2px 8px;letter-spacing:0}
.src-more{margin-top:var(--s3)}
.src-more>summary{
  cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:.4rem;
  min-height:44px;font:600 .8125rem/1 var(--font-body);color:var(--cat-ink)
}
.src-more>summary::-webkit-details-marker{display:none}
.src-more>summary::before{content:"+";font-weight:800;font-size:1rem;line-height:1}
.src-more[open]>summary::before{content:"–"}
.src-more>summary:hover{text-decoration:underline;text-underline-offset:3px}
.src-strong{color:var(--ink-muted);font-weight:400}
.src-more ol{margin-top:var(--s3)}
.sources ol{list-style:decimal;padding-left:1.4em;display:grid;gap:var(--s3)}
.sources li{line-height:1.5}
.sources a{color:var(--cat-ink);text-decoration:underline;text-underline-offset:2px}
.srctag{display:inline-block;font:700 .625rem/1 var(--font-body);letter-spacing:.06em;
  text-transform:uppercase;padding:3px 5px;border-radius:var(--r-sm);margin-left:var(--s2);vertical-align:1px}
.srctag.official{background:var(--v-buy-bg);color:var(--v-buy)}
.srctag.edu{background:var(--cat-ground);color:var(--ink)}
.srcdate{display:block;font-size:.8125rem;color:var(--ink-muted);margin-top:2px}
.authorhead{display:flex;gap:var(--s4);align-items:flex-start;flex-wrap:wrap}
.authorhead h1{font-family:var(--font-body);font-weight:800;font-size:var(--t-h1);letter-spacing:-.04em}
.authorhead .role{color:var(--ink-muted);font-size:1.0625rem;margin-top:var(--s1)}
.authorbio{max-width:var(--measure);margin-top:var(--s5)}
.authorbio > * + *{margin-top:var(--s4)}
.chips{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s4)}
.chip{font:600 .8125rem/1 var(--font-body);padding:7px 11px;border-radius:var(--r-pill);
  border:1px solid var(--hair);color:var(--ink-muted)}
.chip.on{background:var(--cat-ground);color:var(--ink);border-color:transparent}
.aibanner{
  background:var(--ink);color:var(--paper);border-radius:var(--r-md);
  padding:var(--s4);margin-top:var(--s5);font-size:.9375rem;max-width:var(--measure)
}
.aibanner strong{display:block;margin-bottom:var(--s2);font-size:1rem}
.aibanner a{color:var(--paper);text-decoration:underline}
.picks{margin-block:var(--s6)}
.picks ol{list-style:none;display:grid;gap:var(--s4)}
.pick{
  position:relative;border:1px solid var(--hair);border-radius:var(--r-lg);
  padding:var(--s5) var(--s4) var(--s4);overflow:hidden
}
.pick:first-child{border-color:var(--ink);border-width:2px}
.pick-rank{
  position:absolute;top:-.18em;right:.1em;font:800 5rem/1 var(--font-body);
  letter-spacing:-.06em;color:var(--cat-ground);opacity:.16;pointer-events:none
}
.pick-head{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap;margin-bottom:var(--s2)}
.pick-label{
  font:800 .625rem/1 var(--font-body);letter-spacing:.12em;text-transform:uppercase;
  background:var(--cat-ground);color:var(--ink);padding:5px 8px;border-radius:var(--r-sm)
}
.pick-name{font-family:var(--font-body);font-weight:800;font-size:var(--t-h3);
  letter-spacing:-.02em;display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}
.pick-price{font:500 .9375rem/1 var(--font-mono);margin-top:var(--s2);color:var(--ink-muted)}
.pick-price b{color:var(--ink);font-weight:500;font-size:1.0625rem}
.pick-why{display:grid;gap:var(--s1);margin-top:var(--s4);font-size:.9375rem}
.pick-why dt{font:700 .6875rem/1.5 var(--font-body);letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-muted)}
.pick-why dd{margin:0 0 var(--s3);line-height:1.5}
.pick-why dd:last-of-type{margin-bottom:0}
@media(min-width:48rem){
  .pick-why{grid-template-columns:5.5rem 1fr;gap:var(--s2) var(--s4)}
  .pick-why dd{margin-bottom:0}
}
.pick-buys{display:flex;gap:var(--s2);flex-wrap:wrap;margin-top:var(--s4)}
.pick-buys a{
  display:inline-flex;align-items:center;gap:6px;border:2px solid var(--ink);
  border-radius:var(--r-md);padding:9px var(--s4);font:700 .875rem/1 var(--font-body);min-height:44px
}
.pick-buys a:hover{background:var(--cat-ground);border-color:var(--cat-ground)}
.pick-buys a span{font:600 .5625rem/1 var(--font-body);letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-muted)}
.shortlist{margin-block:var(--s6)}
.sl-note{background:var(--paper-2);border-left:4px solid var(--ink);border-radius:var(--r-md);
  padding:var(--s3) var(--s4);font-size:.9375rem;color:var(--ink-muted);margin-bottom:var(--s5)}
.sl-note strong{color:var(--ink)}
.shortlist ol{list-style:none;display:grid;gap:0}
.sl-pick{padding:var(--s6) 0;border-top:1px solid var(--hair)}
.sl-pick:first-child{border-top:0;padding-top:var(--s3)}
.sl-pick:last-child{padding-bottom:var(--s3)}
.sl-head{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap;margin-bottom:var(--s2)}
.sl-for{
  font:800 .6875rem/1.35 var(--font-body);letter-spacing:.1em;text-transform:uppercase;
  color:var(--cat-ink);padding:0 0 0 var(--s3);
  border-left:3px solid var(--cat-ground);display:block
}
.sl-avg{margin-left:auto;display:flex;align-items:baseline;gap:var(--s2)}
.sl-avg b{font:500 1.375rem/1 var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink)}
.sl-avg span{font:500 .6875rem/1 var(--font-body);color:var(--ink-muted)}
.sl-name{font-family:var(--font-body);font-weight:800;font-size:var(--t-h3);letter-spacing:-.02em;
  display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}
.sl-sources{margin-top:var(--s4);border-top:1px solid var(--hair);padding-top:var(--s3)}
.sl-sources summary{font:600 .8125rem/1 var(--font-body);color:var(--cat-ink);cursor:pointer;min-height:32px}
.sl-sources ul{list-style:none;display:grid;gap:var(--s2);margin-top:var(--s3);font-size:.875rem}
.sl-sources li{display:flex;align-items:baseline;gap:var(--s3)}
.sl-sources li a{flex:1;color:var(--cat-ink);text-decoration:underline;text-underline-offset:2px}
.sl-sources li span{font-family:var(--font-mono);font-size:.8125rem;color:var(--ink-muted)}
.sl-norm{min-width:4.2em;text-align:right}
.savebtn{
  border:0;background:none;padding:6px;margin:-6px;cursor:pointer;color:var(--ink-muted);
  min-width:44px;min-height:44px;display:inline-grid;place-content:center;border-radius:var(--r-md);
  position:relative;z-index:1
}
.savebtn:hover{color:var(--ink);background:var(--paper-2)}
.savebtn[aria-pressed="true"]{color:var(--cat-ink)}
.savebtn[aria-pressed="true"] svg{fill:currentColor}
.cardmeta .savebtn{margin-left:auto}
.artactions{display:flex;gap:var(--s2);padding-top:var(--s3)}
.pchip{
  display:inline-flex;align-items:baseline;gap:6px;border:1px solid var(--cat-ground);
  background:none;color:inherit;font:inherit;font-weight:700;cursor:pointer;
  padding:2px 8px;border-radius:var(--r-sm);line-height:inherit
}
.pchip:hover{background:var(--cat-ground);color:var(--ink)}
.pchip-i{font:700 .625rem/1 var(--font-body);letter-spacing:.08em;text-transform:uppercase;
  color:var(--cat-ink);opacity:.9}
.pchip:hover .pchip-i{color:var(--ink)}
.drawer{
  border:0;padding:0;background:var(--paper);color:var(--ink);
  width:min(100%,520px);max-height:86dvh;border-radius:var(--r-lg) var(--r-lg) 0 0;
  margin:auto auto 0;box-shadow:var(--e2)
}
.drawer::backdrop{background:rgb(0 0 0/.5)}
.drawer[open]{display:flex;flex-direction:column}
@media(min-width:48rem){.drawer{margin:auto;border-radius:var(--r-lg)}}
.drawer-head{display:flex;align-items:center;gap:var(--s3);padding:var(--s4);
  border-bottom:1px solid var(--hair);position:sticky;top:0;background:var(--paper)}
.drawer-head h2{font-family:var(--font-body);font-weight:800;font-size:1.125rem;flex:1;letter-spacing:-.02em}
.drawer-body{padding:var(--s4);overflow-y:auto}
.drawer-price{font:500 1.125rem/1 var(--font-mono);margin-bottom:var(--s3)}
.drawer-price span{font-size:.75rem;color:var(--ink-muted)}
.drawer-score{display:inline-block;font:700 .875rem/1 var(--font-body);color:var(--cat-ink);
  margin-bottom:var(--s4);text-decoration:underline;text-underline-offset:3px}
.spec-list{display:grid;gap:0}
.spec-row{display:grid;grid-template-columns:40% 1fr;gap:var(--s3);
  padding:var(--s3) 0;border-bottom:1px solid var(--hair);font-size:.9375rem}
.spec-row dt{color:var(--ink-muted);font-weight:600}
.spec-row dd{margin:0}
.drawer-buys{display:grid;gap:var(--s2);margin-top:var(--s5)}
.drawer-buy{display:flex;justify-content:space-between;align-items:center;
  border:2px solid var(--ink);border-radius:var(--r-md);padding:var(--s3) var(--s4);
  font-weight:700;font-size:.9375rem}
.drawer-buy span{font:600 .625rem/1 var(--font-body);letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-muted)}
.drawer-buy:hover{background:var(--cat-ground);border-color:var(--cat-ground)}
.arthero img{view-transition-name:hero-media}
::view-transition-old(hero-media),::view-transition-new(hero-media){
  animation-duration:var(--dur-slow,280ms);mix-blend-mode:normal
}
.signal{margin-block:var(--s6);padding:var(--s4);background:var(--paper-2);border-radius:var(--r-md)}
.signal-head{display:flex;align-items:baseline;gap:var(--s3);flex-wrap:wrap;margin-bottom:var(--s4)}
.signal h2{font-family:var(--font-body);font-weight:800;font-size:.8125rem;text-transform:uppercase;letter-spacing:.08em}
.signal-n{font:500 var(--t-meta)/1 var(--font-body);color:var(--ink-muted)}
.signal-n b{color:var(--ink);font-variant-numeric:tabular-nums}
.signal-bars{display:grid;gap:var(--s3)}
.signal-bars li{display:grid;grid-template-columns:1fr 90px 3.2em;align-items:center;gap:var(--s3);font-size:.9375rem}
.sig-track{height:8px;border-radius:var(--r-pill);background:var(--hair);overflow:hidden}
.sig-fill{display:block;height:100%;border-radius:var(--r-pill)}
.sig-fill.v-buy{background:var(--v-buy)}
.sig-fill.v-wait{background:var(--v-wait)}
.sig-fill.v-skip{background:var(--v-skip)}
.sig-pct{font:500 .875rem/1 var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;color:var(--ink-muted)}
.signal-note{margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--hair);
  font-size:.8125rem;color:var(--ink-muted)}
@media(max-width:26rem){.signal-bars li{grid-template-columns:1fr 60px 3.2em}}
.anchor{
  position:fixed;left:0;right:0;z-index:58;
  bottom:calc(var(--h-thumbnav) + env(safe-area-inset-bottom));
  background:var(--paper-2);border-top:1px solid var(--hair);
  display:flex;justify-content:center;align-items:center;
  transform:translateY(110%);transition:transform var(--dur) var(--ease)
}
.anchor[data-show]{transform:none}
.anchor-x{
  position:absolute;top:-13px;right:8px;width:26px;height:26px;border-radius:50%;
  border:1px solid var(--hair);background:var(--paper);color:var(--ink-muted);
  font-size:15px;line-height:1;cursor:pointer;display:grid;place-content:center;padding:0
}
@media(min-width:48rem){.anchor{display:none}}
.parallax-wrap{margin-block:var(--s7);position:relative}
.parallax-window{
  height:var(--pxh-m);width:100%;overflow:hidden;position:relative;
  clip-path:inset(0 round var(--r-md));border-radius:var(--r-md)
}
.parallax-inner{
  position:fixed;top:50%;left:0;right:0;height:var(--pxh-m);
  transform:translateY(-50%);margin-inline:auto;max-width:var(--shell)
}
@media(min-width:48rem){
  .parallax-window{height:var(--pxh-d)}
  .parallax-inner{height:var(--pxh-d)}
}
@supports (-webkit-touch-callout:none){
  .parallax-inner{position:absolute;top:0;transform:none}
}
@media(prefers-reduced-motion:reduce){
  .parallax-inner{position:absolute;top:0;transform:none}
}
footer.foot{background:var(--ink);color:var(--paper);margin-top:var(--s8);padding:var(--s7) 0 var(--s8)}
footer.foot a{color:var(--paper);opacity:.72}
footer.foot a:hover{opacity:1;text-decoration:underline}
footer.foot .cols{display:grid;gap:var(--s6);grid-template-columns:1fr}
@media(min-width:48rem){footer.foot .cols{grid-template-columns:2fr 1fr 1fr 1fr}}
footer.foot h2{font:700 var(--t-eyebrow)/1 var(--font-body);letter-spacing:.12em;text-transform:uppercase;opacity:.5;margin-bottom:var(--s3)}
footer.foot ul{display:grid;gap:var(--s2);font-size:.9375rem}
footer.foot{--cat-ink:var(--cat-ground)}
footer.foot .mark,footer.foot .mark-crit{color:var(--paper)}
footer.foot .mark-sq{background:var(--cat-mobile)}
:root:not([data-cat]):not([data-fmt]) footer.foot .mark-bits{color:var(--accent-ink-dark)}
footer.foot .mark{font-size:1.75rem;margin-bottom:var(--s3)}
footer.foot .fine{margin-top:var(--s7);padding-top:var(--s5);border-top:1px solid rgb(255 255 255/.14);
  font-size:.8125rem;opacity:.62;max-width:70ch}
.searchbox{display:flex;gap:var(--s2);margin-bottom:var(--s5)}
.searchbox input{flex:1;padding:var(--s3) var(--s4);border:2px solid var(--ink);border-radius:var(--r-md);
  background:var(--paper);font-size:1rem;min-height:48px}
.searchbox input:focus{outline:none;border-color:var(--cat-ink)}
@supports (animation-timeline: scroll()) {
  .article::before{
    content:"";position:fixed;top:0;left:0;height:3px;width:100%;z-index:70;
    background:var(--cat-ground);transform-origin:0 50%;transform:scaleX(0);
    animation:bq-progress linear both;animation-timeline:scroll(root block);
  }
  @keyframes bq-progress{to{transform:scaleX(1)}}
  .board-tile{
    animation:bq-rise linear both;
    animation-timeline:view(block);
    animation-range:entry 0% entry 60%;
  }
  @keyframes bq-rise{from{transform:translateY(10px)}to{transform:none}}
  .card-hero .thumb img{
    animation:bq-settle linear both;
    animation-timeline:view(block);
    animation-range:entry 0% entry 70%;
  }
  @keyframes bq-settle{from{transform:scale(1.03)}to{transform:none}}
}
.card .thumb img{transition:transform var(--dur-slow,320ms) var(--ease)}
.card:hover .thumb img{transform:scale(1.02)}
.savebtn svg{transition:transform var(--dur-fast,120ms) var(--ease)}
.savebtn:active svg{transform:scale(.85)}
.savebtn[aria-pressed="true"] svg{animation:bq-pop var(--dur) var(--ease)}
@keyframes bq-pop{0%{transform:scale(.8)}60%{transform:scale(1.12)}100%{transform:none}}
.board-tile{transition:transform var(--dur) var(--ease)}
.board-tile::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  box-shadow:var(--e2);opacity:0;transition:opacity var(--dur) var(--ease)
}
.board-tile:hover{transform:translateY(-3px)}
.board-tile:hover::after{opacity:1}
.pick-buys a,.drawer-buy{transition:background var(--dur-fast,120ms) var(--ease),
  border-color var(--dur-fast,120ms) var(--ease)}
.article::before{will-change:transform}
@media(hover:hover){.board-tile:hover{will-change:transform}}
.empty{padding:var(--s8) 0;text-align:center;color:var(--ink-muted)}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important}
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}
  .article::before,.board-tile,.card-hero .thumb img{animation:none!important;transform:none!important}
  .article::before{display:none}
}
@view-transition{navigation:auto}
