/* ===== design a: terminal / ide (preview only). loaded after style.css; the dark palette is forced by themes/theme.py ===== */
@property --vx-ang{syntax:"<angle>";inherits:false;initial-value:0deg}
:root{--vx-bg:#0b0b0b;--vx-bg2:#121212;--vx-hl:rgba(255,255,255,.045);--vx-glow:rgba(255,255,255,.55);--k-fff:#0b0b0b;--k-f5f5f5:#141414;--k-f6f6f6:#141414;--k-f4f4f4:#151515}
html{background:var(--vx-bg)}
body.th-a{background:
  radial-gradient(1200px 600px at 50% -10%,rgba(255,255,255,.06),transparent 60%),
  var(--vx-bg);position:relative}
/* film grain, very faint (static svg noise) */
body.th-a::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:60;opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.th-a .nav{background:rgba(11,11,11,.82);-webkit-backdrop-filter:saturate(1.2) blur(10px);backdrop-filter:saturate(1.2) blur(10px);border-bottom:1px solid #262626}
.th-a .nav .logo .np{filter:drop-shadow(0 0 10px rgba(255,255,255,.18))}

/* --- editor tabs under the header --- */
.vx-tabs{height:34px;border-bottom:1px solid #222;background:#0f0f0f;font:500 12px/34px var(--mono);color:#7a7a7a;position:relative;z-index:4}
.vx-tabs .wrap{display:flex;align-items:stretch;height:100%;gap:0;white-space:nowrap;overflow:hidden}
.vx-tab{display:inline-flex;align-items:center;gap:8px;padding:0 14px;border-right:1px solid #222;color:#7a7a7a;text-decoration:none;position:relative;transition:color .2s,background .2s}
.vx-tab:first-child{border-left:1px solid #222}
.vx-tab:hover{color:#ededed;background:#151515}
.vx-tab.on{background:var(--vx-bg);color:#ededed}
.vx-tab.on::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:#ededed;box-shadow:0 0 12px var(--vx-glow)}
.vx-tab.on::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--vx-bg)}
.vx-tab i{width:7px;height:7px;border-radius:50%;background:#ededed;box-shadow:0 0 8px var(--vx-glow)}
.vx-tab b{font-weight:500;color:#555;margin-left:4px}
.vx-path{margin-left:auto;color:#555;padding-left:16px}
.vx-tabs.vx-home{position:absolute;left:0;right:0;top:61px;background:rgba(15,15,15,.6)}
@media(max-width:640px){.vx-path,.vx-tab:not(.on){display:none}.vx-tab:first-child{border-left:0}.vx-tabs .wrap{padding:0}}

/* --- line-number gutter + current line (desktop, fine pointers) --- */
.vx-gutter,.vx-line{display:none}
@media(min-width:1180px){
 .vx-gutter{display:block;position:absolute;left:0;top:0;width:48px;padding-right:10px;box-sizing:border-box;text-align:right;
   font:400 11px/24px var(--mono);color:#3a3a3a;white-space:pre;pointer-events:none;z-index:3;border-right:1px solid #1c1c1c;overflow:hidden;
   -webkit-user-select:none;user-select:none}
 .vx-line{display:block;position:absolute;left:0;right:0;height:24px;pointer-events:none;z-index:1;background:var(--vx-hl);opacity:0;transition:opacity .2s}
 .vx-line.on{opacity:1}
 .vx-line b{position:absolute;left:0;width:38px;text-align:right;font:500 11px/24px var(--mono);color:#ededed}
}

/* --- hero: ghost terminal, spotlight, glowing ring round the box (the box itself is untouched) --- */
.th-a .hp-hero{isolation:isolate}
.th-a .hp-hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(520px 380px at var(--mx,62%) var(--my,46%),rgba(255,255,255,.075),transparent 70%)}
.th-a .hp-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;z-index:-1;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent)}
.vx-ghost{position:absolute;inset:0;z-index:-1;margin:0;overflow:hidden;pointer-events:none;padding:56px 24px 24px;box-sizing:border-box;
  font:400 12px/20px var(--mono);color:#ededed;opacity:.13;white-space:pre;
  -webkit-mask-image:radial-gradient(ellipse 46% 42% at 62% 50%,transparent 55%,#000 100%);mask-image:radial-gradient(ellipse 46% 42% at 62% 50%,transparent 55%,#000 100%)}
.vx-ghost .c{color:#8a8a8a}
.vx-ghost .k{display:inline-block;width:.6em;height:1.1em;vertical-align:-.2em;background:#ededed;animation:vx-blink 1s steps(1) infinite}
@media(max-width:899px){.vx-ghost{display:none}}
.th-a .t7-bub{box-shadow:0 0 0 1px rgba(255,255,255,.04),0 30px 80px -20px rgba(255,255,255,.12),0 0 60px rgba(255,255,255,.05)}
.th-a .t7-bub::after{content:"";position:absolute;inset:-9px;pointer-events:none;padding:1px;
  background:conic-gradient(from var(--vx-ang),transparent 0 62%,rgba(255,255,255,.08) 70%,#fff 86%,rgba(255,255,255,.08) 94%,transparent);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);
  animation:vx-spin 6s linear infinite;filter:drop-shadow(0 0 6px rgba(255,255,255,.6))}
@keyframes vx-spin{to{--vx-ang:360deg}}
.th-a .hp-hero .t7-shadow{opacity:.5}
.th-a .t7-blob{filter:drop-shadow(0 0 34px rgba(255,255,255,.14))}
.th-a .n9-h1{text-shadow:0 0 18px rgba(255,255,255,.18)}

/* --- '$' prompts before section headings, '#' before page titles --- */
.th-a :is(.hp-h,#rl,#hw,.cmp>h2,#wk-h1)::before{content:"$";display:inline-block;font:600 .46em/1 var(--mono);color:#777;margin-right:.55em;vertical-align:.38em;text-shadow:none}
@media(max-width:640px){.th-a main.page>h1::before{display:none!important}}
.th-a main.page>h1:not(:has(.mono))::before{content:"#";font:600 .42em/1 var(--mono);color:#555;margin-right:.6em;vertical-align:.45em}
.th-a :is(.hp-h,#rl,#hw,.cmp>h2,main.page>h1){text-shadow:0 0 22px rgba(255,255,255,.12)}
html.vx-m .vx-pre{clip-path:inset(0 100% 0 0)}
html.vx-m .vx-pre.vx-in{animation:vx-type .9s steps(26,end) forwards}
html.vx-m .vx-pre.vx-in::after{content:"";display:inline-block;width:.42em;height:.8em;margin-left:.15em;vertical-align:-.05em;background:currentColor;animation:vx-blink .5s steps(1) 4 forwards}
@keyframes vx-type{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 -1em 0 0)}}
@keyframes vx-blink{50%{opacity:0}}

/* --- entrance: blocks rise in as you scroll --- */
html.vx-m .vx-r{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0)*45ms)}
html.vx-m .vx-r.vx-in{opacity:1;transform:none}

/* --- frames: hairline glow, label like an open file --- */
.th-a :is(.cframe,.lt,.sticker,.digest,.foot-disc,.sheet,.pick,.tbl,.cc){box-shadow:0 0 0 1px rgba(255,255,255,.02),0 20px 60px -30px rgba(255,255,255,.08)}
.th-a .cc-t{letter-spacing:.02em}
.th-a .cc-t::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#ededed;margin-right:7px;vertical-align:1px;box-shadow:0 0 6px var(--vx-glow)}
/* selected-line hover on rows and cards */
.th-a :is(.lt-row,.ri,.card.mini,.tr){transition:background .18s,box-shadow .18s,transform .18s}
.th-a .lt-row:hover,.th-a .ri:hover{background:var(--vx-hl);box-shadow:inset 2px 0 0 #ededed}
.th-a .card.mini:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px #ededed,0 0 24px rgba(255,255,255,.12)!important}
.th-a .lt-pts{text-shadow:0 0 14px rgba(255,255,255,.35)}
.th-a .btn{transition:box-shadow .2s,transform .2s}
.th-a .btn:hover{box-shadow:0 0 0 1px #ededed,0 0 22px rgba(255,255,255,.3);transform:translateY(-1px)}
.th-a .cc-cur{box-shadow:0 0 10px rgba(255,255,255,.7)}
.th-a a.lnk:hover{text-shadow:0 0 12px rgba(255,255,255,.5)}

/* --- status bar: fixed along the bottom on desktop, last line of the page on phones --- */
.vx-status{display:flex;gap:0;font:500 11px/24px var(--mono);color:#0b0b0b;background:#d8d8d8;white-space:nowrap;overflow:hidden}
.vx-status>span{padding:0 10px;border-right:1px solid rgba(0,0,0,.18)}
.vx-status .vx-mode{background:#0b0b0b;color:#ededed;font-weight:700;letter-spacing:.06em;box-shadow:inset 0 0 0 1px #d8d8d8}
.vx-status .vx-sp{flex:1;border:0}
.vx-status>span:last-child{border-right:0}
@media(min-width:900px){.vx-status{position:fixed;left:0;right:0;bottom:0;z-index:20}body.th-a{padding-bottom:24px}}
@media(max-width:899px){.vx-status>span:nth-child(n+6):not(.vx-pct),.vx-status>span:nth-child(2){display:none}}

@media(prefers-reduced-motion:reduce){
 .th-a .t7-bub::after,.vx-ghost .k{animation:none}
 html.vx-m .vx-r{opacity:1;transform:none;transition:none}
 html.vx-m .vx-pre{clip-path:none;animation:none}
}

@media(min-width:900px){.th-a .hp-cue{transform:translateY(-22px)}}

/* ===== shared by a1 / a2 / a3 (preview only) ===== */
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* the footer status line's '? keys' button ran 9px off the side at tablet widths (also on main); it hides there, the '?' key still works */
@media (max-width:899.98px){.foot .sl .sl-k{display:none!important}}
/* phones keep main's declutter even where a layout layer restyles the items (same rules, made to win) */
@media (max-width:640px){
 :root:root:root .home #rankings:not(.is-filtered) .card:nth-child(n+4){display:none!important}
 :root:root:root .tr .bf{display:none!important}
}
@media (max-width:480px){
 :root:root:root .lt-list>.lt-row:nth-child(n+4){display:none!important}
 :root:root:root .home #rankings .cat>p.kick{display:none!important}
 :root:root:root .home #league>.hp-stick{display:none!important}
 :root:root:root :is(#releases,.nl) .ri>:is(.meta,.src){display:none!important}
 :root:root:root .home #how-we-rank .cc-how{display:none!important}
 :root:root:root #specs:not(:target) .sheet dl>.srow:not(.sk){display:none!important}
 :root:root:root #tool-guides .glinks>li:nth-child(n+4){display:none!important}
 :root:root:root .tbl:not(:target)>details.tr:nth-of-type(n+5){display:none!important}
}

/* ===== a3 'mission control': bordered panes, labels in the border, htop meters ===== */
.th-a3{--a3-ln:#2b2b2b;--a3-dim:#6f6f6f;--a3-gap:22px}
/* the pane */
:root:root body.th-a3 .a3-p{position:relative;border:1px solid var(--a3-ln)!important;border-radius:6px!important;background:#0d0d0d!important;
  box-shadow:0 0 0 1px rgba(0,0,0,.6),0 14px 40px -24px rgba(0,0,0,.9)!important;padding:28px 22px 20px!important;margin:0!important;min-width:0;max-width:none!important;transform:none!important}
:root:root body.th-a3 .a3-p:hover,:root:root body.th-a3 .a3-p:focus-within{border-color:#4a4a4a!important}
.th-a3 .a3-lb{position:absolute;top:0;left:12px;right:12px;transform:translateY(-50%);display:flex;align-items:center;gap:10px;margin:0;
  font:600 12px/1.2 var(--mono);color:#e6e6e6;pointer-events:none;white-space:nowrap;z-index:2}
.th-a3 .a3-lb>*{background:var(--k-fff)}
.th-a3 .a3-lb{background:none}
.th-a3 .a3-lb::before{content:"";position:absolute;left:0;top:0;bottom:0;width:calc(var(--a3-lw,0px));}
.th-a3 .a3-p>.a3-lb{padding:0}
.th-a3 .a3-p>.a3-lb .a3-dot,.th-a3 .a3-hlb .a3-dot{width:7px;height:7px;border-radius:50%;background:#ededed;box-shadow:0 0 0 4px var(--k-fff),0 0 8px var(--vx-glow);flex:none}
.th-a3 .a3-lb{text-shadow:0 0 0 transparent}
.th-a3 .a3-lb{-webkit-box-decoration-break:clone}
/* label text sits on a strip of page colour so the border breaks around it */
.th-a3 .a3-lb{color:#e6e6e6}
.th-a3 .a3-p>.a3-lb{font-size:12px}
.th-a3 .a3-p>.a3-lb{left:10px}
.th-a3 .a3-p>.a3-lb::after{content:none}
.th-a3 .a3-p>.a3-lb{padding:0 8px 0 6px;right:auto;max-width:calc(100% - 20px);background:var(--k-fff)}
.th-a3 .a3-hr{color:var(--a3-dim);font-weight:500;padding-left:10px;border-left:1px solid #333;margin-left:2px}
.th-a3 .a3-live::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#ededed;margin-right:6px;vertical-align:1px}
html.vx-m .th-a3 .a3-live::before{animation:a3-blink 1.6s steps(2,start) infinite}
@keyframes a3-blink{50%{opacity:.15}}
/* inner boxes are redundant inside a pane */
:root:root:root body.th-a3 .a3-p :is(.lt,.sticker,.cc,.sheet,.tbl,.cframe,.ns,.digest){border:0!important;box-shadow:none!important;background:none!important;padding-left:0!important;padding-right:0!important;margin-left:0!important;margin-right:0!important;border-radius:0!important}
:root:root:root body.th-a3 .a3-p :is(.lt,.sticker,.sheet,.cframe,.pick,.digest,.sponsor,.cc)>.cc-t,
:root:root:root body.th-a3 .a3-p>.cc-t,:root:root:root body.th-a3 .a3-p .sheet-t:not(.sr){display:none!important}
:root:root:root body.th-a3 .a3-p .lt{padding-top:6px!important}
.th-a3 .a3-p :is(h2,h3):first-of-type{margin-top:0}
/* the dashboard grid */
.th-a3 .a3-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:calc(var(--a3-gap) + 6px) var(--a3-gap);align-items:stretch}
.th-a3.home .a3-grid{padding-top:30px;margin-bottom:56px}
.th-a3 .a3-dc{display:contents!important}
.th-a3 .a3-grid>*,.th-a3 .a3-grid>.a3-dc>*{grid-column:1/-1;min-width:0}
@media(min-width:1100px){
 .th-a3 .a3-w-lg{grid-column:span 8!important}.th-a3 .a3-w-tw{grid-column:span 4!important}
 .th-a3 .a3-w-rl{grid-column:span 7!important}.th-a3 .a3-w-pr{grid-column:span 5!important}
 .th-a3 .a3-w-cg{grid-column:span 5!important}.th-a3 .a3-w-dg{grid-column:span 7!important}
 .th-a3 .a3-tg .a3-w-vd{grid-column:span 5!important}.th-a3 .a3-tg .a3-w-pc{grid-column:span 7!important}
 .th-a3 .a3-tg .a3-w-al{grid-column:span 5!important}.th-a3 .a3-tg .a3-w-gd{grid-column:span 7!important}
 .th-a3 .a3-tg .a3-w-dg{grid-column:1/-1!important}
 .th-a3 .a3-cg .a3-w-sm{grid-column:span 7!important}.th-a3 .a3-cg .a3-w-pk{grid-column:span 5!important}
 .th-a3 .a3-cg .a3-w-dg{grid-column:span 8!important}.th-a3 .a3-cg .a3-w-spn{grid-column:span 4!important}
}
@media(min-width:700px) and (max-width:1099.98px){
 .th-a3 .a3-w-tw{grid-column:span 5!important}.th-a3 .a3-w-rl{grid-column:span 7!important}
 .th-a3 .a3-w-cg{grid-column:span 6!important}.th-a3 .a3-w-dg{grid-column:span 6!important}
 .th-a3 .a3-tg .a3-w-vd{grid-column:span 5!important}.th-a3 .a3-tg .a3-w-pc{grid-column:span 7!important}
 .th-a3 .a3-tg .a3-w-al,.th-a3 .a3-tg .a3-w-gd,.th-a3 .a3-tg .a3-w-dg,.th-a3 .a3-cg .a3-w-dg{grid-column:1/-1!important}
}
@media(max-width:699.98px){
 .th-a3 .a3-grid{gap:30px 0}.th-a3 .a3-dt{display:none!important}
 :root:root body.th-a3 .a3-p{padding:26px 14px 16px!important}
}
/* homepage section spacing inside panes */
:root:root body.th-a3 .a3-p:is(#league>*,#releases,#digest,#how-we-rank,.a3-w-lot){margin:0!important}
:root:root body.th-a3 #league>aside.hp-stick{padding-top:28px!important}
.th-a3 .a3-w-lot .hp-lot{margin-top:0;padding-top:0}
.th-a3 .a3-p .hp-h{margin-top:0}
/* top htop pane */
.th-a3 .a3-top{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:6px 40px;font:500 13px/1.75 var(--mono);color:#bdbdbd}
.th-a3 .a3-top p{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.th-a3 .a3-top b{color:#fff;font-weight:700}
.th-a3 .a3-mk{color:var(--a3-dim);display:inline-block;min-width:6.5ch}
.th-a3 .a3-mr{display:flex;align-items:center}
.th-a3 .a3-mr b,.th-a3 .a3-bar b{letter-spacing:-.5px;color:#f2f2f2;text-shadow:0 0 6px var(--vx-glow);font-weight:700}
.th-a3 .a3-mr i,.th-a3 .a3-bar i{font-style:normal;letter-spacing:-.5px}
.th-a3 .a3-mr em,.th-a3 .a3-bar em{font-style:normal;color:#9a9a9a;margin-left:6px}
.th-a3 .a3-mr{white-space:nowrap}
@media(max-width:699.98px){.th-a3 .a3-top{grid-template-columns:1fr;font-size:12px}.th-a3 .a3-mt p:not(:last-child){display:none}}
/* meters in rows */
.th-a3 .a3-bar{font:500 12px/1 var(--mono);color:#555;white-space:nowrap}
:root:root .th-a3 .a3-p .lt-row{display:grid!important;grid-template-columns:4ch minmax(0,1fr) auto auto 4.5ch!important;column-gap:14px}
:root:root .th-a3 .a3-p .lt-row>*{grid-row:1!important}
:root:root .th-a3 .a3-p .lt-row>.lt-pos{grid-column:1!important}:root:root .th-a3 .a3-p .lt-row>.lt-nm{grid-column:2!important}
:root:root .th-a3 .a3-p .lt-row>.lt-mv{grid-column:3!important}:root:root .th-a3 .a3-p .lt-row>.a3-bar{grid-column:4!important}
:root:root .th-a3 .a3-p .lt-row>.lt-pts{grid-column:5!important}
.th-a3 .lt-row .a3-bar em{display:none}
@media(max-width:699.98px){:root:root .th-a3 .a3-p .lt-row{grid-template-columns:3ch minmax(0,1fr) auto 3.5ch!important;column-gap:10px}
 :root:root .th-a3 .a3-p .lt-row>.lt-mv{display:none!important}:root:root .th-a3 .a3-p .lt-row>.a3-bar{grid-column:3!important}:root:root .th-a3 .a3-p .lt-row>.lt-pts{grid-column:4!important}
 .th-a3 .lt-row .a3-bar{font-size:10px}}
/* launches log pane: a scrolling tail on wide screens */
.th-a3 .a3-w-rl>h2{margin-top:0}
.th-a3 .a3-scr{position:relative;overflow:hidden;max-height:420px;-webkit-mask:linear-gradient(#000 80%,transparent);mask:linear-gradient(#000 80%,transparent)}
html.vx-m .th-a3 .a3-scr.a3-go>.a3-tr{animation:a3-up var(--a3-d,60s) linear infinite}
.th-a3 .a3-scr.a3-off>.a3-tr,.th-a3 .a3-scr:hover>.a3-tr,.th-a3 .a3-scr:focus-within>.a3-tr{animation-play-state:paused!important}
@keyframes a3-up{to{transform:translateY(-50%)}}
/* prices.csv */
:root:root .th-a3 .a3-prices table{width:100%!important;min-width:0!important;border-collapse:collapse;table-layout:fixed;font:500 12.5px/1.4 var(--mono)}
.th-a3 .a3-prices th{text-align:left;color:var(--a3-dim);font-weight:500;padding:0 8px 8px 0;border-bottom:1px solid #2a2a2a}
.th-a3 .a3-prices td{padding:8px 8px 8px 0;border-bottom:1px dashed #222;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#cfcfcf}
.th-a3 .a3-prices th:nth-child(1){width:34%}.th-a3 .a3-prices th:nth-child(3){width:11ch}
.th-a3 .a3-prices small{display:block;color:#8a8a8a;font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}
.th-a3 .a3-prices td{vertical-align:top}
.th-a3 .a3-prices a{color:#ededed;text-decoration:none}.th-a3 .a3-prices a:hover{text-decoration:underline}
.th-a3 .a3-prices td.a3-ck{color:#777}
.th-a3 .a3-prices tr:hover td{background:var(--vx-hl)}
/* categories/ */
.th-a3 .a3-cats ul{list-style:none;margin:0;padding:0;font:500 13px/1.3 var(--mono)}
.th-a3 .a3-cats a{display:grid;grid-template-columns:minmax(0,15ch) minmax(0,1fr) 3ch;gap:12px;align-items:center;padding:7px 4px;color:#d6d6d6;text-decoration:none;border-bottom:1px dashed #1f1f1f}
.th-a3 .a3-cats a:hover{background:var(--vx-hl);color:#fff}
.th-a3 .a3-cn{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.th-a3 .a3-cb{height:8px;background:repeating-linear-gradient(90deg,#1f1f1f 0 6px,transparent 6px 8px)}
.th-a3 .a3-cb b{display:block;height:100%;background:repeating-linear-gradient(90deg,#ededed 0 6px,transparent 6px 8px);box-shadow:0 0 8px rgba(255,255,255,.18);transform-origin:left}
html.vx-m .th-a3 .a3-cats.a3-in .a3-cb b{animation:a3-grow .9s cubic-bezier(.2,.7,.2,1) both}
@keyframes a3-grow{from{transform:scaleX(0)}}
.th-a3 .a3-cc{text-align:right;color:#9a9a9a}
/* hero = pane 1 */
.th-a3 .a3-hlb{position:absolute;left:24px;right:24px;bottom:18px;margin:0;display:flex;gap:10px;align-items:center;font:600 11.5px/1.2 var(--mono);color:#8a8a8a;pointer-events:none;z-index:1}
.th-a3 .a3-hlb .a3-hr{margin-left:auto;border:0}
@media(max-width:699.98px){.th-a3 .a3-hlb{display:none}}
/* tool pages */
.th-a3 .a3-tg{margin-top:34px;margin-bottom:34px}
:root:root body.th-a3 .a3-w-vd .ns{margin:0!important;padding:0!important}
.th-a3 .a3-vbar{margin:14px 0 0;font:500 13px/1 var(--mono)}
.th-a3 .a3-vbar .a3-bar{font-size:13px}
:root:root body.th-a3 .a3-prs dl{margin:0}
:root:root body.th-a3 .a3-p .srow{display:grid}
.th-a3 .a3-w-al>h2,.th-a3 .a3-w-gd>h2{margin-top:0!important}
:root:root body.th-a3 .a3-w-al .man-sa{margin-top:0}
:root:root body.th-a3 .a3-w-ps{margin-top:28px!important}
:root:root body.th-a3 .a3-w-ps>p{border:0!important;background:none!important;box-shadow:none!important;margin:0!important;padding:0!important}
:root:root body.th-a3 .a3-w-spn>aside{border:0!important;background:none!important;padding:0!important;margin:0!important}
/* category pages */
.th-a3 .a3-cg{margin-top:30px;margin-bottom:30px}
:root:root body.th-a3 .a3-w-sm .cc-rank{padding-top:0!important;margin-top:0!important}
:root:root body.th-a3 .a3-w-sm .answer{margin-bottom:0}
:root:root body.th-a3 .a3-w-pk .plbl{display:none}
@media(min-width:700px){:root:root .th-a3 .a3-w-cmp .tbl :is(.th,.tr summary){grid-template-columns:44px minmax(150px,1.1fr) 1.5fr 1.2fr 13ch 20px!important}}
@media(max-width:699.98px){.th-a3 .a3-w-cmp .a3-bar,.th-a3 .a3-mh{display:none}}
.th-a3 .a3-mh{font-family:var(--mono)}
.th-a3 .a3-ns{color:#666;font-size:11px}
/* /new/ histogram */
.th-a3 .a3-hs{display:flex;align-items:flex-end;gap:6px;height:150px;padding-top:6px}
.th-a3 .a3-hc{flex:1 1 0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;gap:6px;text-decoration:none;color:#888;font:500 11px/1 var(--mono);min-width:0}
.th-a3 .a3-hc b{display:block;width:100%;max-width:38px;background:repeating-linear-gradient(0deg,#ededed 0 5px,transparent 5px 7px);box-shadow:0 0 10px rgba(255,255,255,.15);transform-origin:bottom}
.th-a3 .a3-hc:hover b{background:repeating-linear-gradient(0deg,#fff 0 5px,transparent 5px 7px)}
.th-a3 .a3-hn{color:#ddd}
html.vx-m .th-a3 .a3-hist.a3-in .a3-hc b{animation:a3-rise .8s cubic-bezier(.2,.7,.2,1) both}
@keyframes a3-rise{from{transform:scaleY(0)}}
@media(max-width:480px){.th-a3 .a3-hs{gap:3px;height:110px}.th-a3 .a3-hd{font-size:9px;writing-mode:vertical-rl;transform:rotate(180deg)}}
.th-a3 .nl .a3-w-hg{margin:26px 0 30px!important}
/* generic pages: one pane around the content */
:root:root body.th-a3 .a3-w-pg{margin:36px 0 34px!important}
@media(max-width:699.98px){:root:root body.th-a3 .a3-w-pg{border-left:0!important;border-right:0!important;border-radius:0!important;padding-left:0!important;padding-right:0!important;background:none!important;box-shadow:none!important}}
.th-a3 .a3-sb .a3-clk{color:#ededed}
@media(prefers-reduced-motion:reduce){.th-a3 *{animation:none!important;transition:none!important}}

/* big section heads shrink a notch inside panes */
@media(min-width:700px){:root:root body.th-a3 .a3-grid .a3-p :is(.hp-h,#releases>h2,#how-we-rank h2,.hp-lot h2){font-size:clamp(28px,3vw,38px)!important;line-height:1.1!important}}
:root:root body.th-a3 #releases .cc-cmdc{margin:10px 0 6px!important}
@media(max-width:1099.98px){.th-a3 .a3-live{display:none}}
:root:root body.th-a3 .a3-w-dg.digest{align-content:center!important}
:root:root body.th-a3 .a3-prs .srow{display:grid!important;grid-template-columns:13ch minmax(0,1fr);gap:4px 16px;padding:9px 0;border-bottom:1px dashed #232323;font:500 13px/1.6 var(--mono)}
:root:root body.th-a3 .a3-prs .srow:last-child{border-bottom:0}
:root:root body.th-a3 .a3-prs dt{color:#7a7a7a;font:500 12.5px/1.6 var(--mono)}
:root:root body.th-a3 .a3-prs dd{margin:0;color:#e2e2e2}
:root:root body.th-a3 .a3-prs .srow:first-child dd{color:#fff;font-weight:600}
@media(max-width:480px){:root:root body.th-a3 .a3-prs .srow{grid-template-columns:1fr}}
:root:root body.th-a3 .nl .a3-w-gl{margin-top:34px!important}
:root:root body.th-a3 .nl .a3-w-hg{margin-bottom:0!important}
@media(max-width:480px){.th-a3 .a3-sb{display:none}}

/* ===================== a3 v2: calm mission control ===================== */
.th-a3 .vx-gutter,.th-a3 .vx-line{display:none!important}
.th-a3{--a3-ln:#1f1f1f}
:root:root body.th-a3 .a3-p{border-radius:10px!important;background:#0c0c0c!important;box-shadow:none!important;padding:38px 32px 30px!important}
:root:root body.th-a3 .a3-p:hover,:root:root body.th-a3 .a3-p:focus-within{border-color:#333!important}
.th-a3 .a3-p>.a3-lb{font-size:11.5px;color:#bdbdbd;letter-spacing:.02em}
.th-a3 .a3-p>.a3-lb .a3-dot{width:5px;height:5px;box-shadow:0 0 0 4px var(--k-fff)}
.th-a3 .a3-hr{color:#5c5c5c;border-left-color:#262626}
@media(min-width:1100px){
 .th-a3.home .a3-grid{gap:44px 28px;padding-top:56px}
 .th-a3 .a3-w-sc{grid-column:1/-1!important}
 .th-a3 .a3-w-pr{grid-column:span 7!important}.th-a3 .a3-w-rl{grid-column:span 5!important}
 .th-a3 .a3-w-dg{grid-column:1/-1!important}
}
@media(min-width:700px) and (max-width:1099.98px){.th-a3 .a3-w-pr,.th-a3 .a3-w-rl{grid-column:1/-1!important}}
@media(max-width:699.98px){:root:root body.th-a3 .a3-p{padding:30px 18px 22px!important}.th-a3.home .a3-grid{gap:38px 0;padding-top:34px}}
:root:root body.th-a3 #league>aside.hp-stick{display:flex!important;flex-direction:column;justify-content:center}
/* ---- readout ---- */
.a3-ro{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) minmax(0,1.6fr);border-top:1px solid #1c1c1c;border-bottom:1px solid #1c1c1c}
.a3-ro-i{padding:26px 22px 24px;border-left:1px solid #1c1c1c;min-width:0;display:flex;flex-direction:column;gap:10px}
.a3-ro-i:first-child{border-left:0;padding-left:0}
.a3-ro-i b{font:400 clamp(34px,4vw,52px)/1 Doto,var(--mono);color:#fff;letter-spacing:-.02em;font-variant-numeric:tabular-nums;text-shadow:0 0 24px rgba(255,255,255,.18)}
.a3-ro-i span{font:500 11.5px/1.3 var(--mono);color:#6a6a6a;letter-spacing:.03em}
.a3-ro-ck b{font:500 clamp(16px,1.6vw,20px)/1.2 var(--mono);text-shadow:none;color:#d8d8d8;margin-top:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.a3-ro-ck b::before{content:"" / "";display:inline-block;width:7px;height:7px;border-radius:50%;background:#ededed;margin-right:10px;vertical-align:2px;box-shadow:0 0 10px rgba(255,255,255,.7)}
html.vx-m .a3-ro-ck b::before{animation:a3-blink 2s ease-in-out infinite}
@media(max-width:899.98px){.a3-ro{grid-template-columns:repeat(2,minmax(0,1fr))}.a3-ro-i{border-left:0;padding:20px 0;border-top:1px solid #1c1c1c}.a3-ro-i:nth-child(-n+2){border-top:0}.a3-ro-i:nth-child(even){padding-left:18px;border-left:1px solid #1c1c1c}.a3-ro-ck{grid-column:1/-1;padding-left:0!important;border-left:0!important}}
/* ---- segmented score bars ---- */
.a3-sg{position:relative;display:block;height:6px;min-width:60px;align-self:center;background:repeating-linear-gradient(90deg,#1f1f1f 0 calc(10% - 2px),transparent calc(10% - 2px) 10%)}
.a3-sg i{position:absolute;left:0;top:0;bottom:0;width:calc(var(--v,0)*100%);background:#bdbdbd;transform-origin:left center;
  -webkit-mask:repeating-linear-gradient(90deg,#000 0 calc(100%/var(--v,1)/10 - 2px),transparent 0 calc(100%/var(--v,1)/10));mask:repeating-linear-gradient(90deg,#000 0 calc(100%/var(--v,1)/10 - 2px),transparent 0 calc(100%/var(--v,1)/10))}
html.vx-m .a3-w-lg:not(.a3-in) .a3-sg i{transform:scaleX(0)}
html.vx-m .a3-w-lg.a3-in .a3-sg i{animation:a3-fill 1.3s cubic-bezier(.16,.84,.24,1) both;animation-delay:calc(.15s + var(--r,0)*110ms)}
@keyframes a3-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
/* league rows as a scoreboard */
.th-a3 .a3-w-lg .a3-bar{display:none!important}
:root:root .th-a3 .a3-w-lg .lt-row{display:grid!important;grid-template-columns:3ch minmax(0,1fr) 6ch minmax(110px,28%) 5ch!important;grid-template-rows:auto!important;column-gap:20px;align-items:center;padding:18px 0!important;border-bottom:1px solid #161616!important}
:root:root .th-a3 .a3-w-lg .lt-row>*{grid-row:1!important}
:root:root .th-a3 .a3-w-lg .lt-row>.lt-pos{grid-column:1!important}:root:root .th-a3 .a3-w-lg .lt-row>.lt-nm{grid-column:2!important}:root:root .th-a3 .a3-w-lg .lt-row>.lt-mv{grid-column:3!important;text-align:right}
:root:root .th-a3 .a3-w-lg .lt-row>.a3-sg{grid-column:4!important}:root:root .th-a3 .a3-w-lg .lt-row>.lt-pts{grid-column:5!important;text-align:right}
.th-a3 .a3-w-lg .lt-pos{font:500 13px/1 var(--mono)!important;color:#555!important}
.th-a3 .a3-w-lg .lt-pts{font:500 15px/1 var(--mono)!important;color:#9a9a9a}
.th-a3 .a3-w-lg .lt-row:first-child .lt-pos{color:#fff!important}
.th-a3 .a3-w-lg .lt-row:first-child .lt-nm a{font-size:19px!important}
.th-a3 .a3-w-lg .lt-row:first-child .lt-pts{font:400 36px/1 Doto,var(--mono)!important;color:#fff;text-shadow:0 0 22px rgba(255,255,255,.35)}
.th-a3 .a3-w-lg .lt-row:first-child .a3-sg{height:8px}
.th-a3 .a3-w-lg .lt-row:first-child .a3-sg i{background:#fff;box-shadow:0 0 14px rgba(255,255,255,.3)}
@media(max-width:699.98px){
 :root:root .th-a3 .a3-w-lg .lt-row{grid-template-columns:3ch minmax(0,1fr) auto!important;grid-template-rows:auto auto!important;row-gap:10px;column-gap:12px}
 :root:root .th-a3 .a3-w-lg .lt-row>.lt-mv{display:none!important}
 :root:root .th-a3 .a3-w-lg .lt-row>.lt-pts{grid-column:3!important}
 :root:root .th-a3 .a3-w-lg .lt-row>.a3-sg{grid-column:2/4!important;grid-row:2!important}
 .th-a3 .a3-w-lg .lt-row:first-child .lt-pts{font-size:28px!important}
}
/* ---- prices.csv ---- */
:root:root .th-a3 .a3-prices table{border-collapse:collapse;table-layout:fixed}
.th-a3 .a3-prices th{font:500 11px/1 var(--mono);color:#5c5c5c;text-align:left;padding:0 12px 12px 0;border-bottom:1px solid #1c1c1c;letter-spacing:.04em}
.th-a3 .a3-prices th:nth-child(1){width:30%}.th-a3 .a3-prices th:nth-child(2){width:27%}
.th-a3 .a3-prices td{padding:13px 12px 13px 0;border-bottom:1px solid #141414;vertical-align:top;font:500 13px/1.45 var(--mono)}
.th-a3 .a3-prices tr:last-child td{border-bottom:0}
.th-a3 .a3-prices .a3-pc a{color:#8a8a8a;text-decoration:none}.th-a3 .a3-prices .a3-pt a{color:#ededed;text-decoration:none;font-weight:600}
.th-a3 .a3-prices tr:hover .a3-pc a{color:#cfcfcf}
.th-a3 .a3-prices .a3-pp b{display:block;color:#fff;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.th-a3 .a3-prices .a3-pp small{display:block;color:#5f5f5f;font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}
/* ---- first-visit intro ---- */
html.a3-i body::after{content:"";position:fixed;inset:0;z-index:9998;background:#0b0b0b;animation:a3-cov .3s 3.2s forwards;pointer-events:none}
@keyframes a3-cov{to{opacity:0;visibility:hidden}}
.a3-intro{position:fixed;inset:0;z-index:9999;background:#0b0b0b;color:#ededed;font-family:var(--mono);display:flex;flex-direction:column;justify-content:center;padding:0 max(24px,6vw);box-sizing:border-box;transition:opacity .5s ease;cursor:pointer}
.a3-intro.a3-x{opacity:0;pointer-events:none}
.a3-ih{display:flex;justify-content:space-between;align-items:baseline;gap:16px;font:500 13px/1.4 var(--mono);color:#9a9a9a;margin-bottom:28px}
.a3-ih b{color:#fff;font-weight:500}
.a3-ic{font:400 clamp(22px,3vw,34px)/1 Doto,var(--mono);color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap}
.a3-ic small{font:500 11.5px var(--mono);color:#6a6a6a;margin-left:8px}
.a3-iv{position:relative;height:min(62vh,600px);width:100%;max-width:1160px;margin:0 auto}.a3-iv canvas{position:absolute;inset:0;display:block}
.a3-intro.a3-dn{opacity:0}
.a3-if{margin-top:34px;display:flex;justify-content:space-between;gap:16px;font:500 12px/1.4 var(--mono);color:#6a6a6a}
.a3-if b{color:#fff;font-weight:600}
.a3-skip{all:unset;cursor:pointer;color:#8a8a8a;border-bottom:1px solid #444}
.a3-skip:focus-visible{outline:2px solid #fff;outline-offset:3px}
@media(max-width:699.98px){.a3-if{margin-top:22px}.a3-iv{height:min(60vh,420px)}.a3-ih{flex-direction:column;gap:12px;margin-bottom:18px}}
@media(prefers-reduced-motion:reduce){.a3-intro,html.a3-i body::after{display:none!important}.a3-sg i,.a3-cbar,.a3-ch .a3-lg{animation:none!important;transform:none!important}}
.th-a3 .vx-ghost:not(.a3-gh){display:none!important}
/* fixes: launches in a narrow pane, totw centred, board slots, leader score room */
:root:root body.th-a3 #releases .ri{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:auto!important;column-gap:16px;row-gap:6px;padding:16px 0!important;border-bottom:1px solid #151515!important}
:root:root body.th-a3 #releases .ri>*{grid-column:1/-1!important;grid-row:auto!important;margin:0!important;min-width:0}
:root:root body.th-a3 #releases .ri>time{grid-column:1!important;grid-row:1!important;font:500 11.5px/1.4 var(--mono)!important;color:#6a6a6a!important}
:root:root body.th-a3 #releases .ri>.src{grid-column:2!important;grid-row:1!important;font-size:11.5px!important;justify-self:end}
:root:root body.th-a3 #releases .ri>h3{font:600 15px/1.35 var(--sans,inherit)!important}
:root:root body.th-a3 #releases .ri>.meta{font-size:13px!important;line-height:1.55!important;color:#8a8a8a!important;display:-webkit-box!important;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
:root:root body.th-a3 .a3-w-tw .sticker{position:static!important;margin:auto 0!important;top:auto!important}
@media(min-width:700px){:root:root .th-a3 .a3-w-lg .lt-row{grid-template-columns:3ch minmax(0,1fr) 6ch minmax(110px,26%) 6.5ch!important}}
.th-a3 .a3-vbar{display:flex;align-items:center;gap:16px;max-width:460px;margin:16px 0 4px}
.th-a3 .a3-sgb{flex:1;height:8px}.th-a3 .a3-sgb i{background:#ededed;box-shadow:0 0 12px rgba(255,255,255,.25)}
.th-a3 .a3-vbar em{font:400 30px/1 Doto,var(--mono);font-style:normal;color:#fff}.th-a3 .a3-vbar small{font:500 12px var(--mono);color:#666;margin-left:2px}
.th-a3 .a3-rs{display:flex;align-items:center;gap:10px;min-width:0;font:500 12.5px/1 var(--mono);color:#9a9a9a}
.th-a3 .a3-rs .a3-sg{flex:1;height:5px;min-width:40px}.th-a3 .a3-rs em{font-style:normal;width:3ch;text-align:right}
.th-a3 .a3-rs.a3-ns em{width:auto;color:#555}
@media(max-width:699.98px){.th-a3 .a3-w-cmp .a3-rs{display:none}}
:root:root .th-a3 .a3-pdd{grid-column:1/-1!important}
:root:root .th-a3 .a3-prs .srow:has(.a3-pdd){display:block!important}
:root:root .th-a3 .a3-prs .srow:has(.a3-pdd) dt{margin-bottom:10px}
@media(max-width:480px){.th-a3 .a3-plans li:last-child:nth-child(odd){grid-column:1/-1}}

/* plan cards, same treatment as a2 */
.th-a3 .a3-plans{list-style:none;margin:6px 0 2px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:1px;background:#222;border:1px solid #222;border-radius:6px;overflow:hidden}
.th-a3 .a3-plans li{background:#0b0b0b;padding:14px 14px 13px;margin:0;font:400 12.5px/1.5 var(--mono);color:#9a9a9a;min-width:0;overflow-wrap:anywhere;transition:background .2s}
.th-a3 .a3-plans li:hover{background:#121212}
.th-a3 .a3-plans li .num:first-of-type{font:700 16px/1.3 var(--mono);color:#fff;letter-spacing:-.01em}
.th-a3 .a3-plans li:first-child{box-shadow:inset 0 2px 0 #ededed}
.th-a3 .a3-plans{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
@media(max-width:480px){.th-a3 .a3-plans{grid-template-columns:1fr 1fr}}
.th-a3 .a3-plans{display:flex!important;flex-wrap:wrap}
.th-a3 .a3-plans li{flex:1 1 140px}
.a3-intro,.a3-intro *{font-variant-ligatures:none;font-feature-settings:"calt" 0,"liga" 0}
:root:root body.th-a3 #league>aside.hp-stick{justify-content:flex-start!important}
:root:root body.th-a3 .a3-w-tw .sticker{position:sticky!important;top:110px!important;margin:18px 0 0!important}
/* hero dot field: the scores cloud, faint, behind everything */
.th-a3 .a3-hero{position:relative;isolation:isolate}
.a3-fld{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1;opacity:0;transition:opacity 1.2s ease;
  -webkit-mask-image:radial-gradient(ellipse 75% 80% at 50% 50%,#000 55%,transparent 100%);mask-image:radial-gradient(ellipse 75% 80% at 50% 50%,#000 55%,transparent 100%)}
.a3-fld.a3-on{opacity:1}
@media(prefers-reduced-motion:reduce){.a3-fld{transition:none}}

/* ===== v2: a1's editor tabs as the nav ===== */
.th-a3{--ax-tabh:40px}
.th-a3 .ax-hd{display:flex;align-items:center;gap:12px}
.th-a3 .ax-hd .btn.sm{height:38px;box-sizing:border-box;display:inline-flex;align-items:center;padding:0 16px}
@media (max-width:699.98px){
 .th-a3 .ax-hd{display:none}
 .th-a3 .ax-mm>summary.mm-t{box-sizing:border-box;width:44px;height:44px;display:inline-flex!important;align-items:center;justify-content:center;border:1px solid #2c2c2c;border-radius:8px;padding:0!important;background:#111;text-decoration:none!important}
 .th-a3 .ax-mm>summary .mm-o{font:700 15px/1 var(--mono);letter-spacing:.06em;color:#ededed;transform:translateY(-3px)}
 .th-a3 .ax-mm>summary .mm-x{font:600 14px/1 var(--mono);color:#ededed}
 .th-a3 .nav .row{gap:0}
}
.th-a3 .ax-tabs{position:relative;z-index:4;height:var(--ax-tabh);border-bottom:1px solid #1d1d1d;background:rgba(13,13,13,.9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font:500 12.5px/1 var(--mono)}
.th-a3.home .ax-tabs{margin-bottom:calc(-1*var(--ax-tabh));background:rgba(13,13,13,.5)}
.th-a3 .ax-tw{display:flex;align-items:stretch;height:100%;max-width:1160px;margin:0 auto;padding:0 24px;box-sizing:border-box}
.th-a3 .ax-ts{display:flex;align-items:stretch;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.th-a3 .ax-ts::-webkit-scrollbar{display:none}
.th-a3 .ax-tab{flex:none;display:inline-flex;align-items:center;gap:8px;padding:0 15px;color:#727272;text-decoration:none;border-right:1px solid #1d1d1d;position:relative;white-space:nowrap;transition:color .2s,background .2s}
.th-a3 .ax-tab:first-child{border-left:1px solid #1d1d1d}
.th-a3 .ax-tab:hover{color:#ededed;background:#141414}
.th-a3 .ax-tab:focus-visible{outline:2px solid #ededed;outline-offset:-2px}
.th-a3 .ax-tab i{width:6px;height:6px;border-radius:50%;background:#333;transition:background .2s,box-shadow .2s}
.th-a3 .ax-tab b{font-weight:500;color:#444;margin-left:2px;opacity:0;transition:opacity .2s}
.th-a3 .ax-tab:hover b,.th-a3 .ax-tab.on b{opacity:1}
.th-a3 .ax-tab.on{background:var(--vx-bg);color:#ededed}
.th-a3 .ax-tab.on i{background:#ededed;box-shadow:0 0 8px var(--vx-glow)}
.th-a3 .ax-tab.on::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:#ededed;box-shadow:0 0 12px var(--vx-glow)}
.th-a3 .ax-tab.on::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--vx-bg)}
.th-a3 .ax-tab.par{color:#bdbdbd}.th-a3 .ax-tab.par i{background:#8a8a8a}
.th-a3 .ax-file em{font-style:italic}
.th-a3 .ax-path{flex:1 1 0;margin-left:auto;padding-left:16px;color:#4a4a4a;display:block;line-height:var(--ax-tabh);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
@media (max-width:899.98px){.th-a3 .ax-path{display:none}}
@media (max-width:699.98px){
 .th-a3{--ax-tabh:42px}
 .th-a3 .ax-tw{padding:0}
 .th-a3 .ax-ts{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);padding-right:24px}
 .th-a3 .ax-tab{padding:0 13px}
 .th-a3 .ax-tab:first-child{border-left:0}
 .th-a3 .ax-tab b{display:none}
}
@media (min-width:700px){.th-a3 .ax-tabs{position:sticky;top:61px}}

/* ===== v2: hero = ghost terminal above, score horizon below ===== */
.th-a3 .vx-ghost.a3-gh{bottom:min(13vh,120px);padding:64px 24px 0 max(24px,calc((100% - 1160px)/2 + 24px));opacity:.11;
  -webkit-mask-image:radial-gradient(ellipse 44% 46% at 64% 54%,transparent 58%,#000 100%),linear-gradient(#000 55%,transparent);-webkit-mask-composite:source-in;
  mask-image:radial-gradient(ellipse 44% 46% at 64% 54%,transparent 58%,#000 100%),linear-gradient(#000 55%,transparent);mask-composite:intersect}

/* ===== v2: the scores board (the star of the homepage) ===== */
.th-a3 .a3-sbh{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin:0 0 30px}
:root:root body.th-a3 .a3-sbh h2{margin:0!important}
:root:root body.th-a3 .a3-sbh form.search{margin:0!important;flex:0 1 340px;max-width:none}
.a3-lg{display:block;flex:none;width:24px;height:24px;border-radius:6px;overflow:hidden;background:#151515}
.a3-lg img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);opacity:.8;transition:filter .3s,opacity .3s}
.a3-mono{display:grid;place-items:center;font:700 12px/1 var(--mono);color:#ededed;box-shadow:inset 0 0 0 1px #333}
.th-a3 .a3-scores #empty{margin:22px 0 0}
@keyframes a3-pop{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:699.98px){
 :root:root body.th-a3 .a3-sbh form.search{display:none!important}
 .th-a3 .a3-sbh{margin-bottom:18px}
}
/* ----- alt 5: latent space ----- */
@property --u{syntax:"<length>";inherits:true;initial-value:1px}
@property --cx{syntax:"<number>";inherits:true;initial-value:50}
@property --cy{syntax:"<number>";inherits:true;initial-value:50}
.ls-g{position:relative;height:800px;--u:1px;border-radius:12px;overflow:hidden;
 background:radial-gradient(ellipse 70% 60% at 50% 50%,rgba(255,255,255,.035),transparent 70%),radial-gradient(circle,rgba(255,255,255,.07) 1px,transparent 1.2px) 0 0/28px 28px,#080808;
 box-shadow:inset 0 0 0 1px #1a1a1a}
.ls-cs{list-style:none;margin:0;padding:0;position:absolute;inset:0}
.ls-c{position:absolute;inset:0;margin:0;pointer-events:none;transition:--cx .9s cubic-bezier(.6,0,.2,1),--cy .9s cubic-bezier(.6,0,.2,1),--u .9s cubic-bezier(.6,0,.2,1),opacity .5s}
.ls-c>*{pointer-events:auto}
.ls-ns{list-style:none;margin:0;padding:0;position:absolute;inset:0;pointer-events:none}
.ls-ns>li>*{pointer-events:auto}
.ls-ns>li>.ls-wn{pointer-events:none}
html.vx-m .ls-g.a3-in .ls-ns{animation:ls-fl var(--du) ease-in-out calc(var(--i)*-1.7s) infinite alternate}
@keyframes ls-fl{0%{transform:translate(-4px,3px)}50%{transform:translate(3px,-4px)}100%{transform:translate(5px,4px)}}
.ls-ps .ls-ns,.ls-ps .ls-n a{animation-play-state:paused!important}
.ls-n{position:absolute;margin:0;left:calc(var(--cx)*1% + var(--dx)*var(--u));top:calc(var(--cy)*1% + var(--dy)*var(--u));width:0;height:0;z-index:1}
.ls-n::before{content:"";position:absolute;left:0;top:0;height:1px;width:calc(var(--r)*var(--u));transform-origin:0 50%;transform:rotate(var(--an));
 background:linear-gradient(90deg,rgba(255,255,255,calc(.03 + var(--g)*.1)),rgba(255,255,255,.14));transition:opacity .3s,background .3s}
.ls-n a{position:absolute;left:0;top:0;transform:translate(-50%,-50%);display:block;border-radius:50%;outline:none;
 box-shadow:0 0 0 1px rgba(255,255,255,calc(.08 + var(--g)*.3)),0 0 calc(4px + var(--g)*14px) rgba(255,255,255,calc(var(--g)*.16));transition:transform .3s cubic-bezier(.2,.8,.2,1),opacity .3s,box-shadow .3s}
.ls-n .a3-lg{width:calc(20px + var(--g)*10px);height:calc(20px + var(--g)*10px);border-radius:50%;transition:width .5s,height .5s}
.ls-n .a3-lg img{opacity:calc(.35 + var(--g)*.65)}
.ls-ld{z-index:2}
.ls-ld a{box-shadow:0 0 0 1.5px rgba(255,255,255,.85),0 0 34px rgba(255,255,255,.3)}
.ls-ld .a3-lg{width:46px;height:46px}.ls-ld .a3-lg img{opacity:1}
.ls-cr{position:absolute;left:50%;top:-14px;transform:translateX(-50%);line-height:0;color:#fff;filter:drop-shadow(0 0 6px rgba(255,255,255,.6));z-index:2}
.ls-cr svg{width:18px;height:13px;fill:currentColor}
.ls-wn{position:absolute;left:0;top:32px;transform:translateX(-50%);white-space:nowrap;padding:3px 7px;border-radius:999px;background:rgba(8,8,8,.78);font:600 12.5px/1 var(--sans,inherit);color:#fff;text-shadow:0 0 12px #000,0 0 4px #000;pointer-events:none;transition:opacity .3s}
.ls-wn b{font:500 11px/1 var(--mono);color:#bdbdbd;margin-left:4px}
.ls-un a{box-shadow:none;outline:1px dashed #555;outline-offset:2px}
/* category labels sit just clear of the cluster's topmost logo (phones' dot overview: just below the lowest dot), above the logos */
.ls-c h3{position:absolute;left:calc(var(--cx)*1%);top:min(calc(var(--cy)*1% + var(--ly)*var(--u) - 32px),calc(var(--cy)*1% - 56px));transform:translate(-50%,-50%);margin:0!important;z-index:3}
.ls-z{all:unset;cursor:pointer;font:500 11px/1 var(--mono);letter-spacing:.03em;color:#7a7a7a;padding:4px 8px;border-radius:999px;background:rgba(8,8,8,.82);white-space:nowrap;transition:color .2s,background .2s}
.ls-z:hover,.ls-c.ls-on .ls-z{color:#fff;background:#1c1c1c}
.ls-z:focus-visible{outline:2px solid #fff;outline-offset:2px}
/* hover: the rest of the space dims, this cluster's spokes light */
.ls-hv .ls-c:not(.ls-on) .ls-n a,.ls-hv .ls-c:not(.ls-on) .ls-wn{opacity:.3}
.ls-hv .ls-c:not(.ls-on) .ls-n::before{opacity:.25}
.ls-c.ls-on .ls-n::before{background:linear-gradient(90deg,rgba(255,255,255,.25),rgba(255,255,255,.5))}
.ls-n.ls-on{z-index:4}
.ls-n.ls-on a{transform:translate(-50%,-50%) scale(1.25);box-shadow:0 0 0 1.5px #fff,0 0 30px rgba(255,255,255,.45)}
.ls-n.ls-on .a3-lg img,.ls-n a:focus-visible .a3-lg img{filter:none;opacity:1}
.ls-n a:focus-visible{outline:2px solid #fff;outline-offset:3px}
.a3-flt .ls-n a.a3-dim{opacity:.08}
/* zoom: the chosen cluster flies to the middle and grows, the rest fade */
.ls-c.ls-f{--cx:50!important;--cy:52!important;--u:1.55px;z-index:5}
.ls-c.ls-o{opacity:0;pointer-events:none}
.ls-c.ls-o *{pointer-events:none}
.ls-f .ls-n .a3-lg{width:calc(28px + var(--g)*14px);height:calc(28px + var(--g)*14px)}
.ls-f .ls-ld .a3-lg{width:60px;height:60px}
.ls-f .ls-wn{top:42px;font-size:14px}
.ls-bar{display:flex;align-items:center;gap:16px;margin:14px 0 0;min-height:30px;font:500 11.5px/1 var(--mono)}
.ls-back{all:unset;cursor:pointer;white-space:nowrap;padding:7px 11px;border-radius:999px;background:#ededed;color:#0b0b0b}
.ls-back:focus-visible,.ls-open:focus-visible{outline:2px solid #fff;outline-offset:2px}
.ls-open{color:#bdbdbd;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.ls-open:hover{color:#fff}
.ls-ax{margin-left:auto;color:#3e3e3e}
/* arrive: the cloud condenses out of nothing */
html.vx-m .ls-g:not(.a3-in) .ls-n a{opacity:0;transform:translate(-50%,-50%) scale(.3)}
html.vx-m .ls-g.a3-in .ls-n a{animation:ls-in 1s cubic-bezier(.16,.84,.24,1) both;animation-delay:calc(var(--i)*70ms + var(--k)*45ms)}
html.vx-m .ls-g:not(.a3-in) .ls-n::before{opacity:0}
.ls-n::before{transition:opacity 1.2s .6s}
@keyframes ls-in{from{opacity:0;transform:translate(-50%,-50%) scale(.3)}}
/* readout */
.ls-rd{position:relative;margin:12px 0 0;border-top:1px solid #1d1d1d;padding-top:12px}
.ls-rd0{margin:0;font:500 12px/1.6 var(--mono);color:#5e5e5e;max-width:880px}.ls-rd0 b{color:#bdbdbd;font-weight:500}.ls-d2{display:none}
.a3-scores.ls{position:relative}
.ls-tip{position:absolute;left:0;top:0;z-index:30;width:300px;pointer-events:none;opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .16s,transform .16s,visibility 0s .16s}
.ls-tip.on{opacity:1;visibility:visible;transform:none;transition:opacity .16s,transform .16s}
.ls-rd1{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:'l t s' 'p p p';align-items:center;gap:6px 12px;padding:12px 14px;border-radius:10px;
 background:rgba(14,14,14,.94);box-shadow:0 0 0 1px #333,0 18px 40px rgba(0,0,0,.6),0 0 28px rgba(255,255,255,.05);backdrop-filter:blur(6px)}
.ls-rl{grid-area:l}.ls-rt{grid-area:t}.ls-rs{grid-area:s}.ls-rd1 .p{grid-area:p;white-space:normal!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;border-top:1px solid #222;padding-top:7px;margin-top:2px}
.ls-rl .a3-lg{width:38px;height:38px;border-radius:50%;box-shadow:0 0 0 1px #3a3a3a}.ls-rl .a3-lg img{filter:none;opacity:1}
.ls-rt{display:flex;flex-direction:column;gap:5px;min-width:0}
.ls-rt .n{font-weight:600;font-size:15px;line-height:1.15;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ls-rt .c{font:500 11.5px/1.2 var(--mono);color:#6a6a6a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ls-rs{white-space:nowrap}.ls-rs b{font:400 28px/1 Doto,var(--mono);color:#fff;text-shadow:0 0 18px rgba(255,255,255,.28)}.ls-rs small{font:500 11px/1 var(--mono);color:#505050;margin-left:2px}
.ls-rd1.ls-nos .ls-rs b{font:500 13px/1 var(--mono);text-shadow:none;color:#8a8a8a}.ls-rd1.ls-nos .ls-rs small{display:none}
.ls-rd1 .p{font:500 12px/1.4 var(--mono);color:#8a8a8a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(prefers-reduced-motion:reduce){.ls-tip,.ls-ns,.ls-n a,.ls-c,.ls-n::before{animation:none!important;transition:none!important}}
@media(max-width:1023.98px){.ls-g{height:640px;--u:.72px}.ls-n .a3-lg{width:calc(18px + var(--g)*8px);height:calc(18px + var(--g)*8px)}.ls-wn{font-size:11px;top:28px}.ls-ld .a3-lg{width:38px;height:38px}.ls-c h3{top:min(calc(var(--cy)*1% + var(--ly)*var(--u) - 28px),calc(var(--cy)*1% - 48px))}.ls-c.ls-f{--u:1.4px}}
@media(max-width:699.98px){
 .ls-g{height:340px;--u:.34px;background-size:auto,20px 20px,auto;margin:0 -6px}
 .ls-n .a3-lg{width:7px;height:7px}
 .ls-n .a3-lg img{opacity:0}
 .ls-n .a3-lg,.ls-n .a3-lg.a3-lgl{background:rgba(255,255,255,calc(.25 + var(--g)*.6))!important}
 .ls-ld .a3-lg{width:26px;height:26px}.ls-ld .a3-lg img{opacity:1}
 .ls-ld .a3-lg.a3-lgl{background:#e4e4e4!important}.ls-ld .a3-lg:not(.a3-lgl){background:#151515!important}
 .ls-cr{top:-11px}.ls-cr svg{width:13px;height:10px}
 .ls-wn{display:none}
 .ls-c h3{top:max(calc(var(--cy)*1% + var(--lyb)*var(--u) + 13px),calc(var(--cy)*1% + 24px))}
 .ls-z{font-size:10px;padding:3px 5px;color:#7a7a7a}
 .ls-c.ls-f{--cx:50!important;--cy:50!important;--u:1px}
 .ls-f .ls-n .a3-lg{width:calc(22px + var(--g)*8px);height:calc(22px + var(--g)*8px)}
 .ls-f .ls-n .a3-lg img{opacity:calc(.45 + var(--g)*.55)}
 .ls-f .ls-n .a3-lg:not(.a3-lgl){background:#151515!important}.ls-f .ls-n .a3-lg.a3-lgl{background:#e4e4e4!important}
 .ls-f .ls-ld .a3-lg{width:40px;height:40px}
 .ls-f .ls-wn{display:block;top:32px;font-size:12px}
 .ls-f h3{top:min(calc(var(--cy)*1% + var(--ly)*var(--u) - 26px),calc(var(--cy)*1% - 46px))}
 .ls-ax{display:none}
 .ls-bar{margin-top:10px;min-height:28px;gap:12px;font-size:11px}
 .ls-bar:has(.ls-back[hidden]){display:none}
 .ls-rd{margin-top:10px;padding-top:10px}
 .ls-d1{display:none}.ls-d2{display:inline}
 .ls-tip{width:min(280px,calc(100vw - 24px))}.ls-rd1{padding:10px 12px}.ls-rd1 .p{font-size:11px}
 .ls-rl .a3-lg{width:32px;height:32px}.ls-rt .n{font-size:14.5px}.ls-rt .c{font-size:10.5px}.ls-rs b{font-size:26px}
}

/* ===== go-live polish ===== */
/* tabs stay visible under the sticky header on every screen; phones and tablets keep the main tabs in view (no file tab) */
.th-a3 .ax-tabs{position:sticky!important;top:61px}
@media (max-width:1099.98px){.th-a3 .ax-file{display:none}}
/* dark logos read at rest: light tile */
.a3-lg.a3-lgl{background:#e4e4e4!important}
.a3-lg.a3-lgl img{opacity:1}
/* the background terminal lives in the band above Numpty and left of the bubble (sized by a3.js), fading at its edges */
.th-a3 .vx-ghost.a3-gh{inset:0 auto auto 0;bottom:auto;width:var(--gw,40%);height:var(--gh,0px);padding:56px 0 0 var(--gp,24px);opacity:.12;
  -webkit-mask-image:linear-gradient(90deg,#000 72%,transparent),linear-gradient(#000 62%,transparent);-webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,#000 72%,transparent),linear-gradient(#000 62%,transparent);mask-composite:intersect}
/* big hero numpty: same column, same layout. Oct 18: another ~13% smaller everywhere; on wide screens the column
   shrinks with it (--np-char), so the numpty + ask box group re-centres instead of leaving a gap */
@media (min-width:900px){:root:root .th-a3 .hp-hero.hp-v-7x{--np-char:calc(clamp(250px,min(27vw,44svh),380px)*.87)}
 :root:root .th-a3 .hp-v-7x>.t7-char{width:calc(var(--np-char)*.83);justify-self:center}}
@media (max-width:899.98px){:root:root .th-a3 .hp-v-9:not(.hp-v-9d)>.t7-char{width:100px}}
:root:root .th-a3 .hp-hero .t7-char>.t7-shadow{height:9px}
/* community pages: the signed-in / sign-in link the community app adds next to the weekly button */
.th-a3 .ax-hd>a:not(.btn){font:500 13px/1 var(--mono);color:#bdbdbd;text-decoration:none}
.th-a3 .ax-hd>a:not(.btn):hover{color:#fff}

/* round 1: tool of the week logo = scores-board tile, filled, grey -> colour on hover/focus */
.a3-w-tw .st-n .a3-twl{width:56px;height:56px;border-radius:12px;box-shadow:0 0 0 1px #2a2a2a;background:#1a1a1a;transition:box-shadow .3s}
.a3-w-tw .st-n .a3-twl img{opacity:.9}
.a3-w-tw .sticker:is(:hover,:focus-within) .a3-twl{box-shadow:0 0 0 1px #8a8a8a,0 0 14px rgba(255,255,255,.18)}
.a3-w-tw .sticker:is(:hover,:focus-within) .a3-twl img{filter:none;opacity:1}
@media (max-width:699.98px){.a3-w-tw .st-n .a3-twl{width:48px;height:48px;border-radius:10px}}
/* round 3 audit: one box language. legend boxes outside the panes (subscribe, disclosure, 404 log, community frames) use the pane tokens */
:root:root:root body.th-a3 :is(.digest.sm,.foot-disc,.cc-404,.cframe):not(.a3-p):not(.a3-p *){border:1px solid var(--a3-ln)!important;border-radius:10px!important;background:#0c0c0c!important;box-shadow:none!important;transition:border-color .3s}
:root:root:root body.th-a3 :is(.digest.sm,.foot-disc,.cc-404,.cframe):not(.a3-p):not(.a3-p *):is(:hover,:focus-within){border-color:#333!important}
:root:root:root body.th-a3 :is(.digest.sm,.foot-disc,.cc-404,.cframe):not(.a3-p):not(.a3-p *)>.cc-t{left:10px!important;top:0!important;transform:translateY(-50%);padding:0 8px 0 6px!important;font-size:11.5px!important;line-height:1.2!important;color:#bdbdbd!important;letter-spacing:.02em;background:var(--k-fff)!important;display:flex!important;align-items:center;gap:10px;margin:0!important}
:root:root:root body.th-a3 :is(.digest.sm,.foot-disc,.cc-404,.cframe):not(.a3-p):not(.a3-p *)>.cc-t::before{width:5px!important;height:5px!important;margin:0!important;box-shadow:0 0 0 4px var(--k-fff)!important;position:static!important;flex:none}
/* nested cards inside panes and frames: quiet hairline, soft corner, brighten on hover */
:root:root:root body.th-a3 :is(.card.panel,.card.mini,.lp .box,.glinks a,.glist>li,.cm-tap,.alt3 a):not(.ns,.sticker,.lt,.cc,.sheet,.tbl,.digest,.cframe){border:1px solid #2a2a2a!important;border-radius:6px!important;background:#101010!important;box-shadow:none!important;transition:border-color .25s,background .25s}
:root:root:root body.th-a3 :is(.card.panel,.card.mini,.glinks a,.glist>li,.cm-tap,.alt3 a):not(.ns,.sticker,.lt,.cc,.sheet,.tbl,.digest,.cframe):is(:hover,:focus-within){border-color:#6a6a6a!important;background:#141414!important;color:var(--tx)!important}
:root:root body.th-a3 .alt3{list-style:none!important;padding-left:0!important}
:root:root body.th-a3 .alt3>li{margin:0 0 8px!important}
/* long pages (guides, terms, privacy): the pane spans the grid like every other page; prose keeps a reading measure */
:root:root:root body.th-a3 main.lp:not(.ps):not(:has(.glist))>.a3-w-pg{max-width:none!important}
:root:root:root body.th-a3 main.lp:not(.ps):not(:has(.glist))>.a3-w-pg>:is(h1,h2,h3,p:not(.a3-lb),ul,ol,dl,.box,blockquote,.lp-meta){max-width:760px}
/* headings never leave one word on its own line */
.th-a3 :is(h1,h2,h3){text-wrap:balance}
/* hero pick chip sits on the text baseline; its logo is greyscale until hover like every other logo */
:root:root .th-a3 .t7-pick{display:inline-block!important;line-height:1.25;vertical-align:baseline!important}
:root:root .th-a3 .t7-pick img{display:inline-block!important;vertical-align:-2px;margin-right:5px;filter:grayscale(1) contrast(1.05);opacity:.9;transition:filter .3s,opacity .3s}
:root:root .th-a3 .t7-pick:is(:hover,:focus-visible) img{filter:none;opacity:1}
/* 404: '#' stays on the heading line and the heading fits two lines */
:root:root body.th-a3 main.center>h1{flex-direction:row!important;flex-wrap:nowrap!important;align-items:baseline!important;font-size:clamp(34px,6.4vw,76px)!important;line-height:1.05!important}
/* footer links: separators drawn by css, the one at a line end is hidden (js marks it) */
.th-a3 .fl.a3-fl{display:flex;flex-wrap:wrap;row-gap:4px}
.th-a3 .fl.a3-fl>.nw{position:relative;padding-right:22px}
.th-a3 .fl.a3-fl>.nw::after{content:"\00b7";position:absolute;right:8px;top:50%;transform:translateY(-50%);line-height:1;color:#6a6a6a}
.th-a3 .fl.a3-fl>.nw.a3-le{padding-right:22px}
.th-a3 .fl.a3-fl>.nw.a3-le::after,.th-a3 .fl.a3-fl>.nw:last-child::after{content:none}
/* tool of the week: pick facts fill the pane, review link sits at the foot */
.a3-w-tw .sticker{display:flex!important;flex-direction:column;height:100%}
.a3-w-tw .a3-tf{margin:18px 0 0!important;padding:0;list-style:none;font:12.5px/1.5 "JetBrains Mono",ui-monospace,monospace;color:#bdbdbd}
.a3-w-tw .a3-tf>li{display:grid;grid-template-columns:9ch minmax(0,1fr);gap:12px;padding:9px 0;border-top:1px dashed #262626;margin:0}
.a3-w-tw .a3-tf>li:last-child{border-bottom:1px dashed #262626}
.a3-w-tw .a3-tf>li>span{color:#7a7a7a}
.a3-w-tw .a3-tf>li>b{color:#ededed;font-weight:600}
.a3-w-tw .a3-tf .a3-tfb{display:block;height:6px;margin-top:8px;background:repeating-linear-gradient(90deg,#ededed 0 calc(10% - 3px),transparent calc(10% - 3px) 10%);-webkit-mask:linear-gradient(90deg,#000 var(--s),rgba(0,0,0,.18) var(--s));mask:linear-gradient(90deg,#000 var(--s),rgba(0,0,0,.18) var(--s))}
.a3-w-tw .sticker>.lnk{margin-top:auto!important;padding-top:22px;align-self:flex-start}
@media (max-width:699.98px){.a3-w-tw .a3-tf{display:none}}
/* tablet: tool of the week and the weekly no longer sit alone at half width; the pick reads across two columns */
@media(min-width:700px) and (max-width:1099.98px){
 .th-a3 .a3-grid>.a3-dc>.a3-w-tw,.th-a3 .a3-grid .a3-w-tw,.th-a3 .a3-grid>.a3-w-dg{grid-column:1/-1!important}
 .a3-w-tw .sticker{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:40px;align-content:start}
 .a3-w-tw .sticker>:not(.a3-tf){grid-column:1}
 .a3-w-tw .sticker>.a3-tf{grid-column:2;grid-row:1/span 4;margin:0!important;align-self:start}
 .a3-w-tw .sticker>.lnk{margin-top:6px!important;padding-top:0}
}
:root:root:root body.th-a3 .a3-p p.unc{border:1px solid #2a2a2a!important;border-radius:6px!important;background:#101010!important;box-shadow:none!important}
@media(max-width:640px){:root:root:root body.th-a3 .lp .a3-p tbody tr{border:1px solid #2a2a2a!important;border-radius:6px!important;background:#101010!important}}
@media(min-width:641px){:root:root body.th-a3 .lp .a3-p :is(td[data-l="checked"],td[data-l="tool"]){white-space:nowrap}}
:root:root body.th-a3 main.center>h1{font-size:clamp(34px,4.6vw,60px)!important}
/* outer frames line their text up with the pane content edge */
@media(min-width:700px){:root:root:root body.th-a3 :is(.digest.sm,.foot-disc):not(.a3-p):not(.a3-p *){padding-left:32px!important;padding-right:32px!important}}
/* pick verdict: two lines on phones instead of a one-line cut */
:root:root:root body.th-a3 section.pick>p.why{-webkit-line-clamp:2;line-clamp:2}
:root:root:root:root body.th-a3 .a3-w-ps>p{border:0!important;background:none!important;padding:0!important;border-radius:0!important}
/* stacked hero on tablets: the ask box lines up with the panes below (24px gutter, not the 16px phone one) */
@media(min-width:641px) and (max-width:899.98px){:root:root body.th-a3 section.hero{padding-left:24px!important;padding-right:24px!important}}
.th-a3 :is(.glist>li>a,.glinks a,.alt3 a,.cm-tap h3,.lt-nm>a){text-wrap:balance}
/* prices are never cut off: price cells wrap at word boundaries (no ellipsis), columns give the price the room */
:root:root body.th-a3 .a3-prices td,:root:root body.th-a3 .a3-prices small{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:normal;word-break:normal}
:root:root body.th-a3 .a3-prices th:nth-child(1){width:25%!important}
:root:root body.th-a3 .a3-prices th:nth-child(2){width:24%!important}
:root:root body.th-a3 .a3-prices th:nth-child(3){width:auto!important}
:root:root body.th-a3 .a3-prices .a3-pp b{display:block;font-weight:600;white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
:root:root body.th-a3 .a3-prices .a3-pp small{margin-top:3px;line-height:1.45}
:root:root body.th-a3 .a3-prices .a3-pm{color:#bdbdbd;white-space:nowrap;text-decoration:underline;text-decoration-color:#444;text-underline-offset:2px}
:root:root body.th-a3 .a3-prices .a3-pm:hover{color:#fff;text-decoration-color:#fff}
@media(max-width:899.98px){:root:root body.th-a3 .a3-prices th:nth-child(1){width:28%!important}:root:root body.th-a3 .a3-prices th:nth-child(2){width:26%!important}}
/* league table one-liners carry prices too: show them whole */
:root:root:root body.th-a3 .lt-nm small{display:block!important;-webkit-line-clamp:unset!important;line-clamp:none!important;overflow:visible!important}
/* space cloud hover card: the price line wraps in full (the card re-measures before it flips) */
:root:root body.th-a3 .ls-rd1 .p{display:block!important;-webkit-line-clamp:unset!important;line-clamp:none!important;overflow:visible!important;text-overflow:clip!important;white-space:normal!important}
