:root{--pb-bg:#f7f7f2;--pb-bg-elevated:#eeefe8;--pb-surface:#fff;--pb-surface-2:#f7f8f3;--pb-ink:#222820;--pb-ink-muted:#60685b;--pb-ink-dim:#6d7568;--pb-line:#e0e3d9;--pb-line-strong:#c3c9ba;--pb-signal:#4d712e;--pb-signal-soft:#f0f5e6;--pb-signal-strong:#608636;--pb-cyan:#4c692e;--pb-cyan-soft:#eff4e5;--pb-amber:#945812;--pb-amber-soft:#fff5e6;--pb-font:"Plus Jakarta Sans", "Segoe UI", sans-serif;--pb-mono:"JetBrains Mono", monospace;--pb-radius:10px;--pb-radius-lg:18px;--pb-max:1160px;--pb-after-tool:64px}*,:before,:after{box-sizing:border-box}html{color-scheme:light;scrollbar-gutter:stable}body{background:var(--pb-bg);color:var(--pb-ink);font-family:var(--pb-font);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.65}a{color:var(--pb-cyan);text-underline-offset:4px}a:hover{color:#2d4618}button,input,select{font:inherit}button,a,input,select,summary,[tabindex]{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}:focus-visible{outline-offset:4px;outline:3px solid #7b9a50}[hidden]{display:none!important}h1,h2,h3,p{overflow-wrap:break-word}.mono,code{font-family:var(--pb-mono)}.site-header{max-width:var(--pb-max);border-bottom:1px solid var(--pb-line);justify-content:space-between;align-items:center;gap:24px;margin:auto;padding:22px 24px;display:flex}.site-brand{color:var(--pb-ink);white-space:nowrap;letter-spacing:-1px;align-items:center;gap:10px;font-size:clamp(22px,2.7vw,26px);font-weight:700;text-decoration:none;display:flex}.brand-icon{flex-shrink:0;width:38px;height:38px;display:block}.brand-light{font-weight:400}.site-nav{gap:4px;display:flex}.site-nav a{color:var(--pb-ink-muted);white-space:nowrap;border-radius:8px;padding:8px 13px;font-size:15px;text-decoration:none}.site-nav a:hover{color:var(--pb-ink);background:#e9ede2}.site-nav a[aria-current=page]{color:#f4f7ed;background:#252d23}.site-footer{color:var(--pb-ink-muted);background:#ecefe4;border-top:1px solid #d9dfcd}.footer-inner{max-width:var(--pb-max);margin:auto;padding:48px 24px 24px}.footer-main{grid-template-columns:1.5fr 1fr 1fr;gap:64px;padding-bottom:38px;display:grid}.footer-about p{max-width:330px;margin:18px 0 0;font-size:16px;line-height:1.8}.footer-nav{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.footer-nav__title{color:var(--pb-ink);margin:3px 0 5px;font-size:14px;font-weight:700}.footer-nav a{color:var(--pb-ink-muted);font-size:15px;text-decoration:none}.footer-nav a:hover{color:var(--pb-cyan);text-decoration:underline}.footer-bottom{border-top:1px solid #d2d9c6;justify-content:space-between;gap:24px;padding-top:22px;font-size:13px;display:flex}.footer-bottom p{max-width:700px;margin:0}.footer-bottom a{flex-shrink:0;text-decoration:none}@media (width<=700px){.footer-inner{padding:34px 24px 24px}.footer-main{grid-template-columns:1fr 1fr;gap:30px 22px}.footer-about{grid-column:1/-1}.footer-about p{max-width:none}.footer-bottom{flex-direction:column;gap:16px}}.mouse-svg{pointer-events:none;width:min(100%,580px);height:340px;margin:auto;display:block;overflow:visible}.zone-fill{fill:url(#button);stroke:#92988a;stroke-width:1px;transition:fill 80ms,filter 80ms}.wheel-fill{fill:url(#wheel)}.side-fill{fill:url(#rim);stroke:#777e6c}.button-highlight{fill:none;stroke:#fff;stroke-opacity:.65;stroke-width:1.5px}.mouse-svg .is-detected .zone-fill{stroke:#80a847;stroke-width:1.7px}.mouse-svg .is-active .zone-fill{fill:url(#pressed);stroke:#d7ffa4;stroke-width:2px;filter:drop-shadow(0 0 6px #b4e77355)}.wheel-lines{fill:none;stroke:#8e9983;stroke-width:1px}.scroll-arrow{fill:none;stroke:#77816e;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.is-detected .scroll-arrow{stroke:#80a847}.is-scroll-pulse .scroll-arrow{stroke:#d2ff98;stroke-width:4px}#mouse-bench[data-scroll] .wheel-fill{fill:url(#pressed);stroke:#e2ffb6;stroke-width:2.5px;filter:drop-shadow(0 0 7px #bce982a0)}#mouse-bench[data-scroll] .wheel-lines{stroke:#405c25;stroke-width:2px;animation:.22s linear infinite wheel-tread-down}#mouse-bench[data-scroll=up] .wheel-lines{animation-name:wheel-tread-up}#mouse-bench[data-scroll] .is-scroll-pulse .scroll-arrow{filter:drop-shadow(0 0 5px #bce98280);animation:.32s ease-out infinite wheel-arrow-down}#mouse-bench[data-scroll=up] .is-scroll-pulse .scroll-arrow{animation-name:wheel-arrow-up}@keyframes wheel-tread-down{to{transform:translateY(6px)}}@keyframes wheel-tread-up{to{transform:translateY(-6px)}}@keyframes wheel-arrow-down{0%{transform:translateY(-3px)}to{transform:translateY(3px)}}@keyframes wheel-arrow-up{0%{transform:translateY(3px)}to{transform:translateY(-3px)}}.movement-dot{fill:#9aa58d}.is-detected .movement-dot{fill:#729e38}.diagram-callouts{opacity:.92}.diagram-callouts path{fill:none;stroke:var(--mouse-callout-line,#abb29f);stroke-width:1px}.diagram-callouts text{fill:var(--mouse-callout-text,#636d59);font-family:var(--pb-mono);letter-spacing:.7px;font-size:15px;font-weight:600}@media (width<=960px){.site-header{padding:18px 20px 12px;display:block}.site-nav{scrollbar-width:none;margin-top:14px;overflow-x:auto}.site-nav::-webkit-scrollbar{display:none}.site-nav a{padding:7px 10px}.mouse-svg{height:280px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.skip-link{z-index:100;background:#fff;padding:10px 18px;position:fixed;top:8px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.footer-about .footer-privacy{margin-top:14px;font-size:13px;line-height:1.8}.footer-bottom .footer-copyright{color:var(--pb-ink-muted);font-size:14px}.footer-copyright a{color:var(--pb-ink);font-weight:600}.footer-copyright a:hover{text-decoration:underline}.tool-menu[data-astro-cid-fzpbxy5g]{position:relative}.tool-menu[data-astro-cid-fzpbxy5g] summary[data-astro-cid-fzpbxy5g]{cursor:pointer;min-height:44px;color:var(--pb-ink-muted);border-radius:8px;padding:10px 14px;font-size:15px;list-style:none}.tool-menu[data-astro-cid-fzpbxy5g] summary[data-astro-cid-fzpbxy5g]::-webkit-details-marker{display:none}.tool-menu[data-astro-cid-fzpbxy5g] summary[data-astro-cid-fzpbxy5g] span[data-astro-cid-fzpbxy5g]{margin-left:10px}.tool-menu[data-astro-cid-fzpbxy5g] summary[data-astro-cid-fzpbxy5g][data-current=true]{background:var(--pb-ink);color:var(--pb-bg)}.tool-menu__links[data-astro-cid-fzpbxy5g]{z-index:50;background:var(--pb-surface);border:1px solid var(--pb-line-strong);border-radius:12px;min-width:220px;padding:8px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 28px #22282015}.tool-menu__links[data-astro-cid-fzpbxy5g]:before{content:"";width:100%;height:9px;position:absolute;bottom:100%;right:0}.tool-menu__links[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]{min-height:44px;display:block}.mobile-tests[data-astro-cid-fzpbxy5g]{display:none}@media (width<=960px){.site-header[data-astro-cid-fzpbxy5g]>.site-nav[data-astro-cid-fzpbxy5g]{display:none}.mobile-tests[data-astro-cid-fzpbxy5g]{margin-top:12px;display:block}.mobile-tests[data-astro-cid-fzpbxy5g] summary[data-astro-cid-fzpbxy5g]{cursor:pointer;min-height:44px;padding:10px 0;font-weight:600}.mobile-tests[data-astro-cid-fzpbxy5g] summary[data-astro-cid-fzpbxy5g] span[data-astro-cid-fzpbxy5g]{margin-left:8px}.mobile-tests[data-astro-cid-fzpbxy5g] nav[data-astro-cid-fzpbxy5g]{gap:16px;padding:8px 0;display:grid}.mobile-tests[data-astro-cid-fzpbxy5g] nav[data-astro-cid-fzpbxy5g] p[data-astro-cid-fzpbxy5g]{color:var(--pb-ink-muted);text-transform:uppercase;letter-spacing:1px;margin:0 0 6px;font-size:12px}.mobile-tests__links[data-astro-cid-fzpbxy5g]{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;display:grid}.mobile-tests[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]{border-radius:8px;min-height:44px;padding:10px 12px;text-decoration:none}.mobile-tests[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g][aria-current=page]{background:var(--pb-ink);color:var(--pb-bg)}}.plausible-preference[data-astro-cid-rrpk2bdz] button[data-astro-cid-rrpk2bdz]{color:inherit;cursor:pointer;font:inherit;background:0 0;border:1px solid;border-radius:.4rem;padding:.65rem .9rem}.plausible-preference[data-astro-cid-rrpk2bdz] button[data-astro-cid-rrpk2bdz]:hover{opacity:.75}.plausible-preference[data-astro-cid-rrpk2bdz] button[data-astro-cid-rrpk2bdz]:focus-visible{outline-offset:3px;outline:2px solid}@media (width>=801px){.footer-main[data-astro-cid-nns7i3if]{grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:32px}}.special-main,.home-main{max-width:var(--pb-max);margin:auto;padding:38px 24px 60px}.page-intro{flex-direction:column;align-items:flex-start;gap:0;width:100%;max-width:none;margin-bottom:28px;display:flex}.page-intro__eyebrow{letter-spacing:1.6px;text-transform:uppercase;font-weight:700;color:var(--pb-cyan)!important;margin:0 0 9px!important;font-size:13px!important}.page-intro h1{letter-spacing:-1.8px;margin:0;font-size:clamp(30px,4vw,44px);font-weight:700;line-height:1.15}.page-intro__lede,.page-intro>p:not(.page-intro__eyebrow){width:100%;max-width:none;color:var(--pb-ink-muted);margin:12px 0 0;font-size:17px;line-height:1.7}.title-dot{color:var(--pb-cyan)}.special-layout{border:1px solid var(--pb-line);background:#fff;border-radius:20px;grid-template-columns:minmax(0,1.45fr) minmax(300px,1fr);align-items:stretch;display:grid;overflow:hidden;box-shadow:0 8px 30px #22375505}.sp-bench{-webkit-user-select:none;user-select:none;background:#f6f7f1;flex-direction:column;min-width:0;min-height:100%;padding:26px;display:flex}.sp-bench__chrome,.sp-hud__chrome{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.sp-bench__title,.sp-hud__title{color:var(--pb-ink);font-size:15px;font-weight:700}.sp-bench__hint{color:var(--pb-ink-muted);max-width:540px;margin:0 0 18px;font-size:15px}.sp-live{letter-spacing:1px;color:var(--pb-ink-dim);align-items:center;gap:6px;font-size:12px;display:flex}.sp-live__pulse{background:var(--pb-cyan);border-radius:50%;width:5px;height:5px}.sp-hud{border-left:1px solid var(--pb-line);flex-direction:column;gap:18px;min-width:0;padding:26px;display:flex}.sp-hud__chrome{margin:0}.sp-metric{flex-direction:column;gap:6px;min-width:0;display:flex}.sp-metric__label{color:var(--pb-ink-muted);font-size:13px;line-height:1.5}.sp-metric__value{font-family:var(--pb-mono);font-variant-numeric:tabular-nums;letter-spacing:-.6px;overflow-wrap:anywhere;min-height:1.4em;font-size:21px;line-height:1.4}.sp-metric-grid{border-block:1px solid var(--pb-line);grid-template-columns:1fr 1fr;gap:20px 15px;padding:18px 0;display:grid}.sp-metric--hero{padding:14px 0}.sp-metric--hero .sp-metric__value,.dpi-result-hero{font-family:var(--pb-mono);letter-spacing:-2px;color:var(--pb-cyan);font-size:clamp(28px,3.6vw,44px);font-weight:500}.is-signal{color:var(--pb-signal)}.is-warn{color:var(--pb-amber)}.is-cyan{color:var(--pb-cyan)}.btn-reset,.btn-action{border:1px solid var(--pb-line-strong);color:var(--pb-ink);background:#fff;border-radius:8px;padding:10px 16px;font-size:14px;font-weight:600;line-height:1.5;transition:background .15s}.btn-reset:hover,.btn-action:hover{background:#edf1e5;border-color:#97ac7c}.btn-action--primary{background:var(--pb-cyan);border-color:var(--pb-cyan);color:#fff}.btn-action--primary:hover{color:#fff;background:#364f20}.result-actions{flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:auto;display:flex}.result-actions a{align-items:center;min-height:44px;font-size:14px;font-weight:600;display:inline-flex}.result-actions button{min-height:44px}.button-layout .result-actions a{color:#d0f59f}.dpi-capture{margin-top:12px}.dpi-capture strong{color:var(--pb-ink)}.dpi-controls{margin:14px 0}.dpi-unit-options button{min-width:44px;min-height:44px}.measurement-steps{flex-wrap:wrap}.dpi-rail.is-armed{border-style:solid}.dpi-rail.is-locked .dpi-rail__cursor{display:none}.dpi-rail{overflow:hidden}@media (width>=801px){.special-main{padding-top:24px}.special-main .page-intro{margin-bottom:20px}.dpi-layout .ruler-figure svg{height:64px}.dpi-layout .ruler-figure{padding:10px 14px}.dpi-layout .dpi-form{margin:14px 0}}.btn-row{flex-wrap:wrap;gap:10px;display:flex}.btn-row>*{flex:1}.result-note,.device-note{color:var(--pb-ink-dim);margin:0;font-size:14px;line-height:1.7}.device-note{margin:18px 0}.sp-alert{visibility:hidden;border-radius:8px;min-height:40px;margin:10px 0;padding:8px 12px;font-size:14px;line-height:1.6}.sp-alert.is-visible{visibility:visible;color:var(--pb-amber);background:var(--pb-amber-soft)}.button-layout{color:#eef1e7;background:#20261f;border:0;border-radius:18px;grid-template-columns:minmax(0,1.35fr) minmax(340px,1fr);align-items:stretch;box-shadow:0 22px 46px -28px #151e1d60}.button-layout .sp-bench{--mouse-callout-text:#d5decb;--mouse-callout-line:#8f9c84;background:radial-gradient(at 45% 35%,#414a39,#293125 56%,#232a21);flex-direction:column;justify-content:flex-start;gap:10px;padding:20px 28px;display:flex;position:relative}.button-layout .sp-bench__chrome{font-family:var(--pb-mono);letter-spacing:1px;color:#a5b09b;gap:10px;margin:0;font-size:12px}.button-layout .sp-live{color:inherit}.button-layout .sp-live__pulse{background:#c6f28e;width:6px;height:6px;box-shadow:0 0 10px #c6f24e44}.button-layout .mouse-svg{height:310px;margin:4px auto}.hold-panel{text-align:center}.hold-panel__label{color:#b2bdab;margin:0;font-size:14px}.hold-panel__value{font-family:var(--pb-mono);color:#d0f59f;font-variant-numeric:tabular-nums;min-height:45px;font-size:32px;line-height:1.4}.hold-panel__sub{color:#f1f4e9;margin:0;font-size:18px;font-weight:600}.button-layout .sp-bench__hint{color:#b2bdab;margin:4px 0 0;font-size:15px}.button-legend{color:#a2af98;justify-content:center;gap:20px;margin-top:auto;padding-top:12px;font-size:12px;display:flex}.button-legend i{background:#798071;border-radius:50%;width:6px;height:6px;margin-right:5px;display:inline-block}.button-legend .received{background:#80a847}.button-legend .pressed{background:#d1ff99}.button-layout .sp-alert{min-height:0;margin:0;position:absolute;top:46px;left:28px;right:28px}.button-layout .sp-hud{border-left:1px solid #ffffff0e;gap:0;padding:20px 28px 16px}.button-layout .sp-hud__title{color:#eef1e7;font-size:18px;font-weight:500}.button-layout .btn-reset{color:#c0cab5;background:0 0;border:1px solid #4d5845;border-radius:6px;padding:5px 11px}.button-layout .btn-reset:hover{color:#fff;background:#35422b}.button-total{color:#a9b59e;justify-content:space-between;align-items:center;gap:12px;padding:10px 0 13px;font-size:14px;display:flex}.button-total>div{flex-direction:column;display:flex}.button-total strong{font:400 44px/1.2 var(--pb-mono);letter-spacing:-2px;color:#d0f59f;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.button-total p{text-align:right;flex-shrink:0;margin:0}.btn-grid{grid-template-columns:1fr 1fr;gap:9px;display:grid}.btn-card,.button-active{background:#ffffff03;border:1px solid #424c3a;border-radius:8px;min-width:0;padding:9px 12px}.btn-card{transition:background .1s,border-color .1s}.btn-card__name,.button-active>span:first-child{color:#c2cbbb;font-size:14px}.btn-card__index{font:12px var(--pb-mono);color:#7e8e71;margin-right:7px}.btn-card__count{align-items:baseline;gap:7px;display:flex}.btn-card__count strong{font:400 28px/1.3 var(--pb-mono);overflow-wrap:anywhere;min-width:0}.btn-card__count span,.btn-card__state,.button-active>span:last-child{color:#a4b197;font-size:12px}.btn-card.is-detected{border-color:#6e8854}.btn-card.is-pressed{color:#233416;background:#d0f59f;border-color:#d0f59f}.btn-card.is-pressed span{color:#425832}.button-active{border-style:dashed;flex-direction:column;justify-content:space-between;gap:4px;display:flex}.button-active strong{color:#d0f59f;font-size:16px;font-weight:500;line-height:1.4}.button-detected{color:#b0bca5;border-bottom:1px solid #424c3a;justify-content:space-between;gap:12px;margin-top:18px;padding-bottom:12px;font-size:13px;display:flex}.button-detected strong{font-family:var(--pb-mono);font-weight:400}.button-layout .result-note{color:#b0bca5;margin-top:10px;font-size:13px}.segmented{background:#eaf0e2;border-radius:9px;flex-wrap:wrap;gap:4px;width:fit-content;max-width:100%;margin-bottom:18px;padding:4px;display:flex}.segmented button{color:var(--pb-ink-muted);background:0 0;border:0;border-radius:6px;padding:8px 12px;font-size:14px}.segmented button[aria-pressed=true]{color:var(--pb-cyan);background:#fff;font-weight:600;box-shadow:0 1px 5px #182c4810}.click-target{user-select:none;text-align:center;cursor:crosshair;touch-action:none;background:#edf1e5;border:1px solid #a5b98a;border-radius:14px;flex:auto;justify-content:center;align-items:center;min-height:280px;padding:24px;transition:background .1s;display:flex}.click-target:active{background:#d9e8c5}.click-target__label strong{letter-spacing:-1px;color:#415d29;font-size:26px;display:block}.click-target__label span{color:#61744e;max-width:290px;margin-top:10px;font-size:14px;display:block}.click-stream{max-height:150px;font-family:var(--pb-mono);margin:8px 0 0;padding:0;font-size:12px;list-style:none;overflow:auto}.click-stream li{border-bottom:1px solid var(--pb-line);color:var(--pb-ink-muted);justify-content:space-between;gap:14px;padding:9px 0;display:flex}.click-stream li.is-suspicious{color:var(--pb-amber);background:var(--pb-amber-soft)}.advanced{color:var(--pb-ink-muted);font-size:14px}summary{cursor:pointer;padding:10px 0;font-weight:600}.threshold-row{align-items:center;gap:12px;padding:8px 0;display:flex}.threshold-row input{border:1px solid var(--pb-line-strong);border-radius:6px;width:70px;padding:7px}.test-result-message{color:var(--pb-ink-muted);min-height:44px;margin:0;font-size:15px}.scroll-stage{user-select:none;touch-action:none;background:radial-gradient(at 50% 42%,#e7efda 0%,#0000 55%),#f0f4e8;border:1px solid #d9e2cd;border-radius:14px;flex-direction:column;flex:auto;justify-content:center;align-items:center;min-height:240px;display:flex;position:relative;overflow:hidden}.scroll-stage:before{content:"";opacity:.55;pointer-events:none;background:repeating-linear-gradient(#b7c6a3 0 6px,#0000 6px 12px);border-radius:3px;width:3px;height:58%;position:absolute;top:21%;left:50%;transform:translate(-50%)}.scroll-stage__glyph{z-index:1;color:#5f7549;background:linear-gradient(#f7faf1,#e2ebd4);border:2px solid #8b9d73;border-radius:20px;place-items:center;width:40px;height:78px;font-size:22px;line-height:1;transition:transform .1s,border-color .1s,color .1s;display:grid;position:relative;box-shadow:inset 0 1px #fff8,0 6px 16px #1a2a1014}.scroll-stage.is-up .scroll-stage__glyph{color:var(--pb-cyan);border-color:var(--pb-cyan);transform:translateY(-6px)}.scroll-stage.is-down .scroll-stage__glyph{color:var(--pb-cyan);border-color:var(--pb-cyan);transform:translateY(6px)}.scroll-stage__hint{z-index:1;color:var(--pb-ink-muted);margin:14px 0 10px;font-size:14px;position:relative}.middle-pill{z-index:1;color:var(--pb-ink-muted);border-radius:999px;padding:6px 12px 14px;font-size:13px;position:relative}.middle-pill.is-active{color:var(--pb-signal);background:var(--pb-signal-soft)}.trail-box{font-family:var(--pb-mono);letter-spacing:3px;overflow-wrap:anywhere;min-height:48px;color:var(--pb-cyan);padding:10px 0;font-size:18px;line-height:1.7}.trail-box:not(:empty){border-top:1px dashed var(--pb-line)}.poll-stage{user-select:none;touch-action:none;cursor:crosshair;background:radial-gradient(circle,#eef4e4 0 28%,#0000 29%),radial-gradient(#e5edda,#f3f6ed);border:1px solid #d7e2c9;border-radius:14px;flex:auto;min-height:245px;position:relative;overflow:hidden}.poll-stage:before{content:"";border:1.5px dashed #a7b991;border-radius:50%;width:148px;height:148px;position:absolute;top:calc(50% - 74px);left:calc(50% - 74px)}.poll-stage:after{content:"";pointer-events:none;background:#7d955c;border-radius:50%;width:10px;height:10px;position:absolute;top:calc(50% - 5px);left:calc(50% - 5px);box-shadow:0 0 0 4px #7d955c22}.poll-stage__hint{z-index:1;text-align:center;color:#5f7549;pointer-events:none;padding:70px 28px;font-size:15px;position:relative}.poll-chart{border:1px solid var(--pb-line);background:linear-gradient(#e8edde 1px,#0000 1px) 0 0/100% 28px,#f7f9f2;border-radius:10px;height:112px;margin-top:16px;position:relative;overflow:hidden}.poll-chart svg{width:100%;height:100%;display:block}.poll-chart__ghost{fill:none;stroke:#c5d4b3;stroke-width:2px;stroke-dasharray:5 6;stroke-linecap:round;stroke-linejoin:round}.poll-chart.is-live .poll-chart__ghost{opacity:0}.poll-chart__empty{color:#7a8a6c;pointer-events:none;place-items:center;margin:0;font-size:13px;display:grid;position:absolute;inset:0}.poll-chart.is-live .poll-chart__empty{display:none}.chart-caption{color:var(--pb-ink-dim);justify-content:space-between;font-size:12px;display:flex}.tier-pills{flex-wrap:wrap;gap:6px;display:flex}.tier-pill{font-family:var(--pb-mono);color:var(--pb-ink-muted);background:#f1f4ea;border-radius:5px;padding:4px 6px;font-size:12px}.tier-pill.is-active{background:var(--pb-cyan-soft);color:var(--pb-cyan)}.dpi-form{grid-template-columns:1fr 1fr;gap:16px;margin:20px 0;display:grid}.dpi-field{flex-direction:column;gap:8px;min-width:0;display:flex}.dpi-field label{color:var(--pb-ink-muted);font-size:14px}.dpi-field__row{gap:8px;display:flex}.dpi-field input{border:1px solid var(--pb-line-strong);background:#fff;border-radius:8px;width:100%;min-width:0;padding:10px 12px}.dpi-unit-options{flex-wrap:nowrap;margin:0}.dpi-unit-options button{padding:6px 8px}.dpi-rail{cursor:crosshair;user-select:none;touch-action:none;background:linear-gradient(90deg,#d7e4c4 0 2px,#0000 2px) 0/28px 1px no-repeat,#edf1e5;border:1px dashed #98af7e;border-radius:14px;flex:auto;place-items:center;min-height:200px;padding:20px;display:grid;position:relative}.dpi-rail.is-measuring{border-style:solid;border-color:var(--pb-cyan);background:#e2edcf}.dpi-rail__hint{text-align:center;color:#526c37;max-width:360px;margin:0;font-size:16px}.dpi-rail__cursor{background:var(--pb-cyan);pointer-events:none;opacity:0;border-radius:50%;width:8px;height:8px;position:absolute}.dpi-rail__cursor.is-on{opacity:1}kbd{font-family:var(--pb-mono);background:#fff;border:1px solid #c4d3b1;border-bottom-width:3px;border-radius:5px;padding:2px 7px;font-size:14px}.measurement-steps{color:var(--pb-ink-muted);gap:14px;margin:0 0 14px;padding:0;font-size:13px;list-style:none;display:flex}.measurement-steps b{color:var(--pb-cyan);margin-right:4px}.ruler-figure{border:1px solid var(--pb-line);background:#f4f7ee;border-radius:14px;margin:0 0 8px;padding:16px 18px 12px}.ruler-figure svg{width:100%;height:95px}.ruler-figure figcaption{color:var(--pb-ink-muted);margin-top:8px;font-size:13px}@media (width<=800px){.button-layout{grid-template-columns:1fr}.button-layout .sp-bench{padding:20px 16px}.button-layout .mouse-svg{height:270px}.button-layout .sp-hud{border-top:1px solid #424c3a;border-left:0;padding:22px}.special-layout{grid-template-columns:1fr}.sp-hud{border-left:0;border-top:1px solid var(--pb-line)}.special-main,.home-main{padding:28px 20px 40px}.sp-bench,.sp-hud{padding:20px}.click-target{min-height:220px}.dpi-form{grid-template-columns:1fr}.page-intro h1{letter-spacing:-1px}.sp-metric--hero .sp-metric__value{font-size:36px}}.button-layout .mouse-svg [data-check=scrollUp],.button-layout .mouse-svg [data-check=scrollDown]{visibility:hidden}.content-sections,.home-guide{width:100%;max-width:none;margin:var(--pb-after-tool) 0 16px;grid-template-columns:minmax(0,1fr);gap:20px;display:grid}.next-steps+.content-sections{margin-top:48px}.special-layout+.content-sections{margin-top:var(--pb-after-tool);border-top:1px solid var(--pb-line);padding-top:40px}.content-block{background:0 0;border-radius:16px;min-width:0;padding:36px 8px}.content-block--metrics,.content-block--insights,.content-block--links{background:#ecefe3;padding:40px 36px}.content-block__head{margin-bottom:32px}.content-block__head h2{letter-spacing:-.7px;max-width:none;margin:0;font-size:clamp(26px,2.6vw,32px);line-height:1.35}.content-block__lede{max-width:none;color:var(--pb-ink-muted);margin:18px 0 0;font-size:16px;line-height:1.9}.section-kicker{color:var(--pb-cyan);letter-spacing:1.4px;text-transform:uppercase;margin:0 0 14px;font-size:12px;font-weight:700}.topic-list{border-top:1px solid var(--pb-line);gap:0;margin:0;padding:0;list-style:none;display:grid}.topic-item{border-bottom:1px solid var(--pb-line);padding:24px 0}.topic-item__title{margin:0 0 10px;font-size:18px;font-weight:600;line-height:1.5}.topic-item__body{color:var(--pb-ink-muted);margin:0;font-size:16px;line-height:1.9}.metric-list{border-top:1px solid #d5ddc8;margin:0;padding:0;list-style:none}.metric-item{border-bottom:1px solid #d5ddc8;grid-template-columns:minmax(180px,.8fr) minmax(0,1.3fr);align-items:baseline;gap:16px 36px;padding:22px 0;display:grid}.metric-item__top{flex-wrap:wrap;align-items:baseline;gap:6px 10px;display:flex}.metric-item__name{font-size:16px;font-weight:600}.metric-item__tag{color:var(--pb-ink-dim);letter-spacing:.4px;text-transform:uppercase;font-size:11px}.metric-item__hint{color:var(--pb-ink-muted);font-size:16px;line-height:1.8}.step-list{gap:28px;margin:0;padding:0;list-style:none;display:grid}.step-item{grid-template-columns:32px minmax(0,1fr);gap:16px;display:grid}.step-item__num{font-family:var(--pb-mono);color:var(--pb-cyan);padding-top:3px;font-size:13px;line-height:1.9}.step-item__title{margin:0 0 8px;font-size:18px;font-weight:600;line-height:1.5}.step-item__body{color:var(--pb-ink-muted);margin:0;font-size:16px;line-height:1.9}.insight-grid{grid-template-columns:minmax(0,1fr);gap:28px;margin-top:0;display:grid}.insight-item{grid-template-columns:50px minmax(0,1fr);column-gap:24px;display:grid}.insight-item+.insight-item{border-top:1px solid #d5ddc8;padding-top:28px}.insight-item__symbol{font-family:var(--pb-mono);color:var(--pb-cyan);grid-row:1/3;font-size:22px}.insight-item__title{grid-column:2;margin:0 0 12px;font-size:18px;font-weight:600;line-height:1.5}.insight-item__body{color:var(--pb-ink-muted);grid-column:2;margin:0;font-size:16px;line-height:1.9}@media (width>=900px){.insight-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px}.insight-item{grid-template-columns:minmax(0,1fr)}.insight-item+.insight-item{border-top:0;border-left:1px solid #d5ddc8;padding-top:0;padding-left:32px}.insight-item__symbol{grid-row:auto;margin-bottom:10px}.insight-item__title,.insight-item__body{grid-column:1}}.link-list{border-top:1px solid #d5ddc8;grid-template-columns:minmax(0,1fr);gap:0;display:grid}.link-row{color:var(--pb-ink);border-bottom:1px solid #d5ddc8;grid-template-columns:42px minmax(0,1fr) 24px;align-items:baseline;gap:6px 20px;padding:22px 0;text-decoration:none;display:grid}.link-row:hover{color:var(--pb-cyan);background:#e3e9d6}.link-row__code{font-family:var(--pb-mono);color:var(--pb-cyan);grid-row:1/3;align-self:center;font-size:12px}.link-row__title{font-size:18px;font-weight:600}.link-row__blurb{color:var(--pb-ink-muted);grid-column:2;font-size:15px;line-height:1.8}.link-row__arrow{color:var(--pb-cyan);grid-area:1/3/3;align-self:center;font-size:22px}.content-block--faq details{border-bottom:1px solid var(--pb-line);padding:24px 0}.content-block--faq details:first-of-type{border-top:1px solid var(--pb-line)}.content-block--faq summary{cursor:pointer;justify-content:space-between;align-items:center;gap:20px;font-size:18px;font-weight:600;list-style:none;display:flex}.content-block--faq summary h3{width:100%;font:inherit;justify-content:space-between;align-items:center;gap:20px;margin:0;display:flex}.content-block--faq summary::-webkit-details-marker{display:none}.content-block--faq summary span{color:var(--pb-cyan);font-size:23px;font-weight:400;transition:transform .15s}.content-block--faq details[open] summary span{transform:rotate(45deg)}.content-block--faq details p{max-width:none;color:var(--pb-ink-muted);margin:18px 32px 0 0;font-size:16px;line-height:1.9}@media (width<=700px){.content-sections,.home-guide{gap:16px;margin-top:48px}.next-steps+.content-sections{margin-top:36px}.content-block{padding:28px 4px}.content-block--metrics,.content-block--insights,.content-block--links{padding:28px 20px}.content-block__head{margin-bottom:26px}.metric-item{grid-template-columns:minmax(0,1fr);gap:8px;padding:20px 0}.step-item{grid-template-columns:26px minmax(0,1fr);gap:12px}.link-row{grid-template-columns:32px minmax(0,1fr) 20px;column-gap:12px}.insight-item{grid-template-columns:minmax(0,1fr)}.insight-item__symbol{grid-row:auto;margin-bottom:12px}.insight-item__title,.insight-item__body{grid-column:1}}
