:root{--paper:#e6e3d9;--paper-raised:#efede6;--paper-sunk:#ddd8ce;--sunk-hover:#d2ccc0;--ink:#22130d;--ink-muted:#6b5f57;--ink-muted-strong:#5c514a;--line:#c9c2b5;--signal:#c4381b;--signal-hover:#a92f15;--signal-press:#922810;--signal-bright:#f0472e;--signal-ring:rgba(196,56,27,0.25);--cab:#2b1613;--cab-raised:#361d19;--cab-tile:#3a221e;--cab-line:#4a2f2a;--cab-border:#5a3d37;--cab-muted:#a8958e;--pass:#2f7a55;--white:#ffffff;--contact-shadow:rgba(34,19,13,0.18);--header-glass:rgba(239,237,230,0.92);--font-display:"Inter Tight","Inter",system-ui,sans-serif;--font-body:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;--fs-display:clamp(2.75rem,1.6rem + 3.6vw,4.75rem);--fs-h1:clamp(2.25rem,1.5rem + 2.4vw,3.5rem);--fs-statement:clamp(2rem,1.3rem + 2.2vw,3.5rem);--fs-h2:clamp(1.75rem,1.4rem + 1.1vw,2.25rem);--fs-h3:clamp(1.3125rem,1.2rem + 0.4vw,1.5rem);--fs-title-row:clamp(1.25rem,1.1rem + 0.5vw,1.5rem);--fs-lede:clamp(1.3125rem,1.1rem + 0.75vw,1.75rem);--fs-article:clamp(1.0625rem,1rem + 0.2vw,1.125rem);--fs-body:1rem;--fs-ui-strong:1.125rem;--fs-button:0.9375rem;--fs-small:0.875rem;--fs-fine:0.8125rem;--fs-label:0.75rem;--fs-badge:0.6875rem;--fs-mono:0.9375rem;--fs-score:1.5rem;--fs-score-xl:3rem;--lh-display:1;--lh-h1:1.06;--lh-h2:1.12;--lh-h3:1.25;--lh-article:1.65;--lh-body:1.55;--lh-tight:1.3;--track-display:-0.035em;--track-h1:-0.03em;--track-h2:-0.02em;--track-h3:-0.01em;--track-label:0.08em;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--s-9:96px;--s-10:128px;--s-11:160px;--r-sm:2px;--r-md:4px;--r-lg:8px;--r-pill:999px;--dur-press:120ms;--dur-panel:180ms;--dur-enter:320ms;--dur-meter:480ms;--dur-draw:600ms;--dur-sheen:1.2s;--stagger:40ms;--ease-enter:cubic-bezier(0.2,0.7,0.2,1);--ease-state:cubic-bezier(0.4,0,0.2,1);--content:1360px;--gutter:40px;--col-gap:24px;--header-h:64px;--rail:296px;--notes:256px;--text:680px;--rail-gap:64px;--measure:68ch}@media (max-width:720px){:root{--gutter:20px;--col-gap:16px}}.sb{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);font-feature-settings:"ss01","cv11";min-height:100vh;display:flex;flex-direction:column;position:relative}body:has(.sb){background:var(--paper)}.sb main{flex:1 0 auto}.sb img{max-width:100%;height:auto}.sb h1,.sb h2,.sb h3,.sb h4{font-family:var(--font-display);font-weight:600;margin:0;text-wrap:balance}.sb p{margin:0}.sb ::selection{background:var(--signal);color:var(--white)}.sb :focus-visible{outline:2px solid var(--signal);outline-offset:2px}:where(.sb) a{transition:color var(--dur-press) var(--ease-state)}.mono{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.label{font-family:var(--font-mono);font-size:var(--fs-label);font-weight:500;line-height:var(--lh-tight);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-muted)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip-link{position:absolute;left:var(--s-4);top:-100px;z-index:100;background:var(--ink);color:var(--paper);padding:var(--s-2) var(--s-4);border-radius:var(--r-md)}.skip-link:focus-visible{top:var(--s-2)}.text-link{color:var(--signal);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.text-link:hover{color:var(--signal-hover);text-decoration-thickness:2px}.text-link:active{color:var(--signal-press)}.band{display:grid;grid-template-columns:[full-start] minmax(var(--gutter),1fr) [content-start] minmax(0,var(--content)) [content-end] minmax(var(--gutter),1fr) [full-end];position:relative}.band>*{grid-column:content}.band>.bleed{grid-column:full}.cols{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-column-gap:var(--col-gap);column-gap:var(--col-gap)}.band--paper{background:var(--paper)}.band--sunk{background:var(--paper-sunk)}.band--cab{background:var(--cab);color:var(--paper)}.band--rule{border-top:1px solid var(--line)}.measure{position:absolute;inset:0;pointer-events:none;overflow:hidden;grid-column:full}.measure__grid{position:absolute;top:0;bottom:0;inset-inline:max(var(--gutter),calc((100% - var(--content)) / 2))}.measure__h,.measure__v{position:absolute;background:var(--line)}.measure__v{top:0;bottom:0;width:1px;transform-origin:50% var(--cross-y,60%);animation:draw-v var(--dur-draw) var(--ease-enter) both}.measure__v--0{left:0}.measure__v--3{left:calc((100% - 11 * var(--col-gap)) / 12 * 3 + 2.5 * var(--col-gap))}.measure__v--9{left:calc((100% - 11 * var(--col-gap)) / 12 * 9 + 8.5 * var(--col-gap))}.measure__v--12{right:0}.measure__h{height:1px;top:var(--cross-y,60%);left:0;right:0;transform-origin:50% 50%;animation:draw-h var(--dur-draw) var(--ease-enter) both}.measure__x{position:absolute;top:var(--cross-y,60%);width:13px;height:13px;margin:-6px 0 0 -6px;animation:cross-in var(--dur-panel) var(--ease-enter) var(--dur-draw) both}.measure__x:after,.measure__x:before{content:"";position:absolute;background:var(--ink)}.measure__x:before{left:6px;top:0;width:1px;height:13px}.measure__x:after{top:6px;left:0;height:1px;width:13px}.measure__x--0{left:0}.measure__x--3{left:calc((100% - 11 * var(--col-gap)) / 12 * 3 + 2.5 * var(--col-gap))}.measure__x--9{left:calc((100% - 11 * var(--col-gap)) / 12 * 9 + 8.5 * var(--col-gap))}.measure__x--12{left:calc(100% - 1px)}.measure__cap{position:absolute;top:var(--cross-y,60%);left:var(--s-3);transform:translateY(calc(-100% - 6px));font-family:var(--font-mono);font-size:var(--fs-badge);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-muted);white-space:nowrap}@keyframes draw-v{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes draw-h{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes cross-in{0%{transform:scale(0)}to{transform:scale(1)}}.measure--article .measure__v--3,.measure--article .measure__x--3{left:calc(var(--rail) + var(--rail-gap) / 2)}.measure--article .measure__v--9,.measure--article .measure__x--9{display:none}@media (max-width:1240px){.measure--article .measure__v--3,.measure--article .measure__x--3{left:calc(var(--rail) + var(--s-7) / 2)}}@media (max-width:720px){.measure__grid{inset-inline:calc(var(--gutter) / 2)}.measure__cap,.measure__v--3,.measure__v--9,.measure__x--0,.measure__x--12,.measure__x--3{display:none}.measure__x--9{left:calc(100% - 24px)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);height:44px;padding:0 18px;border:0;border-radius:var(--r-md);font-family:var(--font-body);font-size:var(--fs-button);font-weight:500;line-height:1;white-space:nowrap;cursor:pointer;transition:background-color var(--dur-press) var(--ease-state),color var(--dur-press) var(--ease-state),border-color var(--dur-press) var(--ease-state),transform var(--dur-press) var(--ease-state)}.btn--sm{height:36px;padding:0 14px}.btn--block{width:100%}.btn--primary{background:var(--signal);color:var(--white)}.btn--primary:hover{background:var(--signal-hover)}.btn--primary:active{background:var(--signal-press);transform:translateY(1px)}.sb .btn--primary:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.btn--secondary{background:var(--paper-sunk);color:var(--ink)}.btn--secondary:hover{background:var(--sunk-hover)}.btn--secondary:active{transform:translateY(1px);background:var(--line)}.band--sunk .btn--secondary{background:var(--paper-raised)}.band--sunk .btn--secondary:hover{background:var(--paper)}.btn--ghost{background:transparent;color:var(--paper);box-shadow:inset 0 0 0 1px var(--paper)}.btn--ghost:hover{background:var(--paper);color:var(--cab)}.btn--ghost:active{transform:translateY(1px)}.sb .btn--ghost:focus-visible{outline:2px solid var(--signal-bright);outline-offset:2px}.btn .arrow{transition:transform var(--dur-press) var(--ease-state)}.btn:hover .arrow,a:hover>.arrow{transform:translateX(3px)}.icon-btn{display:inline-grid;place-items:center;width:44px;height:44px;border:1px solid transparent;border-radius:var(--r-md);background:transparent;color:var(--ink);cursor:pointer;transition:background-color var(--dur-press) var(--ease-state),border-color var(--dur-press) var(--ease-state),transform var(--dur-press) var(--ease-state)}.icon-btn:hover{background:var(--paper-sunk);border-color:var(--line)}.icon-btn:active{transform:translateY(1px)}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:40;height:var(--header-h);background:var(--paper);border-bottom:1px solid var(--line);transition:background-color var(--dur-panel) var(--ease-state),-webkit-backdrop-filter var(--dur-panel) var(--ease-state);transition:background-color var(--dur-panel) var(--ease-state),backdrop-filter var(--dur-panel) var(--ease-state);transition:background-color var(--dur-panel) var(--ease-state),backdrop-filter var(--dur-panel) var(--ease-state),-webkit-backdrop-filter var(--dur-panel) var(--ease-state)}.site-header[data-scrolled=true]{background:var(--header-glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.site-header__inner{height:100%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;grid-gap:var(--s-5);gap:var(--s-5)}.wordmark{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:1.25rem;font-weight:600;letter-spacing:-.02em;color:var(--ink);min-height:44px;justify-self:start}.wordmark img{width:28px;height:28px;border-radius:var(--r-md);transition:transform var(--dur-press) var(--ease-state)}.wordmark:hover img{transform:rotate(90deg)}.wordmark:active img{transform:rotate(90deg) scale(.94)}.nav{display:flex;align-items:center;gap:var(--s-2)}.nav-pill{position:relative}.nav-pill__btn{display:inline-flex;align-items:center;gap:var(--s-3);height:40px;padding:0 var(--s-3) 0 var(--s-4);background:var(--paper-sunk);border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink);font-family:var(--font-mono);font-size:var(--fs-small);cursor:pointer;transition:background-color var(--dur-press) var(--ease-state),border-color var(--dur-press) var(--ease-state)}.nav-pill__btn:hover{background:var(--sunk-hover);border-color:var(--ink-muted)}.nav-pill__btn:active{transform:translateY(1px)}.nav-pill__btn svg{transition:transform var(--dur-panel) var(--ease-state)}.nav-pill__btn[aria-expanded=true] svg{transform:rotate(180deg)}.nav-panel{position:absolute;top:calc(100% + var(--s-2));left:50%;width:420px;margin-left:-210px;background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s-2);box-shadow:0 12px 32px var(--contact-shadow);transform-origin:top center;animation:panel-in var(--dur-panel) var(--ease-enter)}.nav-panel a{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-4);padding:var(--s-3);border-radius:var(--r-sm);transition:background-color var(--dur-press) var(--ease-state)}.nav-panel a:hover{background:var(--paper-sunk)}.nav-panel a:active{background:var(--sunk-hover)}.nav-panel .count{font-family:var(--font-mono);font-size:var(--fs-label);color:var(--ink-muted)}.nav-panel__all{border-top:1px solid var(--line);margin-top:var(--s-2);padding-top:var(--s-2)}@keyframes panel-in{0%{transform:translateY(-4px) scaleY(.96)}to{transform:none}}.nav-link{display:inline-flex;align-items:center;height:40px;padding:0 var(--s-3);border-radius:var(--r-md);font-size:var(--fs-button);font-weight:500;position:relative;transition:background-color var(--dur-press) var(--ease-state)}.nav-link:after{content:"";position:absolute;left:var(--s-3);right:var(--s-3);bottom:4px;height:3px;background:var(--signal);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-panel) var(--ease-state)}.nav-link:hover{background:var(--paper-sunk)}.nav-link:hover:after,.nav-link[aria-current=page]:after{transform:scaleX(1)}.nav-link:active{background:var(--sunk-hover)}.header-actions{display:flex;align-items:center;gap:var(--s-2);justify-self:end}.menu-toggle{display:none}.sheet{position:fixed;inset:var(--header-h) 0 0 0;z-index:39;background:var(--paper);overflow-y:auto;padding:var(--s-4) var(--gutter) var(--s-8);animation:sheet-in var(--dur-panel) var(--ease-enter)}.sheet a.sheet__row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);min-height:56px;border-bottom:1px solid var(--line);font-size:var(--fs-ui-strong);font-weight:500;transition:background-color var(--dur-press) var(--ease-state)}.sheet a.sheet__row:active,.sheet a.sheet__row:hover{background:var(--paper-sunk)}.sheet .btn,.sheet__group{margin-top:var(--s-6)}@keyframes sheet-in{0%{transform:translateY(-8px)}to{transform:none}}@media (max-width:960px){.site-header__inner{grid-template-columns:1fr auto}.header-cta,.nav{display:none}.menu-toggle{display:inline-grid}}.frame{margin:0;background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}.frame__bar{display:flex;align-items:center;gap:6px;height:24px;padding:0 var(--s-3);border-bottom:1px solid var(--line);background:var(--paper-sunk)}.frame__bar i{width:7px;height:7px;border-radius:var(--r-pill);background:var(--line)}.frame__bar span{margin-left:var(--s-2);font-family:var(--font-mono);font-size:var(--fs-badge);color:var(--ink-muted-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.frame__mat{padding:var(--s-2)}.frame__mat img{display:block;margin-inline:auto;border-radius:var(--r-sm)}.frame--tile{background:var(--paper-sunk)}.frame--tile .frame__mat{aspect-ratio:var(--tile-ratio,4/3);display:grid;place-items:center;padding:var(--s-1)}.frame--tile .frame__mat img{width:100%;height:100%;object-fit:contain}.frame--cab,.on-cab .frame{background:var(--cab-tile);border-color:var(--cab-border)}.on-cab .frame img{filter:brightness(.88);transition:filter var(--dur-press) var(--ease-state)}.on-cab .frame:hover img,.on-cab a:hover .frame img{filter:brightness(1)}.score{display:inline-flex;flex-direction:column;gap:6px}.score__num{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:var(--fs-score);line-height:1;color:var(--ink)}.score__num small{font-size:var(--fs-small);color:var(--ink-muted);margin-left:2px}.meter{display:block;width:64px;height:4px;background:var(--line);overflow:hidden}.meter i{display:block;height:100%;background:var(--signal-bright);transform-origin:left;transform:scaleX(var(--v,0));transition:transform var(--dur-meter) var(--ease-enter)}.score--xl .score__num{font-size:var(--fs-score-xl)}.score--xl .meter{width:100%;max-width:160px;height:6px}.on-cab .score__num{color:var(--paper)}.on-cab .score__num small{color:var(--cab-muted)}.on-cab .meter{background:var(--cab-line)}.badge{display:inline-block;font-family:var(--font-mono);font-size:var(--fs-badge);font-weight:500;letter-spacing:var(--track-label);text-transform:uppercase;line-height:1.2;padding:3px 7px;border:1px solid var(--ink);border-radius:var(--r-sm);white-space:nowrap}.badge--top{border-color:var(--signal);color:var(--signal)}.on-cab .badge{border-color:var(--cab-muted);color:var(--paper);padding:2px 6px}.cab-card{position:relative;display:grid;grid-template-columns:64px minmax(0,1fr);grid-gap:var(--s-3);gap:var(--s-3);align-items:start;padding:var(--s-3);background:var(--cab);color:var(--paper);border-radius:var(--r-md);transition:background-color var(--dur-press) var(--ease-state)}.cab-card:hover{background:var(--cab-raised)}.cab-card:active{background:var(--cab-tile)}.sb .cab-card:focus-visible{outline:2px solid var(--signal-bright);outline-offset:2px}.cab-card .frame--tile .frame__mat{--tile-ratio:1/1;padding:2px}.cab-card .frame{border-radius:var(--r-sm)}.cab-card__body{display:grid;grid-gap:6px;gap:6px;padding-right:32px;min-width:0}.cab-card__name{font-size:var(--fs-body);font-weight:600;line-height:var(--lh-tight)}.cab-card__spec{font-family:var(--font-mono);font-size:var(--fs-small);color:var(--cab-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cab-card__arrow{position:absolute;top:var(--s-3);right:var(--s-3);display:grid;place-items:center;width:24px;height:24px;border:1px solid var(--cab-border);border-radius:var(--r-sm);transition:background-color var(--dur-press) var(--ease-state),border-color var(--dur-press) var(--ease-state)}.cab-card:hover .cab-card__arrow{background:var(--signal-bright);border-color:var(--signal-bright);color:var(--cab)}.hero{--cross-y:60%;min-height:max(680px,min(calc(88vh - var(--header-h)),860px));overflow:hidden}.hero__grid{position:relative;z-index:1;grid-template-rows:auto 1fr;row-gap:var(--s-6);padding-top:var(--s-9);padding-bottom:var(--s-7)}.hero__head{grid-column:3/11;text-align:center;display:grid;justify-items:center;grid-gap:var(--s-5);gap:var(--s-5)}.hero__title{font-size:var(--fs-display);line-height:var(--lh-display);letter-spacing:var(--track-display)}.hero__title span{display:block}.hero__actions{display:flex;gap:var(--s-2);flex-wrap:wrap;justify-content:center}.hero__reassure{display:inline-flex;align-items:center;gap:var(--s-2);font-family:var(--font-mono);font-size:var(--fs-fine);color:var(--ink-muted)}.hero__lede{grid-column:1/5;grid-row:2;align-self:end;display:grid;grid-gap:var(--s-3);gap:var(--s-3)}.hero__lede p{font-family:var(--font-display);font-size:var(--fs-lede);font-weight:500;line-height:1.25;letter-spacing:-.015em;max-width:22ch}.hero__product{grid-column:5/9;grid-row:2;align-self:end;position:relative;display:block;transition:transform var(--dur-panel) var(--ease-state)}.hero__product:after{content:"";position:absolute;left:8%;right:8%;bottom:-18px;height:28px;background:radial-gradient(ellipse at center,var(--contact-shadow),transparent 70%);z-index:-1}.hero__product:hover{transform:translateY(-2px)}.hero__product:active{transform:none}.hero__product .frame{box-shadow:0 24px 48px -24px var(--contact-shadow)}.hero__product figcaption{margin-top:var(--s-3);display:flex;justify-content:space-between;gap:var(--s-3);font-family:var(--font-mono);font-size:var(--fs-label);color:var(--ink-muted)}.hero__cards{grid-column:9/13;grid-row:2;align-self:end;display:grid;grid-gap:var(--s-2);gap:var(--s-2)}@media (max-width:1100px){.hero__head{grid-column:1/-1}.hero__lede{grid-column:1/7;grid-row:3}.hero__product{grid-column:3/11;grid-row:2}.hero__cards{grid-column:7/13;grid-row:3}}@media (max-width:720px){.hero{--cross-y:46%;min-height:0}.hero__grid{display:flex;flex-direction:column;gap:var(--s-6);padding-top:var(--s-7)}.hero__head{text-align:left;justify-items:start}.hero__actions{flex-direction:column;width:100%}.hero__actions .btn{width:100%}.hero__product{width:80%;align-self:center}.hero__cards,.hero__lede{align-self:stretch}.hero__cards{justify-content:flex-start;display:flex;gap:var(--s-3);overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(-1 * var(--gutter));padding:0 var(--gutter) var(--s-2);scroll-padding-inline:var(--gutter)}.hero__cards .cab-card{flex:0 0 280px;scroll-snap-align:start}}.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-4);flex-wrap:wrap;margin-bottom:var(--s-7)}.section-head h2{font-size:var(--fs-h2);line-height:var(--lh-h2);letter-spacing:var(--track-h2);max-width:24ch}.section-head__meta{display:flex;align-items:baseline;gap:var(--s-5);flex-wrap:wrap;font-family:var(--font-mono);font-size:var(--fs-small);color:var(--ink-muted)}.pad-128{padding-block:var(--s-10)}.pad-160{padding-block:var(--s-11)}.pad-96{padding-block:var(--s-9)}.pad-64{padding-block:var(--s-8)}@media (max-width:720px){.pad-128,.pad-160{padding-block:var(--s-8)}.pad-96{padding-block:var(--s-7)}.pad-64{padding-block:var(--s-6)}.section-head{margin-bottom:var(--s-5)}}.rank-table{width:100%;border-collapse:collapse;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.rank-table thead th{position:-webkit-sticky;position:sticky;top:var(--header-h);z-index:2;background:var(--paper);text-align:left;font-family:var(--font-mono);font-size:var(--fs-label);font-weight:500;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-muted);padding:var(--s-3) var(--s-3);border-bottom:1px solid var(--ink);white-space:nowrap}.rank-table td{padding:var(--s-5) var(--s-3);border-bottom:1px solid var(--line);vertical-align:middle}.rank-table tbody tr{transition:background-color var(--dur-press) var(--ease-state)}.rank-table tbody tr:hover{background:var(--paper-raised)}.rank-table tr.is-top td:first-child{box-shadow:inset 3px 0 0 var(--signal)}.rank-table .c-rank{width:56px;font-family:var(--font-mono);font-size:var(--fs-mono);padding-left:var(--s-4)}.rank-table .c-tool{min-width:320px}.rank-table .c-cat{width:200px}.rank-table .c-maker{width:140px}.rank-table .c-price{width:120px}.rank-table .c-score{width:130px}.rank-table .c-act{width:150px;text-align:right}.mono-cell{font-family:var(--font-mono);font-size:var(--fs-mono);line-height:var(--lh-tight)}.tool{display:grid;grid-template-columns:72px minmax(0,1fr);grid-gap:var(--s-4);gap:var(--s-4);align-items:center}.tool .frame--tile .frame__mat{padding:2px}.tool__name{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-2);font-size:var(--fs-ui-strong);font-weight:600;line-height:var(--lh-tight)}.tool__name a:hover{color:var(--signal)}.tool__name a:active{color:var(--signal-press)}.tool__desc{margin-top:4px;font-size:var(--fs-small);line-height:1.45;color:var(--ink-muted)}.cat-link{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:3px;transition:-webkit-text-decoration-color var(--dur-press) var(--ease-state);transition:text-decoration-color var(--dur-press) var(--ease-state);transition:text-decoration-color var(--dur-press) var(--ease-state),-webkit-text-decoration-color var(--dur-press) var(--ease-state)}.cat-link:hover{-webkit-text-decoration-color:var(--signal);text-decoration-color:var(--signal)}.cat-link:active{color:var(--signal-press)}@media (max-width:1180px){.rank-table,.rank-table tbody{display:block}.rank-table thead{display:none}.rank-table tbody tr{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1fr) auto;grid-template-areas:"rank tool tool score" "cat cat maker price" "act act act act";grid-column-gap:var(--s-3);column-gap:var(--s-3);grid-row-gap:var(--s-4);row-gap:var(--s-4);padding:var(--s-5) 0;border-bottom:1px solid var(--line)}.rank-table tr.is-top{box-shadow:inset 3px 0 0 var(--signal);padding-left:var(--s-3)}.rank-table tr.is-top td:first-child{box-shadow:none}.rank-table td{padding:0;border:0;width:auto;min-width:0}.rank-table .c-rank{grid-area:rank;padding:0;width:auto}.rank-table .c-tool{grid-area:tool;min-width:0}.rank-table .c-cat{grid-area:cat}.rank-table .c-maker{grid-area:maker}.rank-table .c-price{grid-area:price}.rank-table .c-score{grid-area:score}.rank-table .c-act{grid-area:act;text-align:left}.rank-table .c-act .btn{width:100%}.rank-table td[data-label]:before{content:attr(data-label);display:block;margin-bottom:4px;font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-muted)}.rank-table td[data-label]{padding-top:var(--s-3);border-top:1px solid var(--line)}}@media (max-width:720px){.tool{grid-template-columns:56px minmax(0,1fr);gap:var(--s-3)}.tool__name{font-size:var(--fs-body)}.rank-table tbody tr{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"rank tool score" "cat cat cat" "maker maker price" "act act act"}}.verdict-band .cols{align-items:start}.verdict-band__statement{grid-column:1/6;display:grid;grid-gap:var(--s-6);gap:var(--s-6);justify-items:start}.verdict-band__statement h2{font-size:var(--fs-statement);line-height:1.04;letter-spacing:var(--track-h1)}.verdict-band__statement p{color:var(--cab-muted);font-size:var(--fs-ui-strong);max-width:40ch}.tier-table{grid-column:7/13;width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:var(--fs-mono)}.tier-table td,.tier-table th{text-align:left;padding:var(--s-3) var(--s-2);border-bottom:1px solid var(--cab-line);vertical-align:top}.tier-table thead th{font-size:var(--fs-label);font-weight:500;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--cab-muted);border-bottom-color:var(--paper)}.tier-table tbody th{font-weight:400;color:var(--paper);width:40%}.tier-table .yes{color:var(--paper)}.tier-table .yes svg{color:var(--signal-bright)}.tier-table .no{color:var(--cab-muted)}@media (max-width:960px){.tier-table,.verdict-band__statement{grid-column:1/-1}.tier-table{margin-top:var(--s-7);font-size:var(--fs-small)}}.ruled{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:var(--s-7) var(--col-gap);gap:var(--s-7) var(--col-gap)}.ruled__item{display:grid;align-content:start;grid-gap:var(--s-3);gap:var(--s-3);padding-top:var(--s-4);border-top:1px solid var(--ink);position:relative;transition:border-color var(--dur-press) var(--ease-state)}.ruled__item:before{content:"";position:absolute;top:-1px;left:0;width:100%;height:3px;background:var(--signal);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-panel) var(--ease-state)}.ruled__item:focus-visible:before,.ruled__item:hover:before{transform:scaleX(1)}.ruled__item:active h3{color:var(--signal-press)}.ruled__item h3{font-size:1.25rem;line-height:var(--lh-h3);letter-spacing:var(--track-h3);font-weight:600}.ruled__count{font-family:var(--font-mono);font-size:var(--fs-small)}.ruled__count,.ruled__item p{color:var(--ink-muted-strong)}.ruled__item p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media (max-width:1100px){.ruled{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.ruled{grid-template-columns:minmax(0,1fr);gap:var(--s-6)}}.ed-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}.ed-row{border-bottom:1px solid var(--line)}.ed-row>a{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-column-gap:var(--col-gap);column-gap:var(--col-gap);padding:var(--s-6) 0;align-items:start;transition:background-color var(--dur-press) var(--ease-state)}.ed-row>a:hover{background:var(--paper-raised)}.ed-row>a:active{background:var(--paper-sunk)}.ed-row__meta{grid-column:1/3;padding-left:var(--s-2);font-family:var(--font-mono);font-size:var(--fs-small);color:var(--ink-muted)}.ed-row__meta,.ed-row__text{display:grid;grid-gap:var(--s-3);gap:var(--s-3)}.ed-row__text{grid-column:3/9}.ed-row__text h3{font-size:var(--fs-title-row);line-height:var(--lh-h3);letter-spacing:var(--track-h3);transition:color var(--dur-press) var(--ease-state)}.ed-row>a:hover h3{color:var(--signal)}.ed-row__text p{color:var(--ink-muted);max-width:62ch}.ed-row__best{font-size:var(--fs-small);color:var(--ink)}.ed-row__best b{font-family:var(--font-mono);font-size:var(--fs-label);font-weight:500;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-muted);margin-right:var(--s-2)}.ed-row__score{grid-column:9/10}.ed-row__thumb{grid-column:10/13;padding-right:var(--s-2)}@media (max-width:860px){.ed-row>a{display:flex;flex-direction:column;gap:var(--s-3)}.ed-row__thumb{order:-2;width:100%;padding:0}.ed-row__meta{order:-1;display:flex;flex-wrap:wrap;gap:var(--s-3);padding:0}}.cta-row{align-items:center;row-gap:var(--s-5)}.cta-row__text{grid-column:1/8;display:grid;grid-gap:var(--s-2);gap:var(--s-2)}.cta-row__text h2{font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--track-h3)}.cta-row__text p{color:var(--ink-muted);max-width:64ch}.cta-row__form{grid-column:8/13}@media (max-width:960px){.cta-row__form,.cta-row__text{grid-column:1/-1}}.field-row{display:flex;gap:var(--s-2)}.field{flex:1 1;min-width:0;height:44px;padding:0 var(--s-4);background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink);font-size:var(--fs-body);transition:border-color var(--dur-press) var(--ease-state),box-shadow var(--dur-press) var(--ease-state)}.field::placeholder{color:var(--ink-muted)}.field:hover{border-color:var(--ink-muted)}.field:focus,.sb .field:focus-visible{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px var(--signal-ring)}.field[aria-invalid=true]{border-color:var(--signal)}.form-msg{display:block;margin-top:var(--s-2);font-size:var(--fs-small);color:var(--ink-muted)}.form-msg--error{color:var(--signal)}.form-msg--error:before{content:"! ";font-family:var(--font-mono)}@media (max-width:420px){.field-row{flex-direction:column}}.list-head{--cross-y:calc(100% - 7px);min-height:240px}.list-head__grid{position:relative;z-index:1;padding-block:var(--s-8) var(--s-7);align-items:end;row-gap:var(--s-5)}.crumbs{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:var(--s-2);font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-muted)}.crumbs,.crumbs a{align-items:center}.crumbs a{display:inline-flex;min-height:32px;transition:color var(--dur-press) var(--ease-state)}.crumbs a:hover{color:var(--signal)}.crumbs a:active{color:var(--signal-press)}.crumbs span{display:inline-flex;align-items:center;min-height:32px}.list-head h1{grid-column:1/8;font-size:var(--fs-h1);line-height:var(--lh-h1);letter-spacing:var(--track-h1)}.list-head__aside{grid-column:10/13;display:grid;grid-gap:var(--s-2);gap:var(--s-2)}.list-head__count{font-family:var(--font-mono);font-size:var(--fs-mono);color:var(--ink)}.list-head__aside p{color:var(--ink-muted)}@media (max-width:960px){.list-head h1,.list-head__aside{grid-column:1/-1}}.chips{display:flex;flex-wrap:wrap;padding-block:var(--s-5);border-bottom:1px solid var(--line)}.chip,.chips{gap:var(--s-2)}.chip{display:inline-flex;align-items:center;min-height:36px;padding:0 var(--s-3);border:1px solid var(--line);border-radius:var(--r-md);font-size:var(--fs-small);background:var(--paper);transition:background-color var(--dur-press) var(--ease-state),border-color var(--dur-press) var(--ease-state)}.chip:hover{background:var(--paper-raised);border-color:var(--ink-muted)}.chip:active{background:var(--paper-sunk)}.chip[aria-current=page]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.chip .count{font-family:var(--font-mono);font-size:var(--fs-label);opacity:.8}.list-body{padding-bottom:var(--s-9)}.art-grid{display:grid;grid-template-columns:[full-start] minmax(var(--gutter),1fr) [content-start rail-start] var(--rail) [rail-end] var(--rail-gap) [text-start] minmax(0,var(--text)) [text-end] var(--rail-gap) [notes-start] var(--notes) [notes-end content-end] minmax(var(--gutter),1fr) [full-end];position:relative}.art-head{--cross-y:calc(100% - 7px);padding-block:var(--s-8);row-gap:var(--s-5)}.art-head>:not(.measure){position:relative;z-index:1}.art-head .crumbs{grid-column:content}.art-head__score{grid-column:rail;grid-row:2/span 3;align-self:start;display:grid;grid-gap:var(--s-3);gap:var(--s-3);padding-top:var(--s-2)}.art-head h1{grid-row:2;font-size:var(--fs-h1);line-height:var(--lh-h1);letter-spacing:var(--track-h1)}.art-head h1,.art-head__lede{grid-column:text-start/content-end}.art-head__lede{grid-row:3;font-family:var(--font-display);font-size:var(--fs-lede);font-weight:500;line-height:1.25;letter-spacing:-.015em;max-width:34ch}.art-head__by{grid-column:text-start/content-end;grid-row:4;display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);font-family:var(--font-mono);font-size:var(--fs-small);color:var(--ink-muted)}.art-body{padding-block:var(--s-8) var(--s-9);align-items:start}.rail{grid-column:rail;grid-row:1/span 2;position:-webkit-sticky;position:sticky;top:88px;align-self:start}.rail>summary{display:none}.rail__inner{display:grid;grid-gap:var(--s-5);gap:var(--s-5)}.rail__by{display:grid;grid-gap:4px;gap:4px;font-size:var(--fs-small);color:var(--ink-muted)}.readout{margin:0;border-top:1px solid var(--ink)}.readout>div{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-4);padding:var(--s-3) 0;border-bottom:1px solid var(--line)}.readout dt{font-size:var(--fs-label);font-weight:500;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-muted);flex-shrink:0}.readout dd,.readout dt{font-family:var(--font-mono)}.readout dd{margin:0;font-size:var(--fs-mono);text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:0;overflow-wrap:anywhere}.prose{grid-column:text;grid-row:1;min-width:0;font-size:var(--fs-article);line-height:var(--lh-article)}.sb .prose>*+*{margin-top:1.1em}.prose li,.prose p{max-width:var(--measure)}.sb .prose h2{font-size:var(--fs-h2);line-height:var(--lh-h2);letter-spacing:var(--track-h2);margin-top:var(--s-8);scroll-margin-top:96px}.sb .prose h3{font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--track-h3);font-weight:500;margin-top:var(--s-7)}.sb .prose h4{font-size:var(--fs-ui-strong);line-height:var(--lh-h3);margin-top:var(--s-6)}.prose ol,.prose ul{padding-left:1.4em}.prose li+li{margin-top:.4em}.prose li::marker{color:var(--ink-muted);font-family:var(--font-mono)}.prose blockquote{margin-inline:0;padding:var(--s-4) var(--s-5);background:var(--paper-raised);border-left:3px solid var(--signal);border-radius:0 var(--r-md) var(--r-md) 0;font-family:var(--font-display);font-size:1.25rem;line-height:1.4}.prose blockquote>*+*{margin-top:.6em}.prose hr{border:0;height:1px;background:var(--line);margin-block:var(--s-7)}.prose code{font-family:var(--font-mono);font-size:.9em;background:var(--paper-sunk);padding:1px 5px;border-radius:var(--r-sm)}.prose a{color:var(--signal);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.prose a:hover{color:var(--signal-hover);text-decoration-thickness:2px}.prose a:active{color:var(--signal-press)}.sb .prose>:first-child{margin-top:0}.verdict{display:grid;grid-template-columns:auto minmax(0,1fr);grid-gap:var(--s-5);gap:var(--s-5);padding:var(--s-5);background:var(--paper-raised);border:1px solid var(--line);border-left:3px solid var(--signal);border-radius:var(--r-md)}.verdict__body{display:grid;grid-gap:var(--s-3);gap:var(--s-3)}.verdict__body p{font-size:var(--fs-article)}.verdict__best{font-size:var(--fs-body)}.verdict__best b{font-family:var(--font-mono);font-size:var(--fs-label);font-weight:500;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-muted);margin-right:var(--s-2)}@media (max-width:560px){.verdict{grid-template-columns:minmax(0,1fr)}}.fig{margin-inline:0;display:grid;grid-gap:var(--s-3);gap:var(--s-3);justify-items:center}.fig .frame{max-width:100%}.fig--fill .frame,.fig--fill .frame img{width:100%}.fig--natural .frame{width:-moz-fit-content;width:fit-content}.fig--narrow .frame{width:min(100%,var(--fig-max,380px))}.fig--narrow .frame img{width:100%}.fig figcaption{justify-self:stretch;max-width:var(--measure);display:flex;gap:var(--s-3);font-size:var(--fs-small);line-height:1.45;color:var(--ink-muted)}.fig--narrow figcaption,.fig--natural figcaption{justify-self:center;max-width:min(var(--measure),100%)}.fig figcaption b{flex-shrink:0;font-family:var(--font-mono);font-size:var(--fs-label);font-weight:500;letter-spacing:var(--track-label);color:var(--ink);padding-top:2px}.fig-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--s-5);gap:var(--s-5);align-items:start}.fig-pair .fig--narrow .frame{width:100%}@media (max-width:480px){.fig-pair{grid-template-columns:minmax(0,1fr)}}.after-body{display:grid;grid-gap:var(--s-7);gap:var(--s-7);margin-top:var(--s-8)}.after-body h2{font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--track-h3);margin-bottom:var(--s-4)}.proscons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--s-6);gap:var(--s-6)}.proscons>div{border-top:1px solid var(--ink);padding-top:var(--s-4)}.proscons h3{display:flex;align-items:center;gap:var(--s-2);font-family:var(--font-mono);font-size:var(--fs-label);font-weight:500;letter-spacing:var(--track-label);text-transform:uppercase;margin-bottom:var(--s-3)}.proscons ul{list-style:none;margin:0;padding:0;display:grid;grid-gap:var(--s-3);gap:var(--s-3)}.proscons li{display:grid;grid-template-columns:20px minmax(0,1fr);grid-gap:var(--s-2);gap:var(--s-2);font-size:var(--fs-body);line-height:var(--lh-body)}.proscons .pro svg{color:var(--pass);margin-top:3px}.proscons .con svg{color:var(--ink-muted);margin-top:3px}@media (max-width:560px){.proscons{grid-template-columns:minmax(0,1fr)}}.spec-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin:0;background:var(--line);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}.spec-grid,.spec-grid>div{display:grid;grid-gap:2px;gap:2px}.spec-grid>div{background:var(--paper-raised);padding:var(--s-3) var(--s-4);align-content:start}.spec-grid dt{font-size:var(--fs-label);font-weight:500;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-muted)}.spec-grid dd,.spec-grid dt{font-family:var(--font-mono)}.spec-grid dd{margin:0;font-size:var(--fs-mono);line-height:1.4;overflow-wrap:anywhere}.correction{padding:var(--s-4) var(--s-5);background:var(--paper-sunk);border-radius:var(--r-md);display:grid;grid-gap:var(--s-2);gap:var(--s-2)}.correction p{color:var(--ink-muted-strong)}.closing{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-4);padding-top:var(--s-5);border-top:1px solid var(--line)}.closing span{color:var(--ink-muted);font-size:var(--fs-small)}.notes{grid-column:notes;grid-row:1;display:grid;grid-gap:var(--s-6);gap:var(--s-6);align-content:start;position:-webkit-sticky;position:sticky;top:88px}.notes h2{font-family:var(--font-mono);font-size:var(--fs-label);font-weight:500;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-muted);padding-bottom:var(--s-3);border-bottom:1px solid var(--ink)}.related{list-style:none;margin:0;padding:0}.related li{border-bottom:1px solid var(--line)}.related a{display:grid;grid-gap:4px;gap:4px;padding:var(--s-3) 0;transition:color var(--dur-press) var(--ease-state)}.related a:hover{color:var(--signal)}.related a:active{color:var(--signal-press)}.related .r-meta,.related time{font-family:var(--font-mono);font-size:var(--fs-label);color:var(--ink-muted)}.related b{font-weight:500;font-size:var(--fs-body);line-height:1.35}.margin-note{font-size:var(--fs-small);color:var(--ink-muted);line-height:1.5;padding-left:var(--s-3);border-left:2px solid var(--line)}@media (max-width:1240px){.art-grid{grid-template-columns:[full-start] minmax(var(--gutter),1fr) [content-start rail-start] var(--rail) [rail-end] var(--s-7) [text-start notes-start] minmax(0,var(--text)) [text-end notes-end content-end] minmax(var(--gutter),1fr) [full-end]}.notes{grid-row:2;position:static;margin-top:var(--s-8)}}@media (max-width:900px){.art-grid{grid-template-columns:[full-start] var(--gutter) [content-start rail-start text-start notes-start] minmax(0,1fr) [rail-end text-end notes-end content-end] var(--gutter) [full-end]}.art-head__score{grid-row:auto;grid-template-columns:auto auto;justify-content:start;align-items:end;gap:var(--s-4)}.art-head h1{grid-row:2}.art-head__lede{grid-row:3}.art-head__by{grid-row:4}.art-head__score{grid-row:5}.art-body{padding-top:0}.rail{grid-row:1;position:static;margin-bottom:var(--s-7);border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper-raised);padding:0 var(--s-4)}.rail>summary{display:flex;align-items:center;justify-content:space-between;min-height:48px;cursor:pointer;font-family:var(--font-mono);font-size:var(--fs-label);font-weight:500;letter-spacing:var(--track-label);text-transform:uppercase;list-style:none}.rail>summary::-webkit-details-marker{display:none}.rail>summary svg{transition:transform var(--dur-panel) var(--ease-state)}.rail[open]>summary svg{transform:rotate(180deg)}.rail__inner{padding-bottom:var(--s-4)}.art-body .prose{grid-row:2}.notes{grid-row:3}}.more-band .cols{align-items:start;row-gap:var(--s-6)}.more-band__head{grid-column:1/5;display:grid;grid-gap:var(--s-5);gap:var(--s-5);justify-items:start}.more-band__head h2{font-size:var(--fs-h2);line-height:var(--lh-h2);letter-spacing:var(--track-h2)}.more-band__head p{color:var(--cab-muted)}.more-band__list{grid-column:6/13;display:grid;grid-gap:var(--s-2);gap:var(--s-2)}.more-band__list .cab-card{background:var(--cab-raised);grid-template-columns:96px minmax(0,1fr)}.more-band__list .cab-card:hover{background:var(--cab-tile)}@media (max-width:960px){.more-band__head,.more-band__list{grid-column:1/-1}}.info-body{padding-block:var(--s-8) var(--s-9)}.info-nav{grid-column:rail;position:-webkit-sticky;position:sticky;top:88px;align-self:start;border-top:1px solid var(--ink)}.info-nav a{display:flex;align-items:center;justify-content:space-between;min-height:44px;border-bottom:1px solid var(--line);padding-inline:var(--s-2);transition:background-color var(--dur-press) var(--ease-state)}.info-nav a:hover{background:var(--paper-raised)}.info-nav a:active{background:var(--paper-sunk)}.info-nav a[aria-current=page]{box-shadow:inset 3px 0 0 var(--signal);font-weight:600}.info-aside{grid-column:notes;align-self:start;position:-webkit-sticky;position:sticky;top:88px;display:grid;grid-gap:var(--s-4);gap:var(--s-4);padding:var(--s-5);background:var(--paper-sunk);border-radius:var(--r-md)}.info-aside h2{font-family:var(--font-mono);font-size:var(--fs-label);font-weight:500;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-muted-strong)}.info-aside ul{margin:0;padding-left:1.1em;display:grid;grid-gap:var(--s-2);gap:var(--s-2);font-size:var(--fs-body)}@media (max-width:1240px){.info-aside{grid-row:2;position:static;margin-top:var(--s-7)}}@media (max-width:900px){.info-nav{position:static;grid-row:3;margin-top:var(--s-7)}}.search-form{grid-column:1/8;display:flex;gap:var(--s-2)}.search-form .field{height:52px;font-size:var(--fs-ui-strong)}.search-form .btn{height:52px}@media (max-width:960px){.search-form{grid-column:1/-1}}.results{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:0 var(--col-gap);gap:0 var(--col-gap)}.results li{border-bottom:1px solid var(--line)}.results a{display:grid;grid-template-columns:120px minmax(0,1fr) auto;grid-gap:var(--s-4);gap:var(--s-4);align-items:center;padding:var(--s-4) var(--s-2);transition:background-color var(--dur-press) var(--ease-state)}.results a:hover{background:var(--paper-raised)}.results a:active{background:var(--paper-sunk)}.results h2{font-size:var(--fs-ui-strong);line-height:var(--lh-tight);font-weight:600}.results a:hover h2{color:var(--signal)}.results .r-meta{margin-top:4px;font-family:var(--font-mono);font-size:var(--fs-label);color:var(--ink-muted);text-transform:uppercase;letter-spacing:var(--track-label)}@media (max-width:960px){.results{grid-template-columns:minmax(0,1fr)}}@media (max-width:480px){.results a{grid-template-columns:88px minmax(0,1fr)}.results .score{grid-column:2}}.state{--cross-y:50%;min-height:420px;display:grid;align-items:center}.state__box{position:relative;z-index:1;grid-column:4/10;display:grid;justify-items:center;text-align:center;grid-gap:var(--s-4);gap:var(--s-4);padding:var(--s-7) var(--s-5);background:var(--paper)}.state__code{font-family:var(--font-mono);font-size:var(--fs-label);font-weight:500;letter-spacing:var(--track-label);color:var(--ink-muted)}.state__code--fault{color:var(--signal);font-size:var(--fs-mono)}.state__box h1,.state__box h2{font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--track-h3)}.state__box p{color:var(--ink-muted);max-width:46ch}.state__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-2)}@media (max-width:860px){.state__box{grid-column:1/-1}}.nav-progress{grid-column:full;position:absolute;left:0;right:0;bottom:-1px;height:3px;overflow:hidden;pointer-events:none}.nav-progress__bar{position:absolute;inset:0;background:var(--signal-bright);transform-origin:left;transform:scaleX(0);opacity:0;transition:opacity var(--dur-panel) var(--ease-state)}.nav-progress[data-active=true] .nav-progress__bar{opacity:1;animation:reading var(--dur-sheen) var(--ease-state) infinite}.nav-progress__label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}@keyframes reading{0%{transform:translateX(0) scaleX(0)}50%{transform:translateX(0) scaleX(.6)}to{transform:translateX(100%) scaleX(.2)}}.site-footer{background:var(--cab);color:var(--paper);padding-top:var(--s-9)}.site-footer .cols{row-gap:var(--s-7)}.site-footer__brand{grid-column:1/5;display:grid;grid-gap:var(--s-4);gap:var(--s-4);align-content:start}.site-footer__brand .wordmark{color:var(--paper)}.site-footer__brand p{color:var(--cab-muted);max-width:36ch}.footer-col{display:grid;align-content:start;grid-gap:var(--s-1);gap:var(--s-1)}.footer-col--cats{grid-column:6/9}.footer-col--site{grid-column:9/11}.footer-col--info{grid-column:11/13}.footer-col h2{font-family:var(--font-mono);font-size:var(--fs-label);font-weight:500;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--cab-muted);margin-bottom:var(--s-2)}.footer-col a{display:inline-flex;align-items:center;min-height:32px;color:var(--paper);transition:color var(--dur-press) var(--ease-state)}.footer-col a:hover{color:var(--signal-bright)}.footer-col a:active{color:var(--cab-muted)}.site-footer :focus-visible{outline-color:var(--signal-bright)}.site-footer__base{margin-top:var(--s-9);padding-block:var(--s-5);display:grid;grid-gap:var(--s-3);gap:var(--s-3);font-size:var(--fs-fine)}.site-footer__base,.site-footer__sig{border-top:1px solid var(--cab-line);color:var(--cab-muted)}.site-footer__sig{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.2em;padding-block:var(--s-4);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media (max-width:960px){.footer-col--cats,.site-footer__brand{grid-column:1/-1}.footer-col--info,.footer-col--site{grid-column:span 6}}[data-reveal]{transition:opacity var(--dur-enter) var(--ease-enter),transform var(--dur-enter) var(--ease-enter)}[data-reveal=pending]{opacity:0;transform:translateY(12px)}[data-reveal-group]>*{transition:opacity var(--dur-enter) var(--ease-enter) calc(var(--i, 0) * var(--stagger)),transform var(--dur-enter) var(--ease-enter) calc(var(--i, 0) * var(--stagger)),background-color var(--dur-press) var(--ease-state)}[data-reveal-group=pending]>*{opacity:0;transform:translateY(12px)}[data-reveal-group=pending] .meter i{transform:scaleX(0)}@media (prefers-reduced-motion:reduce){.sb *,.sb :after,.sb :before{animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0s!important;scroll-behavior:auto!important}.btn,.btn .arrow,.hero__product,.icon-btn,.meter i,.nav-link:after,.nav-pill__btn svg,.rail>summary svg,.ruled__item:before,.wordmark img,[data-reveal-group]>*,[data-reveal]{transition-property:color,background-color,border-color,box-shadow,filter!important}[data-reveal-group=pending]>*,[data-reveal=pending]{opacity:1;transform:none}[data-reveal-group=pending] .meter i{transform:scaleX(var(--v,0))}.btn:active,.btn:hover .arrow,.hero__product:hover,.icon-btn:active,.wordmark:active img,.wordmark:hover img,a:hover>.arrow{transform:none}.nav-progress[data-active=true] .nav-progress__bar{animation:none;transform:scaleX(1)}}.sb .prose>.after-body{margin-top:var(--s-8)}.tier-table .no,.tier-table .yes{display:inline-flex;align-items:center;gap:6px}