/* fonts.css inlined 2026-10-21 (one render-blocking request fewer); self-hosted, no Google requests */
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/barlowcondensed-600.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(fonts/barlowcondensed-800.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/ibmplexmono-500.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/inter-400.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/inter-500.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/inter-600.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Average TechNerds - redesign concept. Brand palette from brand/guidelines/SET-PALETTE.md */
:root{
  --ink:#0f0f11; --bg:#121215; --panel:#18191d; --panel2:#1f2025; --line:#2b2c32;
  --text:#f2efed; --mute:#a2a2a7; --dim:#7a7a80; --red:#c4314b; --red-hi:#f07187; --amber:#f5b301;
  --head:'Barlow Condensed','Arial Narrow',Impact,sans-serif; --body:Inter,system-ui,sans-serif; --mono:'IBM Plex Mono',ui-monospace,monospace;
  --w:1600px; --g:40px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 var(--body);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.wrap{max-width:var(--w);margin:0 auto;padding:0 var(--g)}
.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:16px;z-index:99;background:var(--red);padding:8px 12px}
:focus-visible{outline:2px solid var(--red-hi);outline-offset:3px}
kbd{font:500 11px var(--mono);border:1px solid var(--line);border-radius:4px;padding:1px 6px;color:var(--mute)}

/* header */
.top{position:sticky;top:0;z-index:20;background:rgba(15,15,17,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.top-in{display:flex;align-items:center;gap:32px;height:76px}
.brand{display:flex;align-items:center;gap:12px;flex:none}
.brand img{width:52px;height:52px}
.brand span{display:flex;flex-direction:column;line-height:1}
.wm{font:800 34px/1 var(--head);letter-spacing:.5px}
.wm i{font-style:normal;color:var(--red)}
.wm.sm{font-size:28px}
.brand small{font:500 10.5px var(--mono);letter-spacing:2.2px;text-transform:uppercase;color:var(--mute);margin-top:5px}
.nav{display:flex;gap:4px;margin-left:auto}
.nav a{font:600 14.5px var(--body);color:var(--mute);padding:8px 12px;border-radius:6px}
.nav a:hover{color:var(--text);background:var(--panel)}
.nav a[aria-current]{color:var(--text);box-shadow:inset 0 -2px 0 var(--red);border-radius:0}
.find{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);color:var(--mute);border-radius:8px;padding:8px 10px 8px 12px;font:500 14px var(--body);cursor:pointer;min-width:190px}
.find span{flex:1;text-align:left}
.find:hover{border-color:#3a3b42;color:var(--text)}
.menu{display:none}

/* type bits */
.kicker{font:500 12px var(--mono);letter-spacing:1.8px;text-transform:uppercase;color:var(--red-hi);margin:0 0 10px}
.meta{font:500 12px var(--mono);letter-spacing:.6px;color:var(--dim);text-transform:uppercase;margin:0}
.btn{display:inline-flex;align-items:center;gap:8px;font:600 15px var(--body);padding:12px 20px;border-radius:8px;border:1px solid var(--line);background:var(--panel);cursor:pointer;color:var(--text)}
.btn:hover{border-color:var(--mute)}
.btn.red{background:var(--red);border-color:var(--red)}
.btn.red:hover{background:#d63a56}

/* hero */
.hero{display:grid;grid-template-columns:1.35fr 1fr;gap:48px;align-items:center;padding-top:40px;padding-bottom:36px}
.hero-vid{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:16/9;background:#000}
.hero-vid img,.yt img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.hero-vid:hover img{transform:scale(1.02)}
.bigplay{position:absolute;inset:0;margin:auto;width:84px;height:84px;border-radius:50%;background:rgba(196,49,75,.95);display:grid;place-items:center;font-size:30px;padding-left:6px;box-shadow:0 8px 30px rgba(0,0,0,.5)}
.dur,.play{color:var(--amber);position:absolute;right:12px;bottom:12px;background:rgba(0,0,0,.82);font:500 12.5px var(--mono);padding:4px 8px;border-radius:5px}
.hero h1{font:800 clamp(38px,3.6vw,64px)/1 var(--head);margin:0 0 18px;text-wrap:balance}
.hero h1 a:hover{color:var(--red-hi)}
.hero-bl{color:#d9d5d2;font-size:17.5px;margin:0 0 26px;border-left:3px solid var(--red);padding-left:16px}
.hero-bl b,.bl b{color:var(--amber)}   /* Victor 2026-10-21: amber (the bolt's gold) is the detail accent; maroon stays brand/actions */
.btns{display:flex;gap:12px;flex-wrap:wrap}

/* on the bench */
.bench{border-block:1px solid var(--line);background:var(--ink)}
.bench-in{display:flex;align-items:center;gap:14px;height:52px;font:500 13.5px var(--mono);color:var(--mute);white-space:nowrap;overflow:hidden}
.bench b{color:var(--text);text-transform:uppercase;letter-spacing:1.5px;font-size:12px}
.bench span:not(.dot){overflow:hidden;text-overflow:ellipsis}
.bench a{margin-left:auto;color:var(--red-hi)}
.dot{width:9px;height:9px;border-radius:50%;background:var(--red);box-shadow:0 0 0 0 rgba(196,49,75,.7);animation:pulse 2s infinite;flex:none}
@keyframes pulse{70%{box-shadow:0 0 0 8px rgba(196,49,75,0)}100%{box-shadow:0 0 0 0 rgba(196,49,75,0)}}

/* sections */
.sec{padding-top:56px;padding-bottom:16px}
.sec-h{display:flex;align-items:baseline;gap:16px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:24px}
.sec-h h2{font:800 34px/1 var(--head);text-transform:uppercase;letter-spacing:.5px;margin:0}
.sec-h p{margin:0;color:var(--dim);font-size:14.5px}
.more{margin-left:auto;font:500 13px var(--mono);color:var(--red-hi);white-space:nowrap}
.more:hover{text-decoration:underline}

/* cards */
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px 24px}
.grid.g3{grid-template-columns:repeat(3,1fr)}
.card{display:flex;flex-direction:column}
.card-img{position:relative;display:block;aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:var(--panel)}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.card:hover .card-img img,.vcard:hover .card-img img{transform:scale(1.03)}
.lab{color:var(--amber);position:absolute;left:10px;top:10px;font:500 11px var(--mono);letter-spacing:1.2px;text-transform:uppercase;background:rgba(15,15,17,.88);padding:4px 8px;border-radius:4px;border-left:2px solid var(--red)}
.card-tx{padding-top:14px;display:flex;flex-direction:column;flex:1}
.card h3{font:600 23px/1.12 var(--head);margin:0 0 8px;letter-spacing:.2px}
.card h3 a:hover{color:var(--red-hi)}
.bl{color:var(--mute);font-size:14.5px;line-height:1.5;margin:0 0 12px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.card .meta{margin-top:auto}

/* news list */
.split{display:grid;grid-template-columns:1fr 420px;gap:56px}
.nlist{list-style:none;margin:0;padding:0}
.nrow{display:grid;grid-template-columns:76px 1fr 170px;gap:20px;padding:18px 0;border-bottom:1px solid var(--line);align-items:start}
.nrow time{font:500 12.5px var(--mono);color:var(--dim);padding-top:4px}
.nrow h3{font:600 22px/1.15 var(--head);margin:0 0 6px}
.nrow h3 a:hover{color:var(--red-hi)}
.nrow p{color:var(--mute);font-size:14.5px;line-height:1.5;margin:0 0 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nthumb{aspect-ratio:16/9;border-radius:8px;overflow:hidden;background:var(--panel)}
.nthumb img{width:100%;height:100%;object-fit:cover}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{font:500 11px var(--mono);color:var(--mute);border:1px solid var(--line);border-radius:999px;padding:2px 9px}

/* shelf */
.side-p{color:var(--mute);font-size:14.5px;margin:-8px 0 18px}
.hubs-col{display:flex;flex-direction:column;gap:12px}
.hubs{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.hub{position:relative;display:block;border-radius:10px;overflow:hidden;background:var(--panel);border:1px solid var(--line)}
.hubs-col .hub{display:grid;grid-template-columns:132px 1fr;align-items:center}
.hub img{width:100%;aspect-ratio:16/10;object-fit:cover}
.hubs-col .hub img{height:100%;aspect-ratio:auto}
.hub-tx{display:flex;flex-direction:column;gap:4px;padding:14px 16px}
.hub-tx b{font:600 22px/1.1 var(--head)}
.hub-tx small{font:500 11.5px var(--mono);color:var(--dim)}
.hub:hover{border-color:#44454d}.hub:hover b{color:var(--red-hi)}
.st{align-self:flex-start;font:500 10.5px var(--mono);letter-spacing:1.2px;text-transform:uppercase;padding:3px 8px;border-radius:4px;background:rgba(196,49,75,.16);color:var(--red-hi)}
.st-watching{background:rgba(162,162,167,.14);color:var(--mute)}

/* shorts */
.shorts{display:grid;grid-template-columns:repeat(8,1fr);gap:16px}
.shorts.all{grid-template-columns:repeat(8,1fr)}
.short{display:flex;flex-direction:column;gap:8px;position:relative}
.short i{display:block;aspect-ratio:9/16;border-radius:10px;overflow:hidden;background:var(--panel)}.short img{width:100%;height:100%;object-fit:cover;transform:scale(1.04)}
.short span{font:600 15px/1.2 var(--body);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.short em{position:absolute;top:8px;right:8px;font:500 11px var(--mono);font-style:normal;background:rgba(0,0,0,.8);padding:2px 6px;border-radius:4px}
.short:hover span{color:var(--red-hi)}

/* weekly */
.weekly{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:44px 48px;margin-bottom:40px}
.weekly h2{font:800 46px/1 var(--head);margin:0 0 18px}
.weekly.solo{grid-template-columns:1fr;gap:24px;margin-top:28px}
.ticks{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.ticks li{padding-left:28px;position:relative;color:#d9d5d2}
.ticks li:before{content:'✓';position:absolute;left:0;color:var(--red-hi);font-weight:700}
.sub label{display:block;font:500 12px var(--mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--mute);margin-bottom:8px}
.sub div{display:flex;gap:10px}
.sub input{flex:1;min-width:0;background:var(--ink);border:1px solid var(--line);border-radius:8px;color:var(--text);font:16px var(--body);padding:12px 14px}
.sub small{display:block;color:var(--dim);margin-top:10px;font-size:13px}
.ok{font:500 14px var(--mono);color:var(--red-hi)}

/* lanes */
.lane h1{font:800 clamp(48px,5vw,84px)/.95 var(--head);margin:0 0 14px}
.lede{max-width:760px;color:var(--mute);font-size:18px;margin:0 0 28px}
.narrow{max-width:1120px}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;position:sticky;top:76px;z-index:5;background:var(--bg);padding:12px 0;border-bottom:1px solid var(--line)}
.filters button{font:500 13px var(--body);color:var(--mute);background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:7px 14px;cursor:pointer}
.filters button:hover{color:var(--text)}
.filters button.on{background:var(--text);color:var(--ink);border-color:var(--text)}
.month{font:500 13px var(--mono);letter-spacing:2px;text-transform:uppercase;color:var(--dim);margin:36px 0 18px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.empty{color:var(--mute)}
.vcard h3{font:600 21px/1.15 var(--head);margin:12px 0 6px}
.readit{display:inline-block;margin-top:8px;font:500 13px var(--mono);color:var(--red-hi)}
.readit.none{color:var(--dim)}

/* shelf page */
.hubhero{position:relative;height:420px;overflow:hidden}
.hubhero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.45)}
.hubhero:after{content:'';position:absolute;inset:0;background:linear-gradient(to top,var(--bg),rgba(18,18,21,0) 70%)}
.hubhero-tx{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:28px}
.hubhero h1{font:800 clamp(48px,6vw,96px)/.95 var(--head);margin:6px 0 14px}
.hubhero p{margin:0;color:#d9d5d2;font:500 13px var(--mono);display:flex;gap:12px;align-items:center}
.crumb{font:500 12.5px var(--mono);color:var(--mute);letter-spacing:1px;text-transform:uppercase;margin:0}
.crumb a{color:var(--red-hi)}
.hubbody{display:grid;grid-template-columns:1fr 380px;gap:56px}
.stands{background:var(--panel);border-left:4px solid var(--red);border-radius:0 10px 10px 0;padding:24px 28px}
.stands p:not(.kicker){font-size:18px;margin:0 0 12px}
.stands a{font:500 13px var(--mono);color:var(--red-hi)}
.tl{list-style:none;margin:0;padding:0;position:relative}
.tl:before{content:'';position:absolute;left:83px;top:8px;bottom:8px;width:2px;background:var(--line)}
.ev{display:grid;grid-template-columns:70px 140px 1fr;gap:28px;padding:16px 0;position:relative}
.ev:before{content:'';position:absolute;left:78px;top:22px;width:12px;height:12px;border-radius:50%;background:var(--bg);border:2px solid var(--mute)}
.ev-video:before,.ev-short:before{border-color:var(--red);background:var(--red)}
.ev time{font:500 12.5px var(--mono);color:var(--dim);padding-top:3px}
.evk{font:500 11.5px var(--mono);letter-spacing:1px;text-transform:uppercase;color:var(--mute);padding-top:4px}
.ev-video .evk,.ev-short .evk{color:var(--red-hi)}
.ev a{font:600 21px/1.15 var(--head)}
.ev a:hover{color:var(--red-hi)}
.ev p{color:var(--mute);font-size:14.5px;margin:6px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.evv a{display:flex;gap:14px;align-items:center}
.evv img{width:120px;border-radius:6px;flex:none}

/* article */
.art{padding-top:44px}
.art-h{max-width:1000px;margin-bottom:28px}
.art-h h1{font:800 clamp(40px,4.2vw,72px)/1 var(--head);margin:12px 0 16px;text-wrap:balance}
.art-grid{display:grid;grid-template-columns:minmax(0,800px) 300px;gap:72px}
.watch{margin-bottom:36px}
.yt{position:relative;display:block;width:100%;aspect-ratio:16/9;border:0;padding:0;border-radius:12px;overflow:hidden;background:#000;cursor:pointer;color:var(--text)}
.yt iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.watch-cap{font:500 12.5px var(--mono);color:var(--dim);margin:10px 0 0}
.watch-cap b{color:var(--red-hi);text-transform:uppercase;letter-spacing:1px}
.feat img{border-radius:12px;width:100%}
.feat{margin:0 0 36px}
.art-side{position:sticky;top:100px;align-self:start;display:flex;flex-direction:column;gap:20px}
.box{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:18px 20px}
.toc ol{list-style:none;padding:0;margin:0;counter-reset:t}
.toc li{counter-increment:t;margin:0}
.toc a{display:block;padding:7px 0 7px 30px;position:relative;font-size:14.5px;line-height:1.35;color:var(--mute);border-top:1px solid var(--line)}
.toc li:first-child a{border-top:0}
.toc a:before{content:counter(t,decimal-leading-zero);position:absolute;left:0;font:500 11.5px var(--mono);color:var(--dim);top:9px}
.toc a:hover,.toc a.on{color:var(--text)}
.toc a.on:before{color:var(--red-hi)}
.boxhub{display:flex;flex-direction:column;gap:4px}
.boxhub b{font:600 22px/1.1 var(--head)}
.boxhub span{font:500 11.5px var(--mono);color:var(--dim)}
.boxhub em{font:500 13px var(--mono);font-style:normal;color:var(--red-hi);margin-top:6px}

/* prose (Ghost body HTML) */
.prose{font-size:18.5px;line-height:1.72;color:#e5e2df}
.prose h1{font:800 clamp(40px,4vw,64px)/1 var(--head);margin:0 0 28px}
.prose h2{font:800 34px/1.1 var(--head);margin:52px 0 14px;color:var(--text)}
.prose h3{font:600 25px/1.2 var(--head);margin:36px 0 10px}
.prose p{margin:0 0 1.15em}
.prose a{color:var(--red-hi);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.prose img{border-radius:10px;height:auto}
.prose figure{margin:32px 0}
.prose figcaption{font:500 12.5px var(--mono);color:var(--dim);margin-top:8px;text-align:left}
.prose .kg-width-wide,.prose .kg-width-full{margin-inline:0}
.prose ul,.prose ol{padding-left:1.3em}.prose li{margin:.3em 0}
.prose blockquote{border-left:3px solid var(--red);margin:28px 0;padding:4px 0 4px 20px;color:var(--text);font-style:italic}
.prose table{width:100%;border-collapse:collapse;font-size:15.5px;margin:24px 0;display:block;overflow-x:auto}
.prose th,.prose td{border-bottom:1px solid var(--line);padding:10px 12px;text-align:left}
.prose th{font:500 12px var(--mono);letter-spacing:1px;text-transform:uppercase;color:var(--mute)}
.prose iframe{width:100%;aspect-ratio:16/9;height:auto;border:0;border-radius:10px}
.prose hr{border:0;border-top:1px solid var(--line);margin:40px 0}
.prose .kg-gallery-row{display:flex;gap:10px}.prose .kg-gallery-image{flex:1}
.prose .kg-bookmark-card a{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;text-decoration:none;color:var(--text)}
.prose .kg-bookmark-content{padding:16px}.prose .kg-bookmark-thumbnail{width:200px;flex:none}
.prose .kg-bookmark-thumbnail img{height:100%;object-fit:cover;border-radius:0}
.prose .kg-bookmark-description,.prose .kg-bookmark-metadata{font-size:14px;color:var(--mute)}
.prose .kg-bookmark-icon{width:18px;display:inline}
.prose .atn-bluf{margin-inline:0 !important}
.solo-prose{max-width:800px}
.article-wrap{padding-top:44px}

/* footer */
.foot{margin-top:72px;border-top:1px solid var(--line);background:var(--ink)}
.foot-in{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;padding-top:44px;padding-bottom:32px}
.foot p{color:var(--mute);max-width:420px}
.foot-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.foot h4{font:500 12px var(--mono);letter-spacing:1.8px;text-transform:uppercase;color:var(--dim);margin:6px 0 12px}
.foot-cols a{display:block;color:var(--mute);padding:3px 0;font-size:15px}
.foot-cols a:hover{color:var(--text)}
.fine{font:500 12px var(--mono);color:var(--dim);padding-top:16px;padding-bottom:28px;border-top:1px solid var(--line)}

/* responsive */
@media (max-width:1399px){.grid{grid-template-columns:repeat(3,1fr)}.shorts,.shorts.all{grid-template-columns:repeat(6,1fr)}.shorts:not(.all) .short:nth-child(n+7){display:none}.hubs{grid-template-columns:repeat(3,1fr)}.find{min-width:0}.find span,.find kbd{display:none}}
@media (max-width:1180px){
  .nav{display:none}.menu{display:block;position:relative}
  .menu summary{list-style:none;cursor:pointer;width:42px;height:42px;display:grid;place-content:center;gap:5px;border:1px solid var(--line);border-radius:8px}
  .menu summary::-webkit-details-marker{display:none}
  .menu summary span{display:block;width:18px;height:2px;background:var(--text)}
  .menu nav{position:absolute;right:0;top:52px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px;display:flex;flex-direction:column;min-width:220px}
  .menu nav a{padding:10px 14px;border-radius:6px;font-weight:600}.menu nav a:hover{background:var(--panel2)}
  .find{margin-left:auto}
  .split,.hubbody,.art-grid{grid-template-columns:1fr}
  .art-side{position:static}.toc{display:none}
  .hero{grid-template-columns:1fr;gap:28px}
}
@media (max-width:900px){.grid,.grid.g3{grid-template-columns:repeat(2,1fr)}.hubs{grid-template-columns:repeat(2,1fr)}.shorts,.shorts.all{grid-template-columns:repeat(3,1fr)}.shorts:not(.all) .short:nth-child(n+4){display:none}.weekly{grid-template-columns:1fr;padding:32px}.foot-in{grid-template-columns:1fr}}
@media (max-width:640px){
  :root{--g:16px}
  .top-in{height:64px;gap:12px}.brand img{width:40px;height:40px}.wm{font-size:27px}.brand small{font-size:9px;letter-spacing:1.6px}
  .filters{top:64px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.filters button{flex:none}
  .grid,.grid.g3,.hubs{grid-template-columns:1fr}
  .hero{padding-top:20px}.bigplay{width:64px;height:64px;font-size:24px}
  .bench-in{height:auto;padding-block:12px;flex-wrap:wrap;white-space:normal;gap:6px 10px}.bench a{margin-left:19px}
  .sec{padding-top:40px}.sec-h{flex-wrap:wrap}.sec-h h2{font-size:30px}.sec-h p{order:3;width:100%}
  .nrow{grid-template-columns:1fr 104px;gap:6px 14px}.nrow time{grid-column:1/-1;padding:0}.nrow>div{grid-row:2}.nthumb{grid-row:2}
  .nrow .chips{display:none}
  .hubs-col .hub{grid-template-columns:110px 1fr}
  .weekly{padding:24px}.weekly h2{font-size:36px}.sub div{flex-direction:column}
  .hubhero{height:340px}
  .tl:before{left:5px}.ev{grid-template-columns:1fr;gap:4px;padding-left:28px}.ev:before{left:0;top:20px}.evv img{width:96px}
  .prose{font-size:17.5px}.prose h2{font-size:30px}
  .foot-cols{grid-template-columns:1fr 1fr}
}

@media (max-width:640px){.grid.home .card:nth-child(n+5){display:none}}

/* Article width: matches the live site (Victor 2026-09-30: 1200px column, contents list on the left).
   A "middle ground" (paragraphs ~760px, media full width) was tried 2026-10-12 and rejected by Victor: the empty right side looked wasteful. */
@media (min-width:1181px){
  .art{max-width:1560px}
  .art-grid{grid-template-columns:260px minmax(0,1200px);gap:48px}
  .art-side{order:-1}
  .art .art-h{max-width:1200px;margin-left:308px}
}
/* ---- Ghost build additions (2026-10-12) ---- */
.brand small{letter-spacing:1.2px;text-transform:none;font-size:12px}
.nav a.ext{color:var(--red-hi)}
.find kbd{font-size:10px}
.hero-vid{display:block}
.hero-bl{border-left:3px solid var(--red)}
.vd:not(:empty){font-family:var(--mono);font-size:.85em}
.chip{display:none}.chip:is(.t-handhelds,.t-retro-gaming,.t-controllers-accessories,.t-pc-hardware,.t-local-ai,.t-home-tech,.t-everyday-tech){display:inline-block}
.ct{display:none}.ct:is(.t-handhelds,.t-retro-gaming,.t-controllers-accessories,.t-pc-hardware,.t-local-ai,.t-home-tech,.t-everyday-tech){display:inline}
.dek{font-size:20px;line-height:1.5;color:#d9d5d2;max-width:1000px;margin:0 0 14px}
.side>.sec-h{margin-top:28px}
.hey{display:grid;grid-template-columns:56px 1fr;gap:16px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:18px 20px}
.hey h3{font:800 26px/1 var(--head);margin:0 0 8px}
.hey p:not(.kicker){color:var(--mute);font-size:14px;line-height:1.55;margin:0 0 8px}
.hey a{font:500 13px var(--mono);color:var(--red-hi)}
.hub-desc{font-size:18px;color:#d9d5d2;max-width:760px;margin:0 0 14px}
.hub-meta span[data-hubcount]{font:500 13px var(--mono);color:#d9d5d2}
.hubhero p.hub-desc{display:block;font:400 18px/1.5 var(--body)}
.feat{margin:0 0 36px}
.feat-img{position:relative;border-radius:12px;overflow:hidden;background:#000}
.feat-img img{width:100%;height:auto;display:block}
.feat.has-video .feat-img{cursor:pointer}
.feat-img .bigplay{border:0;color:#fff;cursor:pointer}
.video-frame{position:relative;aspect-ratio:16/9;border-radius:12px;overflow:hidden;background:#000}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.feat figcaption{font:500 12.5px var(--mono);color:var(--dim);margin:10px 0 0}
.feat figcaption a{color:var(--mute);text-decoration:underline}
.wl{color:var(--red-hi);text-transform:uppercase;letter-spacing:1px;font-weight:500;margin-right:6px}
.jump{font:500 13px var(--mono);color:var(--red-hi);padding-left:4px}
.toc ol a.is-active{color:var(--text)}.toc ol a.is-active:before{color:var(--red-hi)}
.art-signup{margin:48px 0 0;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:28px 30px}
.art-signup label{display:block;font:400 16px/1.55 var(--body);text-transform:none;letter-spacing:0;color:#d9d5d2;margin-bottom:14px}
.conversation{margin-top:56px;border-top:1px solid var(--line);padding-top:32px}
.conversation h2{font:800 38px/1 var(--head);margin:0 0 8px}
.conversation>p:not(.kicker){color:var(--mute);margin:0 0 20px}
.sub .msg{display:none;margin:10px 0 0;font:500 13px var(--mono)}
.sub.success .ok{display:block;color:var(--red-hi)}.sub.error .err{display:block;color:#ff8a8a}
.sub.loading button{opacity:.6}
.nl-thanks .ty{font:800 34px/1 var(--head);margin:0 0 10px;color:var(--text)}
.nl-thanks p{color:#d9d5d2}.nl-thanks small{display:block;color:var(--dim);margin-top:12px}
.weekly h2{font-size:clamp(32px,3vw,46px)}
.pager{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:32px 0;font:500 13px var(--mono);color:var(--dim)}
.page-wrap{max-width:1200px}
.about{display:grid;grid-template-columns:300px minmax(0,1200px);gap:56px;align-items:start}
.about-pic{margin:8px 0 0;position:sticky;top:100px}
.about-pic img{width:100%;height:auto;border-radius:12px;border:1px solid var(--line)}
.about h1{font:800 clamp(40px,4vw,64px)/1 var(--head);margin:0 0 24px}
.about .prose h2{color:var(--red-hi)}
.more-yt{margin:28px 0 0}
.evv a{font:600 20px/1.15 var(--head)}
.ev[hidden]{display:none}
/* article content blocks carried over from the old theme */
.prose .atn-glance dt,.prose .atn-glance dd{margin:0}
.prose table.atn-data-table{display:block;max-width:100%;overflow-x:auto}
.prose table.atn-data-table :is(th,td){white-space:nowrap}
.prose table.atn-data-table td.note{white-space:normal;min-width:220px}
.prose .atn-cell{color:inherit!important}
.prose .atn-source-note{margin:36px 0 0;padding-top:18px;border-top:1px solid var(--line)}
.prose .atn-source-note p{font-size:14px;font-style:italic;color:var(--mute)}
.atn-draft-note{display:none!important}
.prose .kg-width-wide{margin-inline:0}
.prose .kg-width-full{margin-inline:0}
.prose .kg-image-card img{margin-inline:auto}
.prose .kg-callout-card{border-radius:10px}
.prose .kg-toggle-card{background:var(--panel)!important;border-color:var(--line)!important}
.prose .kg-bookmark-container{background:var(--panel)}
.prose .kg-bookmark-title{color:var(--text)}
@media (max-width:1180px){.about{grid-template-columns:1fr}.about-pic{position:static;max-width:280px}}
@media (min-width:1181px){
  .art{max-width:1560px}
  .art-grid{grid-template-columns:260px minmax(0,1200px);gap:48px}
  .art-side{order:-1}
  .art .art-h{max-width:1200px;margin-left:308px}
}
@media (max-width:640px){.hero-tx h1{font-size:34px}.dek{font-size:17px}.art-signup{padding:20px}.conversation h2{font-size:30px}}

.grid>.month{grid-column:1/-1;margin:20px 0 0}
.nlist>.month{list-style:none}
@media (max-width:640px){.top-in{gap:8px}.brand{flex:1 1 auto;min-width:0;gap:10px}.brand small{font-size:10.5px;white-space:nowrap}.find{padding:9px;min-width:0}.menu summary{width:40px;height:40px}}

/* Contents list: only the chapter being read is red, with a red marker (Victor 2026-09-30, restored 2026-10-12). */
.toc ol a{border-left:2px solid transparent;margin-left:-12px;padding-left:40px}
.toc ol a:before{left:12px}
.toc ol a.is-active{color:var(--red-hi);border-left-color:var(--red)}
.toc ol a.is-active:before{color:var(--red-hi)}

/* Filters and scripts hide things with the hidden attribute; card/row display rules must not override it (bug found by Victor 2026-10-12). */
[hidden]{display:none!important}

/* Phones/tablets: no left column; the Shelf box comes after the article (post.hbs .shelf-m), video right under the title. */
.shelf-m{display:none}
@media (max-width:1180px){.art-side{display:none}.shelf-m{display:block;margin:48px 0 0}}

/* ---- Tracker pages (Upcoming handhelds 2026, Victor 2026-10-13): two clearly labelled tables, cards on phones ---- */
.page-wrap.tracker-page{max-width:1600px}
.tracker .tr-updated{font:700 16px var(--mono);letter-spacing:1.2px;text-transform:uppercase;color:var(--red-hi);margin:2px 0 18px}   /* bigger + bolder, Victor 2026-10-21 */
@media (max-width:640px){.tracker .tr-updated{font-size:14px;letter-spacing:.8px}}   /* one line on phones */
.tracker .tr-intro{font-size:18px;color:#d9d5d2;max-width:900px}
.tr-jump{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 8px}
.prose .tr-jump a{font:600 14px var(--body);text-decoration:none;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:8px 16px}
.prose .tr-jump a:hover{border-color:var(--red)}
.tr-fam{margin-top:44px}
.prose .tr-fam h2{margin:0 0 6px;display:flex;align-items:center;gap:12px}
.prose .tr-fam h2:before{content:'';width:12px;height:12px;border-radius:3px;background:var(--red)}
.prose .tr-pc h2:before{background:#6a9fd8}
.tr-blurb{color:var(--mute);font-size:15.5px}
.tr-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
.prose table.tr-table{display:table;width:100%;margin:0;font-size:14.5px;border-collapse:collapse}
.prose .tr-table th{position:sticky;top:0;background:var(--panel2);white-space:nowrap;padding:12px}
.prose .tr-table td{padding:12px;vertical-align:top;border-bottom:1px solid var(--line)}
.prose .tr-table tbody tr:hover{background:var(--panel)}
.prose .tr-table td b{display:block;font:600 17px/1.2 var(--head);color:var(--text)}
.prose .tr-table td small{display:block;font:500 11.5px var(--mono);color:var(--dim);margin-top:3px}
.prose .tr-table td[data-label=Sources] a{display:inline-block;font:500 12px var(--mono);border:1px solid var(--line);border-radius:4px;padding:0 6px;margin:0 2px 2px 0;text-decoration:none}
.prose .tr-table tr[data-mine] td[data-label=Me] a{font-weight:600}
.ts{display:inline-block;font:500 11px var(--mono);letter-spacing:1px;text-transform:uppercase;padding:3px 8px;border-radius:4px;white-space:nowrap;background:var(--panel2);color:var(--mute)}
.ts-shipping{background:rgba(74,168,106,.16);color:#7fd39a}
.ts-preorder{background:rgba(196,49,75,.18);color:var(--red-hi)}
.ts-announced{background:rgba(106,159,216,.16);color:#9cc3ee}
.ts-delayed,.ts-cancelled{background:rgba(220,140,40,.16);color:#f0b45c}
.dim{color:var(--dim)}
.tr-key,.tr-log{margin-top:44px}
.prose .tr-log time{font:500 12.5px var(--mono);color:var(--dim);margin-right:8px}
@media (max-width:900px){
  .tr-scroll{border:0;overflow:visible}
  .prose table.tr-table,.prose .tr-table tbody,.prose .tr-table tr,.prose .tr-table td{display:block;width:100%}
  .prose .tr-table thead{display:none}
  .prose .tr-table tr{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:0 0 12px}
  .prose .tr-table td{border:0;padding:4px 0;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
  .prose .tr-table td:before{content:attr(data-label);flex:0 0 76px;font:500 11px var(--mono);letter-spacing:1px;text-transform:uppercase;color:var(--dim)}
  .prose .tr-table td[data-label=Device]{display:block;padding-bottom:6px}.prose .tr-table td[data-label=Device]:before{display:none}
  .prose .tr-table td[data-label=Me]:has(> .dim){display:none}
}
/* Shelf pages that have a tracker link to it */
.hub-tracker{display:inline-block;margin-top:14px;font:500 13px var(--mono);color:var(--red-hi)}
.prose .tr-console h2:before{background:#e6e3df}

/* Sortable tracker tables (Victor 2026-10-13): headers are buttons; arrow shows the current sort */
.prose .tr-table th button{all:unset;cursor:pointer;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;display:inline-flex;align-items:center;gap:6px}
.prose .tr-table th button:after{content:'↕';opacity:.35;font-size:11px}
.prose .tr-table th[aria-sort=ascending] button:after{content:'↑';opacity:1;color:var(--red-hi)}
.prose .tr-table th[aria-sort=descending] button:after{content:'↓';opacity:1;color:var(--red-hi)}
.prose .tr-table th button:hover,.prose .tr-table th button:focus-visible{color:var(--text)}
.tr-sortbar{display:none;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 14px}
.tr-sortbar span{font:500 11px var(--mono);letter-spacing:1px;text-transform:uppercase;color:var(--dim)}
.tr-sortbar button{font:500 13px var(--body);color:var(--mute);background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:6px 12px;cursor:pointer}
.tr-sortbar button.on{background:var(--text);color:var(--ink);border-color:var(--text)}
.tr-sortbar button.on:after{content:' ' attr(data-dir)}
@media (max-width:900px){.tr-sortbar{display:flex}}

/* Homepage "Upcoming handhelds" box (2026-10-13): next 5 releases from the tracker */
.upnext-box{margin-top:28px}
.cu-list{list-style:none;margin:0;padding:0}
.cu{display:grid;grid-template-columns:64px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.cu time{font:500 12px var(--mono);color:var(--red-hi);text-transform:uppercase;padding-top:3px}
.cu a{font:600 19px/1.15 var(--head)}
.cu a:hover{color:var(--red-hi)}
.cu small{display:block;font:500 11.5px var(--mono);color:var(--dim);margin-top:4px}
.cu small a.cu-ord{font:inherit;color:var(--red-hi);text-decoration:none;white-space:nowrap}.cu small a.cu-ord:hover{text-decoration:underline}   /* Victor 2026-10-22: the status links to the store */

/* Tracker bands + detail panels (2026-10-13) */
.prose .tr-band th{background:transparent;text-align:left;padding:18px 12px 8px;font:500 12px var(--mono);letter-spacing:1.6px;text-transform:uppercase;color:var(--red-hi);border-bottom:1px solid var(--line)}
.prose .tr-band th span{color:var(--dim);margin-left:6px}
.prose .tr-b-out .tr-band th{color:#7fd39a}
.prose .tr-b-nodate .tr-band th{color:#9cc3ee}
.prose .tr-row.has-detail{cursor:pointer}
.prose .tr-row.has-detail td[data-label=Device] b:after{content:' +';color:var(--dim);font:500 13px var(--mono)}
.prose .tr-row.open td{background:var(--panel)}
.prose .tr-row.open td[data-label=Device] b:after{content:' −';color:var(--red-hi)}
.prose .tr-row:focus-visible{outline:2px solid var(--red-hi);outline-offset:-2px}
.prose .tr-detail td{background:var(--panel);padding:0 0 4px;border-bottom:2px solid var(--red)}
.dp{padding:6px 16px 14px}
.prose .dp-notable{font:400 16px/1.5 var(--body);color:var(--text);margin:8px 0 14px;border-left:3px solid var(--red);padding-left:12px}
.dp-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}
.prose .dp h4{font:500 11px var(--mono);letter-spacing:1.4px;text-transform:uppercase;color:var(--dim);margin:0 0 8px}
.prose .dp ul,.prose .dp ol{list-style:none;margin:0;padding:0}
.prose .dp-configs li{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:6px 0;border-bottom:1px solid var(--line);font-size:14px}
.prose .dp-configs b{font:600 14px var(--body);color:var(--text)}
.prose .dp-configs small{grid-column:1/-1;color:var(--dim);font-size:12px}
.prose .dp-specs{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;margin:0;font-size:14px}
.prose .dp-specs dt{font:500 11px var(--mono);color:var(--dim);text-transform:uppercase;letter-spacing:1px;padding-top:2px}
.prose .dp-specs dd{margin:0;color:#d9d5d2}
.prose .dp-tl li{position:relative;padding:0 0 10px 16px;font-size:14px;color:#d9d5d2}
.prose .dp-tl li:before{content:'';position:absolute;left:0;top:7px;width:7px;height:7px;border-radius:50%;background:var(--red)}
.prose .dp-tl time{display:block;font:500 11.5px var(--mono);color:var(--dim)}
.prose .dp-tl b{color:var(--text);margin-right:4px}
.dp-foot{display:grid;grid-template-columns:auto 1fr;gap:20px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.prose .dp-mine{margin:0;font-size:14px}
.prose .dp-src li{font-size:13px;padding:2px 0}
.prose .dp-src a{color:var(--mute)}
.prose .dp-src small{color:var(--dim);margin-left:6px;font-family:var(--mono);font-size:11px}
.tr-hint{font:500 12px var(--mono);color:var(--dim);margin:8px 0 0}
@media (max-width:900px){
  .prose .tr-band,.prose .tr-band th{display:block;padding:14px 0 6px;border:0}
  .prose .tr-detail,.prose .tr-detail td{display:block;padding:0}
  .prose .tr-detail{margin:-12px 0 12px;border:1px solid var(--line);border-top:0;border-radius:0 0 12px 12px}
  .prose .tr-detail td:before{display:none}
  .dp-foot{grid-template-columns:1fr}
}

/* Tracker search + sister-page link (2026-10-13) */
.tr-tools{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin:18px 0 6px}
.tr-search{flex:1 1 320px;max-width:520px;background:var(--panel);border:1px solid var(--line);border-radius:10px;color:var(--text);font:16px var(--body);padding:11px 14px}
.tr-search:focus{outline:none;border-color:var(--red)}
.tr-count{font:500 12px var(--mono);color:var(--dim)}
.prose .tr-sister{margin-left:auto;font:500 13px var(--mono);color:var(--red-hi);text-decoration:none}
@media (max-width:640px){.prose .tr-sister{margin-left:0}}

/* The expand "+" is red so it reads as clickable (Victor 2026-10-13); "-" when open */
.prose .tr-row.has-detail td[data-label=Device] b:after{content:" +";color:var(--red-hi);font:700 16px var(--mono)}
.prose .tr-row.open td[data-label=Device] b:after{content:" \2212";color:var(--red-hi);font:700 16px var(--mono)}

/* Order column, coverage tag, panel buttons + named sources (2026-10-13) */
.prose .tr-table a.ord{display:inline-block;white-space:nowrap;font:600 13px var(--body);text-decoration:none;color:#fff;background:var(--red);border-radius:6px;padding:5px 10px}
.prose .tr-table a.ord:hover{background:#d63a56}
.prose .tr-table a.ord-announced,.prose .tr-table a.ord-delayed{background:transparent;color:var(--red-hi);border:1px solid var(--red);padding:4px 9px}
.prose .tr-table td a.cov{display:inline-block;margin-top:6px;font:600 12px var(--mono);color:var(--red-hi);text-decoration:none;border-bottom:1px solid var(--red)}
.prose .dp-btns{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 4px}
.prose .dp-btns .btn{text-decoration:none;font-size:14px;padding:9px 16px}
.prose .dp-src{font-size:13px;color:var(--mute);margin:0;line-height:1.9}
.prose .dp-src b{font:500 11px var(--mono);letter-spacing:1.4px;text-transform:uppercase;color:var(--dim);margin-right:8px}
.prose .dp-src a{color:var(--mute)}
.prose .dp-src small{font:500 10.5px var(--mono);color:var(--dim);margin-left:4px}
.dp-foot{grid-template-columns:1fr}
.prose .tr-table .dp-src small{display:inline;margin:0 2px 0 3px}
.prose .tr-table a.ord-ghost{background:transparent;color:var(--red-hi);border:1px solid var(--red);padding:4px 9px}

/* Sorting flattens a tracker table; this button restores the status groups (2026-10-13) */
.tr-regroup{font:600 13px var(--body);color:var(--red-hi);background:transparent;border:1px solid var(--red);border-radius:999px;padding:6px 14px;cursor:pointer;margin:0 0 12px}
.tr-regroup:hover{background:rgba(196,49,75,.12)}

/* Alternating row shading, desktop only (Victor 2026-10-13); rows get .alt from site.js restripe() */
@media (min-width:901px){
  .prose .tr-table tr.tr-row td{background:var(--bg)}
  .prose .tr-table tr.tr-row.alt td{background:#202128}
  .prose .tr-table tr.tr-row:hover td,.prose .tr-table tr.tr-row.open td{background:#2a2b33}
}

/* Tracker readability pass (Victor 2026-10-15): one line per cell, no Status column (the bands say it), an amber tag
   for the exceptions (Delayed, Pre-order with no date), red only for actions, a turning arrow for the details,
   brighter maker line (WCAG AA), compact phone cards, "Already out" collapsed on the upcoming page. */
.prose .tr-table td[data-label=Price],.prose .tr-table td[data-label=Release]{white-space:nowrap}
.prose .tr-table .tg{display:inline-block;margin-left:8px;font:600 11.5px/1.5 var(--body);color:#f0c674;border:1px solid #6b5a2e;border-radius:4px;padding:0 6px;vertical-align:1px}
.prose .tr-band th,.prose .tr-b-out .tr-band th,.prose .tr-b-nodate .tr-band th{color:#cfcac6}
.prose .tr-table td[data-label=Device] b{display:flex;gap:8px;align-items:baseline}
.prose .tr-row.has-detail td[data-label=Device] b:after,.prose .tr-row.open td[data-label=Device] b:after{content:none}
.prose .tr-row.has-detail td[data-label=Device] b:before{content:'\25B8';flex:0 0 auto;display:inline-block;color:#a3a3aa;font:600 13px var(--body);transition:transform .15s}
.prose .tr-row.open td[data-label=Device] b:before{transform:rotate(90deg);color:var(--text)}
.prose .tr-row.has-detail td[data-label=Device] small,.prose .tr-row.has-detail td a.cov,.prose .tr-row.has-detail .specs{margin-left:21px}
.prose .tr-table td small{color:#a3a3aa;font-size:12.5px}
.prose .tr-table .specs{display:none}
.prose .tr-b.shut tr.tr-row,.prose .tr-b.shut tr.tr-detail{display:none}
.prose .tr-more th{padding:14px 12px;text-align:left;background:transparent;border-bottom:1px solid var(--line)}
.prose .tr-table .tr-more th button{all:revert;font:600 13.5px var(--body);color:#fff;background:var(--red);border:0;border-radius:999px;padding:9px 18px;cursor:pointer}   /* red so it stands out (Victor 2026-10-15) */
.prose .tr-table .tr-more th button:after{content:' \25BE';font-size:15px;color:#fff}
.prose .tr-table .tr-more th button[aria-expanded=true]:after{content:' \25B4';font-size:15px}
.prose .tr-table .tr-more th button:hover{background:#d63a56}
@media (max-width:900px){
  .prose .tr-table td[data-label=Runs],.prose .tr-table td[data-label=Chip],.prose .tr-table td[data-label=Screen]{display:none}
  .prose .tr-table .specs{display:block;font:14px/1.45 var(--body);color:#cfcac6;margin-top:6px}
  .prose .tr-table tr.tr-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}
  .prose .tr-table tr.tr-row td{width:auto;padding:2px 0}
  .prose .tr-table tr.tr-row td:before{display:none}
  .prose .tr-table tr.tr-row td[data-label=Device]{width:100%}
  .prose .tr-table tr.tr-row td[data-label=Price],.prose .tr-table tr.tr-row td[data-label=Release]{font-weight:600}
  .prose .tr-table tr.tr-row.has-detail td[data-label=Price]{margin-left:21px}
  .prose .tr-table tr.tr-row td[data-label=Order]{margin-left:auto}
  .prose .tr-table tr.tr-row td[data-label=Order]:has(> .dim){display:none}
  .prose .tr-table tr.tr-more,.prose .tr-table tr.tr-more th{display:block;background:none;border:0;padding:0;margin:0 0 14px}
}
/* 2025 page (2026-10-15): devices with no official listing say so instead of a dash */
.prose .tr-table .gone{font:500 13px var(--body);color:var(--mute)}

/* Tracker hierarchy (Victor 2026-10-15): price and date carry the row, specs step back; section headings read as dividers */
.prose .tr-table tr.tr-row td[data-label=Runs],.prose .tr-table tr.tr-row td[data-label=Chip],.prose .tr-table tr.tr-row td[data-label=Screen]{color:#b3aeaa}
.prose .tr-table tr.tr-row td[data-label=Price],.prose .tr-table tr.tr-row td[data-label=Release]{color:#f4f1ee;font-weight:600}
.prose .tr-table .tr-band th,.prose .tr-table .tr-b-out .tr-band th,.prose .tr-table .tr-b-nodate .tr-band th{background:#26272e;color:#f4f1ee;font-size:13.5px;font-weight:600;padding:12px;border-top:1px solid #34353d;border-bottom:1px solid #34353d}
.prose .tr-table .tr-band th span{color:#a3a3aa}
@media (max-width:900px){
  .prose .tr-table .tr-band,.prose .tr-table .tr-band th{background:transparent;border:0}
  .prose .tr-table .tr-band th{background:#26272e;border-radius:10px;padding:12px 14px;margin:14px 0 10px;font-size:13px}
}
/* Tracker panel: my other articles about the device (2026-10-15) */
.prose .dp-site{margin:0 0 16px;padding:10px 14px;background:#1a1b20;border:1px solid var(--line);border-radius:10px}
.prose .dp-site h4{margin:0 0 6px;font:500 11px var(--mono);letter-spacing:1px;text-transform:uppercase;color:#a3a3aa}
.prose .dp-site ul{margin:0;padding:0;list-style:none}
.prose .dp-site li{margin:4px 0;font-size:14.5px}
.prose .dp-site a{color:var(--text);text-decoration:none;border-bottom:1px solid var(--red)}
.prose .dp-site a:after{content:' \2192';color:var(--red-hi)}
.prose .dp-site a:hover{color:var(--red-hi)}

/* Tracker compare (Victor 2026-10-16) */
.prose .tr-table label.cmp{flex:0 0 auto;display:inline-flex;align-items:center;cursor:pointer;padding:2px}
.prose .tr-table label.cmp input,.tr-other label.cmp input{appearance:none;-webkit-appearance:none;width:16px;height:16px;margin:0;border:1.5px solid #8a8a92;border-radius:4px;background:transparent;cursor:pointer;display:grid;place-content:center}
.prose .tr-table label.cmp input:checked,.tr-other label.cmp input:checked{background:var(--red);border-color:var(--red)}
.prose .tr-table label.cmp input:checked:after,.tr-other label.cmp input:checked:after{content:'\2713';color:#fff;font:700 11px/1 var(--body)}
.prose .tr-table label.cmp input:disabled,.tr-other label.cmp input:disabled{opacity:.3;cursor:not-allowed}
.prose .tr-table label.cmp input:focus-visible{outline:2px solid var(--red-hi);outline-offset:2px}
.prose .tr-row.has-detail td[data-label=Device] small,.prose .tr-row.has-detail td a.cov,.prose .tr-row.has-detail .specs{margin-left:45px}
.prose .tr-row.has-detail td[data-label=Price]{margin-left:0}
@media (max-width:900px){.prose .tr-table tr.tr-row.has-detail td[data-label=Price]{margin-left:45px}}
.tr-other{margin:8px 0 4px;padding:10px 14px;background:var(--panel);border:1px solid var(--line);border-radius:10px;max-width:760px}
.tr-other p{margin:0 0 6px;font:500 11px var(--mono);letter-spacing:1px;text-transform:uppercase;color:#a3a3aa}
.tr-other ul{margin:0;padding:0;list-style:none}
.tr-other li{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:5px 0;border-top:1px solid var(--line);font-size:14.5px}
.tr-other li:first-child{border-top:0}
.tr-other label.cmp{display:inline-flex;cursor:pointer;padding:2px}
.tr-other a{color:var(--text);font-weight:600;text-decoration:none}
.tr-other small{color:#a3a3aa;font-size:13px}
.cmp-bar{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:10px;max-width:calc(100% - 32px);padding:10px 12px 10px 18px;background:#1f2026;border:1px solid #3a3b44;border-radius:999px;box-shadow:0 10px 30px rgba(0,0,0,.5)}
.cmp-names{font:500 14px var(--body);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.cmp-bar button{font:600 14px var(--body);border-radius:999px;padding:8px 16px;cursor:pointer;border:0;white-space:nowrap}
.cmp-go{background:var(--red);color:#fff}
.cmp-go:disabled{opacity:.45;cursor:default}
.cmp-clear{background:transparent;color:#cfcac6;border:1px solid #3a3b44!important}
.cmp-view{position:fixed;inset:0;z-index:70;background:rgba(0,0,0,.72);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow:auto}
html.cmp-on{overflow:hidden}
.cmp-in{background:var(--bg);border:1px solid var(--line);border-radius:14px;width:100%;max-width:1200px;padding:20px 22px 24px}
.cmp-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.cmp-top h2{margin:0;font:700 30px var(--head);color:var(--text)}
.cmp-close,.cmp-x{background:transparent;border:1px solid var(--line);color:var(--text);border-radius:999px;width:34px;height:34px;font-size:20px;line-height:1;cursor:pointer}
.cmp-x{width:26px;height:26px;font-size:16px;margin-left:8px;vertical-align:middle}
.cmp-scroll{overflow-x:auto}
.cmp-t{width:100%;border-collapse:collapse;font-size:14.5px;min-width:520px}
.cmp-t th,.cmp-t td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;color:#e5e2df}
.cmp-t tr:first-child th{position:sticky;top:0;background:#26272e;font-weight:400}
.cmp-t tr:first-child th b{font:600 18px var(--head);color:var(--text)}
.cmp-t tr:first-child th small{display:block;font:500 12px var(--mono);color:#a3a3aa;margin-top:3px}
.cmp-t tbody th,.cmp-t tr:not(:first-child) th{width:120px;font:500 11.5px var(--mono);letter-spacing:1px;text-transform:uppercase;color:#a3a3aa}
.cmp-t tr:nth-child(2) td,.cmp-t tr:nth-child(3) td{color:#f4f1ee;font-weight:600}
.cmp-t tr.same td{color:#8f8b88}
.cmp-t ul{margin:0;padding-left:16px}
.cmp-t .links td{border-bottom:0;padding-top:14px}
.cmp-t a.ord{display:inline-block;font:600 13px var(--body);text-decoration:none;color:#fff;background:var(--red);border-radius:6px;padding:5px 10px;margin:0 8px 6px 0}
.cmp-t a.cov{font:600 12px var(--mono);color:var(--red-hi);text-decoration:none;border-bottom:1px solid var(--red)}
@media (max-width:640px){.cmp-view{padding:0}.cmp-in{border-radius:0;min-height:100%;padding:16px}.cmp-bar{bottom:10px;padding:8px 8px 8px 14px}.cmp-names{font-size:13px}}
.cmp-t tr:first-child th{text-transform:none;letter-spacing:0}
.cmp-t tr > th:first-child{width:110px;min-width:90px}
.cmp-t tr:first-child th b{display:inline}
.cmp-t{min-width:0}
@media (max-width:640px){.cmp-t tr > th:first-child{width:78px;min-width:78px;padding:10px 8px 10px 0;font-size:10.5px}.cmp-t th,.cmp-t td{padding:10px 8px;font-size:14px}.cmp-t tr:first-child th b{font-size:16px}}

/* Compare, round 2 (Victor 2026-10-16: "hard to spot ... make it obvious"): a labelled Compare column, a full-width tray,
   picked rows highlighted, other-year search results styled like the tables */
.prose .tr-table th.th-compare{width:86px;color:var(--red-hi)}
.prose .tr-table td[data-label=Compare]{width:86px;padding-right:0}
.prose .tr-table td[data-label=Compare] label.cmp{display:inline-flex;align-items:center;gap:7px;padding:3px 0;cursor:pointer}
.prose .tr-table td[data-label=Compare] label.cmp span{display:none;font:600 12.5px var(--body);color:#cfcac6}
.prose .tr-table label.cmp input{width:18px;height:18px;border-color:#a3a3aa}
.prose .tr-table label.cmp:hover input{border-color:var(--red-hi)}
.prose .tr-row.has-detail td[data-label=Device] small,.prose .tr-row.has-detail td a.cov,.prose .tr-row.has-detail .specs{margin-left:21px}
.prose .tr-table tr.tr-row.picked td{background:#2b1d22}
.prose .tr-table tr.tr-row.picked td:first-child{box-shadow:inset 3px 0 0 var(--red)}
.tr-other{margin:10px 0 6px;padding:0;background:none;border:0;max-width:none}
.tr-other .tr-band th{display:flex;align-items:center;gap:10px}
.tr-other .tr-other-go{margin-left:auto;font:600 13px var(--body);letter-spacing:0;text-transform:none;color:var(--red-hi);text-decoration:none}
.tr-other td[data-label=Device] b a{color:var(--text);text-decoration:none}
.tr-other td[data-label=Device] small{margin-left:0!important}
.cmp-bar{left:0;right:0;bottom:0;transform:none;max-width:none;border-radius:0;padding:0;background:#1b1c21;border:0;border-top:2px solid var(--red);box-shadow:0 -10px 30px rgba(0,0,0,.55);animation:cmpUp .2s ease-out}
@keyframes cmpUp{from{transform:translateY(100%)}to{transform:none}}
.cmp-bar-in{max-width:1200px;margin:0 auto;padding:12px 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.cmp-count{font:600 12px var(--mono);letter-spacing:1px;text-transform:uppercase;color:var(--red-hi);white-space:nowrap}
.cmp-chips{display:flex;gap:8px;flex-wrap:wrap;flex:1 1 auto;min-width:0}
.cmp-chip{display:inline-flex;align-items:center;gap:6px;font:600 14px var(--body);color:var(--text);background:#2a2b33;border:1px solid #3a3b44;border-radius:999px;padding:5px 6px 5px 12px}
.cmp-chip button{all:unset;cursor:pointer;width:20px;height:20px;border-radius:50%;display:grid;place-content:center;color:#cfcac6;font-size:15px}
.cmp-chip button:hover{background:#3a3b44;color:#fff}
.cmp-bar .cmp-go{font-size:15px;padding:10px 20px}
.cmp-bar .cmp-go:disabled{background:#3a3b44;color:#cfcac6;opacity:1}
html.cmp-tray body{padding-bottom:84px}
@media (max-width:900px){
  .prose .tr-table tr.tr-row{position:relative}
  .prose .tr-table tr.tr-row td[data-label=Compare]{position:absolute;top:10px;right:12px;width:auto;padding:0!important}
  .prose .tr-table td[data-label=Compare] label.cmp{padding:4px 8px;border:1px solid #3a3b44;border-radius:999px;background:#1b1c21}
  .prose .tr-table td[data-label=Compare] label.cmp span{display:inline}
  .prose .tr-table tr.tr-row td[data-label=Device]{padding-right:118px!important}
  .prose .tr-table tr.tr-row.picked{border-color:var(--red)}
  .prose .tr-table tr.tr-row.picked td:first-child{box-shadow:none}
  .prose .tr-table tr.tr-row.picked td{background:transparent}
  .prose .tr-table tr.tr-row.picked{background:#2b1d22}
  .cmp-bar-in{padding:10px 12px;gap:8px}
  .cmp-chips{order:3;flex-basis:100%}
  .cmp-bar .cmp-go{margin-left:auto}
}
@media (min-width:901px){.tr-other .tr-band th{display:table-cell}.tr-other .tr-other-go{float:right}}
.cmp-full{flex-basis:100%;order:4;font:600 13.5px var(--body);color:#f0c674}
.cmp-bar.shake{animation:cmpShake .35s}
@keyframes cmpShake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
/* compare tray under the search box, sticky while scrolling (Victor 2026-10-16) */
.cmp-bar{position:sticky;left:auto;right:auto;bottom:auto;transform:none;z-index:15;margin:10px 0 6px;border:1px solid #3a3b44;border-left:3px solid var(--red);border-top:1px solid #3a3b44;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.45);animation:cmpIn .2s ease-out}
@keyframes cmpIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.cmp-bar-in{max-width:none;margin:0;padding:10px 14px}
html.cmp-tray body{padding-bottom:0}
.prose .cmp-bar button{margin:0}
.cmp-bar{animation:none}.cmp-bar.shake{animation:cmpShake .35s}
/* section headings in red (Victor 2026-10-16) - red text on the tinted band; buttons stay solid red so they still read as actions */
.prose .tr-table .tr-band th,.prose .tr-table .tr-b-out .tr-band th,.prose .tr-table .tr-b-nodate .tr-band th{color:var(--red-hi)}
.prose .tr-table .tr-band th span{color:#a3a3aa}
/* sister-page links stacked together (Victor 2026-10-16) */
.prose .tr-sisters{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.prose .tr-sisters .tr-sister{margin-left:0}
@media (max-width:640px){.prose .tr-sisters{margin-left:0;align-items:flex-start}}
.cmp-in{max-width:1400px}.cmp-t td,.cmp-t th{min-width:130px}.cmp-t tr > th:first-child{min-width:90px}
/* compare: date order + drag to reorder (Victor 2026-10-16) */
.cmp-hint{margin:-4px 0 12px;font:500 13px var(--body);color:#a3a3aa}
.cmp-resort{all:unset;cursor:pointer;color:var(--red-hi);font-weight:600;margin-left:6px}
.cmp-t th[draggable=true]{cursor:grab;position:relative}
.cmp-t th[draggable=true]:active{cursor:grabbing}
.cmp-grip{position:absolute;top:10px;right:10px;color:#6f6f78;font-size:14px}
.cmp-tools{display:flex;gap:4px;margin-top:8px}
.cmp-t .cmp-tools .cmp-x{margin-left:0}
.cmp-mv{background:transparent;border:1px solid var(--line);color:#cfcac6;border-radius:999px;width:26px;height:26px;font-size:16px;line-height:1;cursor:pointer}
.cmp-mv:hover,.cmp-x:hover{border-color:var(--red-hi);color:#fff}
.cmp-t th.dragging{opacity:.45}
.cmp-t th.drop-on{box-shadow:inset 3px 0 0 var(--red)}
/* Shorts length badge at the bottom right of the thumbnail, like long videos, off the burned-in title (Victor 2026-10-16) */
.short i{position:relative;display:block}
.short em{top:auto;bottom:8px;right:8px}
/* Shorts thumbnails carry text top AND bottom, so the length sits under the title instead of on the image */
.short em{position:static;align-self:flex-start;background:none;padding:0;margin-top:-2px;color:#a3a3aa;font:500 11.5px var(--mono)}
/* article -> tracker "compare it" strip (2026-10-16) */
.prose a.trk-strip,a.trk-strip{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:22px 0;padding:14px 18px;background:#1b1c21;border:1px solid var(--line);border-left:3px solid var(--red);border-radius:10px;text-decoration:none;color:var(--text)}
a.trk-strip .kicker{margin:0;font:500 11.5px var(--mono);letter-spacing:1.2px;text-transform:uppercase;color:var(--red-hi)}
a.trk-strip .trk-t{font:600 16px var(--body);color:var(--text)}
a.trk-strip:hover{border-color:var(--red)}
a.trk-strip:hover .trk-t{color:var(--red-hi)}
/* Nerd Alert page: next issue so far (2026-10-16) */
.na-next{margin:34px 0 8px;padding:20px 22px;background:#1b1c21;border:1px solid var(--line);border-left:3px solid var(--red);border-radius:12px}
.na-next .kicker{margin:0 0 4px}
.na-next h2{margin:0 0 12px;font:700 26px var(--head);color:var(--text)}
.na-next ul{list-style:none;margin:0;padding:0}
.na-next li{display:flex;gap:12px;align-items:baseline;padding:8px 0;border-top:1px solid var(--line)}
.na-next li:first-child{border-top:0}
.na-next .na-k{flex:0 0 58px;font:500 11px var(--mono);letter-spacing:1px;text-transform:uppercase;color:#a3a3aa}
.na-next a{color:var(--text);text-decoration:none;font-weight:600}
.na-next a:hover{color:var(--red-hi)}
.na-note{margin:10px 0 0;font-size:14px;color:#a3a3aa}
/* News page: newest 4 as cards, then the dated list (Victor 2026-10-16 "try the mix") */
.news-top{margin:26px 0 8px}
.listing:not(.filtered) .nrow.dup{display:none}
.listing.filtered .news-top{display:none}
.nrow{grid-template-columns:76px 1fr 210px}
.nthumb img{aspect-ratio:16/9;object-fit:cover;width:100%;border-radius:8px}
@media (max-width:900px){.news-top{grid-template-columns:repeat(2,1fr)}.nrow{grid-template-columns:1fr 120px}}
@media (max-width:640px){.news-top{grid-template-columns:1fr 1fr;gap:18px 12px}.news-top .card p,.news-top .card .bl{display:none}}
.news-top .card .lab{display:none}   /* every card here is news; the label adds nothing */
/* phone overflow fix (sanity pass 2026-10-16): 17 articles were ~500px wide on a 390px phone because a wide child (table,
   long link) sized the article grid track. The column now always fits; wide tables scroll inside themselves. */
.art-grid>*{min-width:0}
@media (max-width:1180px){.art-grid{grid-template-columns:minmax(0,1fr)}}
.gh-content{overflow-wrap:anywhere}
.gh-content table{display:block;max-width:100%;overflow-x:auto}
.gh-content pre{max-width:100%;overflow-x:auto}
/* tracker panel product photo (2026-10-16) */
.prose .dp-img{margin:16px 0 0}
.prose .dp-img img{display:block;width:100%;max-width:420px;aspect-ratio:16/9;object-fit:contain;border-radius:10px;background:#f5f5f5}
.prose .dp-img figcaption{margin-top:6px;font:500 11px var(--mono);color:#a3a3aa;text-align:left}
.cmp-t .cmp-img{display:block;width:100%;max-width:220px;aspect-ratio:16/9;object-fit:contain;background:#f5f5f5;border-radius:8px;margin:0 0 10px}
.cmp-t span.cmp-img{background:#1b1c21}
/* mini PC tracker columns: hidden on phones like Runs/Chip/Screen (the specs line carries them) */
@media (max-width:900px){.prose .tr-table td[data-label=Graphics],.prose .tr-table td[data-label="Max RAM"],.prose .tr-table td[data-label=Ports]{display:none}}
/* /trackers/ hub (2026-10-16) */
.hub-trk .hub-intro{font-size:18px;color:#d9d5d2;max-width:900px;margin:0 0 10px}
.hub-trk h2{margin:40px 0 14px}
.hub-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}
.prose a.hub-card{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--text);background:#1b1c21;border:1px solid var(--line);border-radius:12px;padding:14px;transition:border-color .15s}
.prose a.hub-card:hover{border-color:var(--red)}
.hub-card img{width:100%;aspect-ratio:16/9;object-fit:contain;background:#f5f5f5;border-radius:8px;margin:0 0 6px}
.hub-card .hub-meta{font:500 11.5px var(--mono);letter-spacing:1px;text-transform:uppercase;color:var(--red-hi)}
.hub-card b{font:700 22px/1.15 var(--head)}
.hub-card .hub-d{font-size:14.5px;color:#a3a3aa;line-height:1.5}
/* "Games well" tag on Ryzen AI Max+ 395/495 rows (2026-10-16) */
.prose .tr-table .tg-gw{display:inline-block;margin:5px 0 0 21px;font:600 11px/1.5 var(--body);color:#9cc3ee;border:1px solid #3d5a7a;border-radius:4px;padding:0 6px}
.tr-other .tg-gw{margin-left:0}

/* Tracker header photo strip (2026-10-17, Victor: page felt "barren"). Desktop: fills the empty right half of the header;
   narrow screens: one row of 4 small tiles under the intro. Photos are the page's own credited maker images. */
.tr-hero{margin:4px 0 18px}
.tr-hero-g{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.tr-hero-t{all:unset;cursor:pointer;position:relative;display:block;border-radius:10px;overflow:hidden;background:#f5f5f5;
  aspect-ratio:16/9;outline:1px solid rgba(255,255,255,.08);transition:transform .15s ease,outline-color .15s ease}
.tr-hero-t:nth-child(n+5){display:none}
.tr-hero-t img{display:block;width:100%;height:100%;object-fit:cover;margin:0!important;border-radius:0;mix-blend-mode:multiply;transform:scale(1.18)}
.tr-hero-t span{position:absolute;left:0;right:0;bottom:0;padding:14px 8px 5px;font:600 11px/1.2 var(--mono,monospace);color:#fff;
  background:linear-gradient(to top,rgba(10,10,12,.85),rgba(10,10,12,0));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tr-hero-t:hover,.tr-hero-t:focus-visible{transform:translateY(-2px);outline:2px solid var(--red,#e5484d)}
.tr-hero-c{margin:6px 0 0!important;font:500 11px/1.3 var(--mono,monospace);color:#8d8a88;text-align:right}
@media (max-width:640px){.tr-hero-t span{display:none}}
@media (min-width:1200px){
  .tracker-page{position:relative}
  .tracker-page:has(.tr-hero) .art-h{max-width:calc(100% - 520px)}
  .tracker-page:has(.tr-hero) .tracker .tr-intro,.tracker-page:has(.tr-hero) .tr-tools,.tracker-page:has(.tr-hero) .tr-updated{max-width:calc(100% - 520px)}
  .tracker-page .tr-hero{position:absolute;top:68px;right:var(--g);width:480px;margin:0}
  .tr-hero-g{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
  .tr-hero-t:nth-child(n+5){display:block}
  .tr-hero-t:first-child{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
  .tr-hero-t:first-child span{font-size:13px;padding:22px 12px 8px}
}

/* Homepage flair (2026-10-18, Victor: "build it live with those adjustments"): trending ticker with On the bench folded in,
   hand-drawn underline on homepage section titles only, offset shadow (light on the hero title). */
.tk{background:#0a0a0c;border-bottom:1px solid #222329}
.tk-in{display:flex;align-items:center;gap:18px;height:38px;overflow:hidden}
.tk-l{flex:none;display:flex;align-items:center;gap:8px;color:var(--red-hi);font:600 12.5px/1 var(--mono);letter-spacing:2px;text-transform:uppercase;min-width:9.5em}
.tk-l:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--red);box-shadow:0 0 0 3px rgba(196,49,75,.25)}
.tk-items{position:relative;flex:1;min-width:0;height:38px}
.tk-i{position:absolute;inset:0;display:block;line-height:38px;color:#e6e2df;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  opacity:0;transform:translateY(6px);transition:opacity .35s ease,transform .35s ease;pointer-events:none}
.tk-i:first-child{opacity:1;transform:none;pointer-events:auto}
.tk.js .tk-i{opacity:0;transform:translateY(6px);pointer-events:none}
.tk.js .tk-i.on{opacity:1;transform:none;pointer-events:auto}
.tk a.tk-i:hover{color:var(--red-hi)}
.tk-n{flex:none;display:flex;align-items:center;gap:4px;color:#7a7a80;font:500 12px var(--mono);letter-spacing:1px}
.tk-n button{all:unset;cursor:pointer;width:18px;height:3px;border-radius:2px;background:#33343b}
.tk-n button.on{background:var(--red)}
.tk-n button:focus-visible{outline:2px solid var(--red-hi);outline-offset:3px}
@media (max-width:640px){.tk-n{display:none}.tk-in{gap:12px}.tk-l{min-width:0}}
@media (prefers-reduced-motion:reduce){.tk-i{transition:none}}
.home-template .sec-h .ul{position:relative;white-space:nowrap}
.home-template .sec-h .ul:after{content:"";position:absolute;left:-4%;right:-4%;bottom:-.28em;height:.38em;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 20' preserveAspectRatio='none'%3E%3Cpath d='M3 13 C 40 5, 90 4, 130 8 S 185 12, 197 6' fill='none' stroke='%23c4314b' stroke-width='5' stroke-linecap='round'/%3E%3C/svg%3E") center/100% 100% no-repeat}
.wm{text-shadow:2px 2px 0 #4a1520}
.home-template .sec-h h2{text-shadow:2px 2px 0 #4a1520}
.home-template .hero h1{text-shadow:2px 2px 0 rgba(90,22,34,.7)}
/* Phones: the On the bench item (a span, not a link) wraps to show the whole note (Victor 2026-10-18); news headlines stay one line. */
@media (max-width:640px){
  .tk-in{height:auto;min-height:38px;align-items:flex-start;padding-block:10px}
  .tk-l{line-height:18px}
  .tk-items{height:auto}
  .tk.js .tk-i{position:static;display:none;line-height:18px;transition:none;transform:none}
  .tk.js .tk-i.on{display:block}
  .tk.js span.tk-i{white-space:normal}
}

/* Bigger header logo (Victor 2026-10-19: "a little bit bigger"): 52 -> 66px desktop, 40 -> 50px phone; header height unchanged. */
.top .brand img{width:66px;height:66px}
@media (max-width:900px){.top .brand img{width:50px;height:50px}}

/* Ticker moved under the lead story (Victor 2026-10-19): a full-width divider band, like the old On the bench strip. */
.tk{border-top:1px solid #222329;border-bottom:1px solid #222329}
.tk-in{height:52px}
.tk-items{height:52px}
.tk-i{line-height:52px}
@media (max-width:640px){.tk-in{height:auto}.tk-items{height:auto}}
/* Ticker text bigger (Victor 2026-10-19: "the white font seems a little small"): 13.5 -> 16.5px headline, 12.5 -> 14px label. */
.tk-i{font-size:16.5px;font-weight:500;color:#f2efed}
.tk-l{font-size:14px}
@media (max-width:640px){.tk-i{font-size:15.5px;line-height:22px}.tk-l{font-size:12.5px;line-height:22px}}
/* Wordmark red = the logo's red (Victor 2026-10-19: the header 3s and dot looked maroon next to the badge). Site accent red unchanged. */
.wm i{color:#fc0012}
/* Footer tagline in the same typewriter style as the header one (Victor 2026-10-19: "the bottom has a different tag font"). */
footer .brand + p{font:500 12px/1.5 var(--mono);letter-spacing:1.2px;color:var(--mute);text-transform:none}
/* Stacked menu label for the trackers (Victor 2026-10-19: "Handhelds, controllers / & mini PCs" on two lines). Smaller and tight
   so it reads as deliberate next to the one-line items. */
.nav a.stack{display:inline-flex;flex-direction:column;justify-content:center;font-size:12.5px;line-height:1.18;padding-top:4px;padding-bottom:4px;text-align:left}
.nav{align-items:center}

/* Gear trackers dropdown (Victor 2026-10-19): three groups (Handhelds / Controllers / Mini PCs), heading = page, lines = tables. */
.dd{position:relative;display:flex}
.dd-top{display:inline-flex;align-items:center;gap:6px}
.dd-c{width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);opacity:.7;transition:transform .15s}
.dd-menu{position:absolute;top:100%;left:50%;transform:translateX(-50%);padding-top:12px;display:none;z-index:40}
.dd-cols{display:grid;grid-template-columns:repeat(3,minmax(150px,auto));gap:6px 28px;background:var(--panel);border:1px solid var(--line);
  border-radius:12px 12px 0 0;padding:18px 22px 14px;box-shadow:0 18px 40px rgba(0,0,0,.45)}
.dd-g{display:flex;flex-direction:column;gap:2px}
.dd-menu a{display:block;font:500 14px/1.35 var(--body);color:var(--mute);padding:6px 8px;border-radius:6px;white-space:nowrap}
.dd-menu a:hover,.dd-menu a:focus-visible{color:var(--text);background:var(--panel2)}
.dd-menu a.dd-h{font:700 12px/1.3 var(--mono);letter-spacing:1.6px;text-transform:uppercase;color:var(--red-hi);margin-bottom:2px}
.dd-menu a.dd-all{background:var(--ink);border:1px solid var(--line);border-top:0;border-radius:0 0 12px 12px;padding:10px 22px;font:500 12.5px var(--mono);color:var(--mute);box-shadow:0 18px 40px rgba(0,0,0,.45)}
.dd:hover .dd-menu,.dd:focus-within .dd-menu,.dd.open .dd-menu{display:block}
.dd:hover .dd-c,.dd.open .dd-c{transform:translateY(1px) rotate(225deg)}
.menu nav a.mm-sub{padding-left:30px;font-weight:500;color:var(--mute)}
/* section jumps land below the sticky header */
.tr-fam{scroll-margin-top:96px}
/* Controller platform chips (2026-10-19) */
.tr-chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0 4px}
.tr-chips span{font:500 11.5px var(--mono);letter-spacing:1.6px;text-transform:uppercase;color:var(--mute);margin-right:4px}
.tr-chips button{all:unset;cursor:pointer;font:600 13.5px var(--body);color:var(--text);border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:7px 14px}
.tr-chips button i{font-style:normal;color:var(--mute);font-weight:500;margin-left:4px}
.tr-chips button:hover{border-color:#3a3b42}
.tr-chips button.on{background:var(--red);border-color:var(--red);color:#fff}
.tr-chips button.on i{color:#ffd9de}
.tr-chips button:focus-visible{outline:2px solid var(--red-hi);outline-offset:2px}
/* Pull-to-refresh indicator (web app only, 2026-10-19) */
.ptr{position:fixed;left:50%;top:calc(env(safe-area-inset-top, 0px) + 6px);width:40px;height:40px;border-radius:50%;background:var(--panel);
  border:1px solid var(--line);box-shadow:0 6px 18px rgba(0,0,0,.45);z-index:100;transform:translate(-50%,-56px);opacity:0;display:grid;place-items:center;pointer-events:none}
.ptr-a{width:12px;height:12px;border-right:2.5px solid var(--mute);border-bottom:2.5px solid var(--mute);transform:translateY(-3px) rotate(45deg);transition:transform .15s,border-color .15s}
.ptr.ready .ptr-a{transform:translateY(3px) rotate(225deg);border-color:var(--red)}
.ptr.spin .ptr-a{width:18px;height:18px;border:2.5px solid var(--line);border-top-color:var(--red);border-radius:50%;transform:none;animation:ptrspin .7s linear infinite}
@keyframes ptrspin{to{transform:rotate(360deg)}}
/* Gold bolt before "Bottom line up front" (Victor 2026-10-19, option B). Labels carry inline styles, hence !important. */
.atn-bluf-label{display:flex !important;align-items:center;gap:8px}
.atn-bluf-label::before{content:"";width:16px;height:16px;flex:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23f5b301' d='M13 2L4 14h7l-1 8 9-12h-7z'/%3E%3C/svg%3E") center/contain no-repeat}

/* Topic strip under the header (Victor 2026-10-21, from Concept B) */
.topics{border-bottom:1px solid var(--line);background:var(--bg)}
.topics .wrap{display:flex;align-items:center;gap:6px;overflow-x:auto;scrollbar-width:none;padding-top:10px;padding-bottom:10px;white-space:nowrap}
.topics .wrap::-webkit-scrollbar{display:none}
.topics b{font:500 11.5px var(--mono);letter-spacing:1.8px;text-transform:uppercase;color:var(--dim);margin-right:8px;flex:none}
.topics a{font:500 14px var(--body);color:var(--mute);padding:4px 10px;border-radius:6px;flex:none}
.topics a:hover{color:var(--text);background:var(--panel)}
@media (max-width:640px){.topics b{display:none}.topics a{font-size:13.5px;padding:4px 8px}}
@media print{.topics{display:none}}

/* Gear trackers strip on the homepage (Victor 2026-10-21, from Concept B) */
.gearbar{margin-top:28px}
.gearbar .gb{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.gearbar .gb>b{font:500 11.5px var(--mono);letter-spacing:1.8px;text-transform:uppercase;color:var(--red-hi);margin-right:10px;flex:none}
.gearbar .gb a.k{display:flex;flex-direction:column;padding:8px 18px;border-left:1px solid var(--line);flex:1;min-width:0}
.gearbar .gb a.k span{font:700 19px/1.1 var(--head);color:var(--text);letter-spacing:.3px}
.gearbar .gb a.k small{font:500 12.5px var(--body);color:var(--mute);margin-top:3px}
.gearbar .gb a.k:hover span{color:var(--red-hi)}
.gearbar .gb a.all{font:600 13.5px var(--body);color:var(--red-hi);white-space:nowrap;padding-left:14px;flex:none}
@media (max-width:760px){.gearbar .gb{flex-wrap:wrap;padding:12px}.gearbar .gb>b{width:100%;margin:0 0 4px}
 .gearbar .gb a.k{border-left:0;border-top:1px solid var(--line);flex:1 1 100%;padding:10px 4px}.gearbar .gb a.all{padding:10px 4px 2px}}

/* All articles library controls (Victor 2026-10-21, from Concept B) */
.libbar{display:grid;grid-template-columns:1fr auto auto auto;gap:10px;align-items:end;margin:0 0 14px}
.libbar label{display:flex;flex-direction:column;gap:5px;font:500 11px var(--mono);letter-spacing:1.6px;text-transform:uppercase;color:var(--dim)}
.libbar input,.libbar select{background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:10px 12px;font:500 14.5px var(--body);min-width:0}
.libbar input{width:100%}.libbar select{min-width:170px}
.qsearch{display:flex;flex-direction:column;gap:5px;margin:0 0 14px;font:500 11px var(--mono);letter-spacing:1.6px;text-transform:uppercase;color:var(--dim)}
.qsearch input{background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:10px 12px;font:500 14.5px var(--body);width:100%;max-width:560px;box-sizing:border-box;text-transform:none;letter-spacing:0}
.libcount{font:500 12px var(--mono);color:var(--dim);letter-spacing:1px;text-transform:uppercase;margin:0 0 18px}
@media (max-width:760px){.libbar{grid-template-columns:1fr 1fr}.libbar label:first-child{grid-column:1/-1}.libbar select{min-width:0;width:100%}}

/* Tracker card view (Victor 2026-10-21, from Concept B): Table / Cards toggle, cards mirror the table rows */
.tr-view{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-left:auto}
.tr-view button{background:var(--panel);color:var(--mute);border:0;font:600 13px var(--body);padding:9px 14px;cursor:pointer}
.tr-view button.on{background:var(--red);color:#fff}
.tr-tools{flex-wrap:wrap}
.tr-hid{display:none !important}
.tr-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:0 0 36px}
.tcard{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}
.tcard .ph{aspect-ratio:4/3;background:#f5f5f5;display:grid;place-items:center;overflow:hidden}
.tcard .ph img{width:100%;height:100%;object-fit:contain}
.tcard .ph .none{font:500 12px var(--mono);color:#888;letter-spacing:1px;text-transform:uppercase}
.tcard .tb{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px;flex:1}
.tcard .tb small.brand{font:500 11px var(--mono);letter-spacing:1.4px;text-transform:uppercase;color:var(--dim)}
.tcard .tb b{font:700 19px/1.15 var(--head);color:var(--text)}
.tcard .tb .sp{font:500 13px var(--body);color:var(--mute)}
.tcard .tb .row{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:8px;font:600 14px var(--body)}
.tcard .tb .row time{font:500 12px var(--mono);color:var(--red-hi);text-transform:uppercase}
.tcard .tb .act{display:flex;gap:10px;align-items:center;margin-top:8px}
.tcard .tb .act .ord{font:600 13px var(--body)}
.tcard .tb .act .det{font:600 13px var(--body);color:var(--mute);cursor:pointer;background:none;border:0;padding:0}
.tcard .tb .act .det:hover{color:var(--text)}
.tcard label.cmp{position:absolute;top:10px;left:10px;z-index:1;background:rgba(15,15,17,.85);border-radius:6px;padding:4px 8px;font:600 12px var(--body);color:#fff;cursor:pointer}
.tcard .tg{position:absolute;top:10px;right:10px;z-index:1;background:rgba(15,15,17,.85);color:#f0c674;border:1px solid #6b5a2e;border-radius:6px;padding:3px 8px;font:600 12px var(--body)}
@media (max-width:1000px){.tr-cards{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.tr-cards{grid-template-columns:repeat(2,1fr);gap:10px}.tcard .tb{padding:10px}.tcard .tb b{font-size:16px}}
@media print{.tr-view,.tr-cards{display:none}}

/* Where We Came From: previous / next console (2026-10-21) */
.hall-nav{margin:48px 0 8px;border-top:1px solid #2a2d33;padding-top:22px}
.hall-nav .kicker{font:700 11px Arial,Helvetica,sans-serif;letter-spacing:1.7px;text-transform:uppercase;color:#f07187;margin:0 0 14px}
.hall-nav-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.hall-nav a{display:flex;align-items:center;gap:14px;padding:12px;border:1px solid #2a2d33;border-radius:10px;background:#191b1e;text-decoration:none;color:#e5e2df}
.hall-nav a:hover{border-color:#c4314b}
.hall-nav a.next{flex-direction:row-reverse;text-align:right;grid-column:2}
.hall-nav img{width:96px;height:64px;object-fit:contain;background:#fff;border-radius:6px;flex:none}
.hall-nav small{display:block;font:600 11px Arial,sans-serif;letter-spacing:1px;text-transform:uppercase;color:#9a9da3;margin-bottom:4px}
.hall-nav b{font-size:17px;color:#fff}
.hall-nav .all{display:block;text-align:center;margin-top:14px;font:600 13px Arial,sans-serif;color:#f07187}
@media(max-width:640px){.hall-nav-row{grid-template-columns:1fr}.hall-nav a.next{flex-direction:row;text-align:left;grid-column:auto}}

/* Where We Came From carousel (2026-10-21) */
.hall-car{position:relative}
.hall-car-track{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 10px;scrollbar-width:none}
.hall-car-track::-webkit-scrollbar{display:none}
.hall-car a.hc{flex:0 0 200px;scroll-snap-align:center;display:block;padding:10px;border:1px solid #2a2d33;border-radius:10px;background:#191b1e;text-decoration:none;color:#e5e2df}
.hall-car a.hc:hover{border-color:#c4314b}
.hall-car a.hc.cur{border-color:#c4314b;box-shadow:inset 0 0 0 1px #c4314b}
.hall-car a.hc img{width:100%;height:110px;object-fit:contain;background:#fff;border-radius:6px;display:block}
.hall-car a.hc small{display:block;font:600 11px Arial,sans-serif;letter-spacing:1px;text-transform:uppercase;color:#9a9da3;margin:8px 0 2px}
.hall-car a.hc.cur small{color:#f07187}
.hall-car a.hc b{font-size:15px;color:#fff;line-height:1.25}
.hall-car button{position:absolute;top:50px;width:36px;height:36px;border-radius:50%;border:1px solid #2a2d33;background:#111214;color:#fff;font-size:18px;cursor:pointer;z-index:2}
.hall-car button.l{left:-14px}.hall-car button.r{right:-14px}
.hall-car button:hover{border-color:#c4314b}
.hall-nav .all{display:block;text-align:center;margin-top:10px;font:600 13px Arial,sans-serif;color:#f07187}
@media(max-width:640px){.hall-car button{display:none}.hall-car a.hc{flex-basis:160px}}

/* Homepage Where We Came From carousel (2026-10-21) */
.hall-sec .hall-nav{margin:0;border-top:0;padding-top:0}

.jr-box{margin-top:28px}   /* Just released under Coming up (2026-10-22) */

/* Homepage release lists as their own section (2026-10-22) */
.rel-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px}
.rel-sec .upnext-box,.rel-sec .jr-box{margin-top:0}
@media(max-width:760px){.rel-grid{grid-template-columns:1fr;gap:0}.rel-sec .jr-box{margin-top:36px}}

/* Gear trackers hub: release schedule on top (2026-10-22) */
.hub-rel{margin:8px 0 12px}
.hub-rel .upnext-box,.hub-rel .jr-box{margin-top:0}
.hub-rel h2{margin:0 0 6px}
.prose .hub-rel ol.cu-list{list-style:none;margin:0;padding:0}
.prose .hub-rel li.cu{margin:0}
.prose .hub-rel .cu a{text-decoration:none;color:var(--text)}
.prose .hub-rel .cu small a.cu-ord{color:var(--red-hi)}
.prose .hub-rel .side-p{margin:0 0 10px;color:var(--mute);font-size:15px}

.cu small .cu-k{color:var(--amber)}   /* device type in amber (Victor 2026-10-22) */

/* At a glance: amber labels + a hairline between rows (Victor 2026-10-25: labels and answers read as one block on a phone). The box carries inline colours, hence !important. */
.prose .atn-glance dt{color:#ffffff !important}   /* pure white everywhere (Victor 2026-10-26; amber tried 10-25, dropped) */
.prose .atn-glance dd+dt{border-top:1px solid var(--line);padding-top:12px !important}

/* At a glance matches the bottom line text size, with an amber eye beside its label like the bolt (Victor 2026-10-26) */
.prose .atn-glance dt,.prose .atn-glance dd{font-family:var(--body) !important;font-size:17.5px !important;line-height:1.6 !important}
.prose .atn-glance dd{margin-top:2px !important}
.atn-glance-title{display:flex !important;align-items:center;gap:8px}
.atn-glance-title::before{content:"";width:16px;height:16px;flex:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23f5b301' d='M12 5C6.5 5 2.4 8.6 1 12c1.4 3.4 5.5 7 11 7s9.6-3.6 11-7c-1.4-3.4-5.5-7-11-7zm0 11.5a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm0-7a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5z'/%3E%3C/svg%3E") center/contain no-repeat}

/* Desktop only: the bolt and eye hang in the margin so the label text lines up with the headings (Victor 2026-10-26; phones keep the inline icon) */
@media (min-width:1001px){
 .atn-bluf-label,.atn-glance-title{position:relative}
 .atn-bluf-label::before,.atn-glance-title::before{position:absolute;left:-26px;top:50%;transform:translateY(-50%)}
}

/* Device window from the release lists (2026-10-27): the compare window's frame, sized for one tracker panel */
.dev-in{max-width:860px}
.dev-in .cmp-top{margin-bottom:2px}
.dev-brand{margin:0 0 4px;font:500 12px var(--mono);color:#a3a3aa;text-transform:uppercase;letter-spacing:.06em}
.dev-body{margin:0}
.dev-go{display:inline-block;margin-top:18px;color:var(--amber);font-weight:600;text-decoration:none}
.dev-go:hover{text-decoration:underline}
/* Tracker panel buttons (2026-10-27): .prose a's pink was winning; white on red like every other red button (Victor: "white") */
.prose a.btn{color:var(--text)}
.prose a.btn.red{color:#fff}
