:root{--bg:#0b1120;--bg-2:#131c2e;--bg-3:#1c273b;--line:#26324a;--line-strong:#3b4a66;--text:#f1f5f9;--text-2:#cbd5e1;--muted:#94a3b8;--accent:#3ddc84;--accent-ink:#052e16;--accent-soft:#3ddc841f;--danger:#f87171;--danger-ink:#2b0707;--warn:#fbbf24;--radius:14px;--radius-sm:10px;--ease:cubic-bezier(.2, 0, 0, 1);--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", Menlo, Consolas, monospace;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}[hidden]{display:none!important}body{background:var(--bg);color:var(--text);font:16px/1.6 var(--font);flex-direction:column;min-height:100dvh;margin:0;display:flex}main{flex:1}a{color:var(--accent);text-underline-offset:3px}h1,h2,h3{text-wrap:balance;line-height:1.2}.icon{flex:none}:where(a,button,summary,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.container{width:min(1100px,100% - 2rem);margin-inline:auto}.skip-link{z-index:100;background:var(--accent);color:var(--accent-ink);border-radius:var(--radius-sm);padding:.6rem 1rem;font-weight:700;text-decoration:none;position:absolute;top:-100px;left:1rem}.skip-link:focus{top:.75rem}.site-header{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg) 85%, transparent);z-index:10;backdrop-filter:blur(8px);position:sticky;top:0}.header-inner{align-items:center;gap:1rem;min-height:60px;display:flex}.header-spacer{flex:1}.brand{min-height:44px;color:var(--text);align-items:center;gap:.5rem;font-size:1.15rem;font-weight:800;text-decoration:none;display:inline-flex}.main-nav ul{align-items:center;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.main-nav a{min-height:40px;color:var(--text-2);white-space:nowrap;transition:background-color .15s var(--ease), color .15s var(--ease);border-radius:999px;align-items:center;gap:.45rem;padding:.35rem .75rem;font-size:.92rem;font-weight:600;text-decoration:none;display:inline-flex}.main-nav a .icon{color:var(--muted);transition:color .15s var(--ease)}.main-nav a:hover{background:var(--bg-2);color:var(--text)}.main-nav a[aria-current=page]{background:var(--bg-3);color:var(--text)}.main-nav a:hover .icon,.main-nav a[aria-current=page] .icon{color:var(--accent)}.tests-menu{display:none}@media (width<=1040px){.main-nav{display:none}.tests-menu{display:block}}.menu{position:relative}.menu summary{border:1px solid var(--line);min-height:40px;color:var(--text-2);cursor:pointer;user-select:none;transition:border-color .15s var(--ease), color .15s var(--ease);border-radius:999px;align-items:center;gap:.4rem;padding:.35rem .8rem;font-size:.92rem;font-weight:600;list-style:none;display:inline-flex}.menu summary::-webkit-details-marker{display:none}.menu summary:hover,.menu[open] summary{border-color:var(--line-strong);color:var(--text)}.menu .chev{transition:transform .2s var(--ease)}.menu[open] .chev{transform:rotate(180deg)}.menu ul{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius-sm);z-index:20;min-width:190px;margin:0;padding:.4rem;list-style:none;position:absolute;top:calc(100% + 6px);box-shadow:0 12px 32px #00000073}.tests-menu ul{min-width:250px;left:0}.lang ul{right:0}.menu a{min-height:44px;color:var(--text);border-radius:8px;align-items:center;gap:.6rem;padding:.4rem .7rem;text-decoration:none;display:flex}.menu a:hover,.menu a[aria-current]{background:var(--bg-3)}.menu a .icon{color:var(--accent)}.menu-sep{border-top:1px solid var(--line);margin-top:.3rem;padding-top:.3rem}.menu-sep a{color:var(--muted);font-size:.9rem}.site-footer{border-top:1px solid var(--line);color:var(--muted);text-align:center;margin-top:4rem;padding:2.5rem 0;font-size:.9rem}.footer-inner{flex-direction:column;justify-content:center;align-items:center;display:flex}.footer-inner p{margin:.25rem 0}.footer-links{flex-wrap:wrap;justify-content:center;gap:0 1.25rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.footer-links a{min-height:44px;color:var(--muted);align-items:center;display:inline-flex}.footer-links a:hover{color:var(--text)}.breadcrumb ol{color:var(--muted);flex-wrap:wrap;gap:.4rem;margin:1.25rem 0 0;padding:0;font-size:.88rem;list-style:none;display:flex}.breadcrumb li+li:before{content:"/";color:var(--line-strong);margin-right:.4rem}.breadcrumb a{color:var(--muted)}.breadcrumb a:hover{color:var(--text)}.hero{text-align:center;max-width:820px;margin-inline:auto;padding:3rem 0 1.5rem}.hero.compact{padding:1.25rem 0 1rem}.hero h1{margin:0 auto .75rem;font-size:clamp(1.8rem,4vw,2.8rem)}.lead{color:var(--muted);max-width:720px;margin:0 auto;font-size:1.1rem}.tool-cards{margin:2rem 0}.tool-cards h2{margin:0 0 1rem;font-size:1.3rem}.cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);height:100%;color:var(--text);transition:border-color .2s var(--ease), transform .2s var(--ease), background-color .2s var(--ease);flex-direction:column;gap:.5rem;padding:1.25rem;text-decoration:none;display:flex}.card:hover{border-color:var(--accent);background:color-mix(in srgb, var(--bg-2) 85%, var(--accent) 4%);transform:translateY(-2px)}.card-icon{background:var(--accent-soft);width:44px;height:44px;color:var(--accent);border-radius:12px;place-items:center;display:grid}.card h3{margin:.25rem 0 0;font-size:1.15rem}.card p{color:var(--muted);flex:1;margin:0;font-size:.95rem}.card-cta{color:var(--accent);align-items:center;gap:.35rem;margin-top:.5rem;font-size:.92rem;font-weight:600;display:inline-flex}.card:hover .card-cta .icon{transform:translate(3px)}.card-cta .icon{transition:transform .2s var(--ease)}.btn{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--bg-3);min-height:44px;color:var(--text);font:inherit;cursor:pointer;transition:border-color .15s var(--ease), filter .15s var(--ease), transform .1s var(--ease);justify-content:center;align-items:center;gap:.4rem;padding:.6rem 1.1rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--line-strong)}.btn:active{transform:scale(.98)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover{filter:brightness(1.08);border-color:var(--accent)}.btn-danger{background:var(--danger);border-color:var(--danger);color:var(--danger-ink)}.btn-ghost{background:0 0}.btn-lg{min-height:52px;padding:.85rem 1.6rem;font-size:1.1rem}.btn-sm{padding:.35rem .8rem;font-size:.88rem}.row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.row.between{justify-content:space-between}.muted{color:var(--muted)}.panel{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);margin-top:1rem;padding:1.25rem}.panel h2{margin:0 0 .75rem;font-size:1.2rem}.tool{margin:1rem 0 2rem}.stage{border-radius:var(--radius);border:1px solid var(--line);background:radial-gradient(ellipse at top, #13213a, var(--bg) 70%);isolation:isolate;place-items:center;min-height:340px;display:grid;position:relative;overflow:hidden}.stage-bg{z-index:-1;position:absolute;inset:0}.stage-bg video,.stage-bg canvas{object-fit:cover;opacity:.55;width:100%;height:100%;display:block;position:absolute;inset:0}.stage-bg canvas{opacity:.35;mix-blend-mode:screen}@media (prefers-reduced-motion:reduce){.stage-bg canvas{opacity:.04}}.readout{text-align:center;width:100%;padding:2rem 1rem}.readout-label{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:.8rem}.time{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;text-shadow:0 2px 24px #0009;font-size:clamp(3rem,13vw,9rem);font-weight:700;line-height:1.05}.stats{background:color-mix(in srgb, var(--bg) 90%, transparent);border:1px solid color-mix(in srgb, var(--line) 85%, transparent);border-radius:var(--radius);backdrop-filter:blur(14px);flex-wrap:wrap;justify-content:center;align-items:stretch;gap:.75rem;width:min(540px,100%);margin:1.25rem auto 1rem;padding:.6rem .8rem;display:flex;box-shadow:0 4px 24px #00000073}.stat{text-align:center;border-radius:var(--radius-sm);background:#ffffff08;flex-direction:column;flex:130px;justify-content:center;align-items:center;min-width:120px;padding:.5rem .75rem;display:flex}.stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;margin-bottom:.2rem;font-size:.75rem}.stat-value{font-family:var(--mono);font-variant-numeric:tabular-nums;color:#fff;white-space:nowrap;text-overflow:ellipsis;text-align:center;max-width:100%;min-height:1.8rem;font-size:clamp(1.25rem,3.5vw,1.55rem);font-weight:700;line-height:1.2;display:block;overflow:hidden}.stat-sub{color:var(--accent);white-space:nowrap;min-height:1rem;margin-top:.15rem;font-size:.78rem;font-weight:500;line-height:1.2}.warn{color:var(--warn);border-radius:var(--radius-sm);text-align:left;text-wrap:balance;backdrop-filter:blur(8px);background:#fbbf241f;border:1px solid #fbbf2459;align-items:center;gap:.5rem;max-width:min(540px,92%);margin:1rem auto 0;padding:.6rem 1.25rem;font-size:.9rem;font-weight:600;line-height:1.4;display:inline-flex}.stage-actions{z-index:2;justify-content:center;align-items:center;margin-top:1.5rem;display:flex;position:relative}.running-actions{background:color-mix(in srgb, var(--bg) 80%, transparent);border:1px solid var(--line);backdrop-filter:blur(12px);border-radius:12px;flex-wrap:wrap;justify-content:center;gap:.75rem;padding:.5rem;display:flex}.stage:fullscreen{border:0;border-radius:0;width:100vw;height:100vh}.stage:fullscreen .time{font-size:min(20vw,32vh)}.stage:fullscreen .stat-value{font-size:clamp(1.6rem,3.5vw,3rem)}.result{border-color:var(--accent)}.result-reason{color:var(--muted);margin:0}.result-time{color:var(--accent);margin:.25rem 0;font-size:clamp(2rem,6vw,3.2rem);font-weight:800}.result-meta{color:var(--muted);margin:0 0 1rem}.chart{background:var(--bg);border-radius:var(--radius-sm);width:100%;height:180px;margin-bottom:1rem}.chart .grid{stroke:var(--line);stroke-width:1px;vector-effect:non-scaling-stroke}.chart .line{fill:none;stroke:var(--accent);stroke-width:2.5px;vector-effect:non-scaling-stroke;stroke-linejoin:round}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:.55rem .6rem}th{color:var(--muted);font-weight:600}.kb-tool{--k-ok:var(--accent);--k-down:#60a5fa;--k-bad:#fb923c}.kb-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;margin-bottom:1rem;display:flex}.kb-field{color:var(--muted);align-items:center;gap:.5rem;font-size:.92rem;display:inline-flex}.kb-field select{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-2);min-height:40px;color:var(--text);font:inherit;cursor:pointer;padding:.35rem .6rem}.kb-check{min-height:40px;color:var(--text-2);cursor:pointer;align-items:center;gap:.5rem;font-size:.92rem;display:inline-flex}.kb-check input{width:18px;height:18px;accent-color:var(--accent);cursor:pointer}.kb-toolbar .btn{margin-left:auto}.kb-stats{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.4fr);gap:.75rem;margin-bottom:1rem;display:grid}.kb-stat{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;gap:.15rem;min-width:0;padding:.7rem .9rem;display:flex}.kb-stat-value{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:700;line-height:1.2}.kb-stat-value small{color:var(--muted);font-size:.9rem;font-weight:500}.kb-stat-value.is-bad{color:var(--k-bad)}.kb-last-key{font-family:var(--mono);white-space:nowrap;text-overflow:ellipsis;font-size:1.15rem;font-weight:700;line-height:1.3;overflow:hidden}.kb-last-code{font-family:var(--mono);color:var(--muted);font-size:.8rem}.kb-wrap{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;overflow-x:auto}.kb{user-select:none;gap:1.25%;min-width:640px;font-size:clamp(10px,1.15vw,14px);display:flex}.kb:has(.kb-pad){min-width:860px}.kb-main{flex:15 1 0;gap:.4em;display:grid}.kb-nav,.kb-pad{align-content:start;gap:.4em;padding-top:3.6em;display:grid}.kb-nav{flex:1 1 0}.kb-pad{flex:4 1 0;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:3.2em}.kb-pad .k{height:auto}.kb-row{gap:.4em;display:flex}.kb-fn{margin-bottom:.6em}.k{flex:var(--w,1) 1 0;border:1px solid var(--line-strong);background:var(--bg-3);min-width:0;height:3.2em;color:var(--text-2);white-space:nowrap;transition:background-color .12s var(--ease), border-color .12s var(--ease), transform 60ms var(--ease);border-bottom-width:3px;border-radius:7px;justify-content:center;align-items:center;padding:0 .3em;font-weight:600;line-height:1;display:flex;overflow:hidden}.kb-fn .k{height:3.06em;font-size:.85em}.k.ok{background:color-mix(in srgb, var(--k-ok) 22%, var(--bg-3));border-color:var(--k-ok);color:var(--text)}.k.bad{background:color-mix(in srgb, var(--k-bad) 28%, var(--bg-3));border-color:var(--k-bad);color:var(--text)}.k.down{background:var(--k-down);border-color:var(--k-down);color:#04122b;border-bottom-width:1px;transform:translateY(2px)}.k.off{color:var(--muted);background:0 0;border-style:dashed}.k-arrows{flex:var(--w) 1 0;align-items:flex-end;gap:.4em;display:flex}.k-ud{flex:1 1 0;gap:.2em;display:grid}.k-ud .k{height:1.765em;font-size:.85em}.kb-legend{color:var(--muted);flex-wrap:wrap;gap:.5rem 1.25rem;margin:.75rem 0 0;padding:0;font-size:.85rem;list-style:none;display:flex}.kb-legend li{align-items:center;gap:.4rem;display:inline-flex}.k-dot{border:1px solid var(--line-strong);border-radius:4px;width:14px;height:14px}.k-dot.down{background:var(--k-down);border-color:var(--k-down)}.k-dot.ok{background:color-mix(in srgb, var(--k-ok) 35%, var(--bg-3));border-color:var(--k-ok)}.k-dot.bad{background:color-mix(in srgb, var(--k-bad) 35%, var(--bg-3));border-color:var(--k-bad)}.k-dot.off{border-style:dashed}.kb-alert{min-height:1.6em;margin:.75rem 0 0;font-size:.95rem;font-weight:600}.kb-alert[data-kind=stuck],.kb-alert[data-kind=doubled]{color:var(--k-bad)}.kb-alert[data-kind=done]{color:var(--accent)}.kb-others{font-family:var(--mono);margin-bottom:.5rem;font-size:.85rem}.kb-type{color:var(--muted);gap:.4rem;margin-top:.75rem;font-size:.92rem;display:grid}.kb-type textarea{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-2);width:100%;min-height:3.5rem;color:var(--text);font:1rem/1.5 var(--font);resize:vertical;padding:.7rem .9rem}.kb-type textarea:focus{border-color:var(--accent)}@media (width<=760px){.kb-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.kb-last{grid-column:1/-1}}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.mic-panel{gap:1rem;display:grid}.tool-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.verdict{flex:320px;align-items:flex-start;gap:.8rem;min-height:4.5rem;display:flex}.verdict p{margin:0}.verdict-icon{background:var(--bg-3);width:44px;height:44px;color:var(--muted);border-radius:12px;flex:none;place-items:center;display:grid}.verdict-title{font-size:1.15rem;font-weight:700}.verdict-text{color:var(--muted);min-height:3.2em;font-size:.95rem;line-height:1.6}@media (width<=640px){.verdict-text{min-height:4.8em}}.verdict[data-state=good] .verdict-icon{background:var(--accent-soft);color:var(--accent)}.verdict[data-state=good] .verdict-title{color:var(--accent)}.verdict:is([data-state=clipping],[data-state=low],[data-state=noisy],[data-state=silent],[data-state=black],[data-state=dark],[data-state=backlit],[data-state=bright],[data-state=lowFps],[data-state=lowRes],[data-state=blocked]) .verdict-icon{color:var(--warn);background:#fbbf2424}.verdict:is([data-state=clipping],[data-state=low],[data-state=noisy],[data-state=silent],[data-state=black],[data-state=dark],[data-state=backlit],[data-state=bright],[data-state=lowFps],[data-state=lowRes],[data-state=blocked]) .verdict-title{color:var(--warn)}.verdict[data-state=error] .verdict-icon{color:var(--danger);background:#f8717124}.verdict[data-state=error] .verdict-text{color:var(--text-2)}.tool-actions{justify-items:end;display:grid}.tool-actions>.btn{grid-area:1/1}.tool-actions>.btn[hidden]{visibility:hidden;display:inline-flex!important}.tool-actions>.btn.swap-label[hidden]{display:inline-grid!important}.meter{background:var(--bg);border:1px solid var(--line);border-radius:999px;height:22px;margin-bottom:1.4rem;position:relative}.meter-bar{background:var(--accent);border-radius:999px;width:0;max-width:calc(100% - 4px);transition:width 60ms linear;position:absolute;inset:2px auto 2px 2px}.meter-bar.is-clip{background:var(--danger)}.meter-peak{pointer-events:none;width:calc(100% - 2px);transition:transform .15s var(--ease);position:absolute;top:-3px;bottom:-3px;left:0}.meter-peak:before{content:"";background:var(--text);width:2px;position:absolute;top:0;bottom:0;left:0}.meter-scale{font:.72rem var(--mono);color:var(--muted);justify-content:space-between;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0}.mic-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.mic-num{font-size:1.2rem}.mic-controls{flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;display:flex}.mic-controls select{text-overflow:ellipsis;width:280px;max-width:100%}.mic-info{font:.85rem var(--mono)}.swap-label{display:inline-grid}.swap-label>[data-label]{grid-area:1/1}.swap-label[data-mode=start]>[data-label=allow],.swap-label[data-mode=allow]>[data-label=start]{visibility:hidden}.rec{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);gap:.6rem;padding:.9rem 1rem;display:grid}.rec-head{align-items:center;gap:.5rem;font-weight:700;display:flex}.rec-dot{background:var(--line-strong);border-radius:50%;width:10px;height:10px}.rec[data-phase=recording] .rec-dot{background:var(--danger);animation:rec-pulse 1s var(--ease) infinite alternate}.rec[data-phase=done] .rec-dot{background:var(--accent)}@keyframes rec-pulse{to{opacity:.25}}.rec-status{font-variant-numeric:tabular-nums}.rec[data-phase=recording] .rec-status{color:var(--danger)}.rec-wave{height:72px;position:relative}.rec-wave canvas{width:100%;height:100%;display:block}.rec-wave input[type=range]{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.rec-wave input[type=range]:disabled{cursor:default}.rec-wave:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.rec-empty{text-align:center;color:var(--muted);pointer-events:none;place-items:center;padding:0 1rem;font-size:.9rem;display:grid;position:absolute;inset:0}.rec:not([data-phase=empty]) .rec-empty{visibility:hidden}.rec-player{align-items:center;gap:.75rem;display:flex}.rec-play{background:var(--accent);width:44px;height:44px;color:var(--accent-ink);cursor:pointer;transition:filter .15s var(--ease), transform .1s var(--ease);border:0;border-radius:50%;place-items:center;display:grid}.rec-play:hover{filter:brightness(1.08)}.rec-play:active{transform:scale(.95)}.rec-play:disabled{background:var(--bg-3);color:var(--muted);cursor:not-allowed;filter:none}.rec-play .icon{grid-area:1/1}.rec-play .i-pause,.rec.is-playing .rec-play .i-play{visibility:hidden}.rec.is-playing .rec-play .i-pause{visibility:visible}.rec-time{font:600 .95rem var(--mono);font-variant-numeric:tabular-nums;color:var(--text-2)}.rec-privacy{color:var(--muted);align-items:center;gap:.4rem;margin:0;font-size:.85rem;display:flex}@media (prefers-reduced-motion:reduce){.rec[data-phase=recording] .rec-dot{animation:none}}.btn:disabled{opacity:.5;cursor:not-allowed}.perm-help{border-radius:var(--radius-sm);background:#fbbf2412;border:1px solid #fbbf2466;gap:.9rem;padding:1rem 1.15rem;display:grid}.perm-note{color:var(--warn);gap:.5rem;margin:0;font-size:.92rem;font-weight:600;display:flex}.perm-note .icon{flex:none;margin-top:.15rem}.perm-note span{min-height:3em;line-height:1.5}.perm-help.is-granted{background:var(--accent-soft);border-color:#3ddc8480}.perm-help.is-granted .perm-note{color:var(--accent)}.perm-block h3{margin:0 0 .4rem;font-size:1rem}.perm-block ol{color:var(--text-2);margin:0;padding-left:1.25rem}.perm-block li+li{margin-top:.2rem}.perm-block p{color:var(--text-2);margin:0}.perm-help .btn{justify-self:start}.cam-panel{gap:1rem;display:grid}.cam-view{aspect-ratio:16/9;border-radius:var(--radius-sm);border:1px solid var(--line);background:#000;position:relative;overflow:hidden}.cam-view video{object-fit:contain;width:100%;height:100%;display:block}.cam-view video.is-mirrored{transform:scaleX(-1)}.cam-placeholder{color:var(--line-strong);place-items:center;display:grid;position:absolute;inset:0}.cam-body,.cam-side{gap:1rem;display:grid}.cam-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;display:grid}@media (width<=760px){.cam-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1024px){.cam-body{grid-template-columns:minmax(0,1fr) 280px;align-items:start}.cam-stats{grid-template-columns:1fr;gap:.6rem}}.mouse-panel,.mouse-body{gap:1rem;display:grid}.mouse-zone{border:1px dashed var(--line-strong);border-radius:var(--radius-sm);background:var(--bg);cursor:crosshair;touch-action:none;user-select:none;height:360px;position:relative;overflow:hidden}.mouse-zone canvas{width:100%;height:100%;position:absolute;inset:0}.mouse-zone-hint{color:var(--muted);pointer-events:none;transition:opacity .3s var(--ease);place-items:center;font-weight:600;display:grid;position:absolute;inset:0}.mouse-zone-hint.is-hidden{opacity:0}.mouse-side{align-items:center;gap:1.25rem;display:flex}.mouse-figure{flex:none;width:150px;height:auto}.mb.tp-click{fill:var(--bg-3)}.mb{fill:var(--bg-2);stroke:var(--line-strong);stroke-width:2px;transition:fill .12s var(--ease), stroke .12s var(--ease)}.mb.ok{fill:color-mix(in srgb, var(--accent) 25%, var(--bg-3));stroke:var(--accent)}.mb.down{fill:#60a5fa;stroke:#60a5fa}.mouse-counts{flex:1;gap:.35rem;margin:0;padding:0;font-size:.9rem;list-style:none;display:grid}.mouse-counts li{background:var(--bg-2);color:var(--text-2);border-radius:8px;justify-content:space-between;gap:.75rem;padding:.3rem .6rem;display:flex}.mouse-counts b{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;min-width:3ch}.mouse-stats{grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem;display:grid}.mouse-stats .is-bad{color:var(--k-bad,#fb923c)}.mouse-actions{justify-content:flex-end;gap:.75rem;display:flex}.mouse-tool .kb-alert{margin:0}.mouse-tool .kb-alert[data-kind=doubled]{color:#fb923c}@media (width>=900px){.mouse-body{grid-template-columns:minmax(0,1fr) 250px;align-items:start}.mouse-side{flex-direction:column;align-items:stretch}.mouse-figure{align-self:center;width:100%}}@media (width<=760px){.mouse-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.mouse-zone{height:280px}}.screen-panel{text-align:center;justify-items:center;gap:1rem;padding:2rem 1.25rem;display:grid}.screen-preview{background:var(--accent-soft);width:72px;height:72px;color:var(--accent);border-radius:18px;place-items:center;display:grid}.screen-hint{max-width:560px;margin:0;font-size:.95rem}.screen-swatches{justify-items:center;gap:.6rem;font-size:.9rem;display:grid}.screen-swatches ul{flex-wrap:wrap;justify-content:center;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.swatch{border:2px solid var(--line-strong);background:var(--c);cursor:pointer;width:44px;height:44px;transition:transform .15s var(--ease), border-color .15s var(--ease);border-radius:50%}.swatch:hover{border-color:var(--text);transform:scale(1.08)}.screen-stage{z-index:1000;cursor:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:pan-y;background:#fff;outline:none;position:fixed;inset:0}.screen-stage.hud-on{cursor:default}.screen-test-open,.screen-test-open body{overflow:hidden}.screen-hud,.screen-close{opacity:0;pointer-events:none;transition:opacity .3s var(--ease);position:absolute}.hud-on .screen-hud,.hud-on .screen-close{opacity:1;pointer-events:auto}.screen-hud{color:#f1f5f9;white-space:nowrap;background:#0f172ad1;border-radius:999px;flex-wrap:wrap;justify-content:center;gap:.25rem .9rem;padding:.55rem 1.1rem;font-size:.92rem;font-weight:600;display:flex;bottom:1.5rem;left:50%;transform:translate(-50%)}.screen-help{color:#94a3b8;font-weight:500}.screen-close{color:#f1f5f9;cursor:pointer;background:#0f172ad1;border:0;border-radius:50%;place-items:center;width:48px;height:48px;display:grid;top:1rem;right:1rem}@media (hover:none){.screen-help{display:none}}.sound-panel{gap:1.25rem;margin-top:0;padding:1.5rem;display:grid}.sound-modes{text-align:center;border:0;justify-items:center;gap:.5rem;margin:0;padding:0;display:grid}.sound-modes legend{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5rem;padding:0;font-size:.85rem}.segmented{border:1px solid var(--line);background:var(--bg);border-radius:999px;padding:4px;display:inline-flex}.segmented label{cursor:pointer;position:relative}.segmented input{opacity:0;pointer-events:none;position:absolute}.segmented span{min-height:40px;color:var(--muted);transition:background-color .15s var(--ease), color .15s var(--ease);border-radius:999px;align-items:center;padding:0 1.25rem;font-weight:600;display:inline-flex}.segmented input:checked+span{background:var(--bg-3);color:var(--text)}.segmented input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.sound-mode-hint{max-width:560px;min-height:2.8em;margin:0;font-size:.92rem}.sound-sides{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.sound-side{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-3);min-height:150px;color:var(--text-2);font:inherit;cursor:pointer;transition:border-color .15s var(--ease), background-color .15s var(--ease), color .15s var(--ease), transform .1s var(--ease);align-content:center;justify-items:center;gap:.6rem;padding:1.25rem .75rem;display:grid}.sound-side:hover{border-color:var(--line-strong)}.sound-side:active{transform:scale(.98)}.sound-side[aria-pressed=true]{border-color:var(--danger);color:var(--danger);background:#f871711a}.sound-side-icon{gap:.25rem;display:flex}.sound-side-eq{align-items:flex-end;gap:4px;height:34px;display:none}.sound-side-eq i{transform-origin:bottom;width:5px;height:100%;animation:eq .9s var(--ease) infinite alternate;background:currentColor;border-radius:2px}.sound-side-eq i:nth-child(2){animation-delay:-.3s}.sound-side-eq i:nth-child(3){animation-delay:-.6s}.sound-side-eq i:nth-child(4){animation-delay:-.15s}@keyframes eq{0%{transform:scaleY(.25)}to{transform:scaleY(1)}}.sound-side-stop{background:var(--danger);color:var(--danger-ink);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;align-items:center;gap:.4rem;padding:.2rem .7rem;font-size:.8rem;font-weight:700;display:none}.stop-square{background:currentColor;border-radius:1px;width:8px;height:8px}.sound-side[aria-pressed=true] .sound-side-icon{display:none}.sound-side[aria-pressed=true] .sound-side-eq,.sound-side[aria-pressed=true] .sound-side-stop{display:inline-flex}.sound-side[aria-pressed=true]:hover{border-color:var(--danger);background:#f8717129}@media (prefers-reduced-motion:reduce){.sound-side-eq i{animation:none;transform:scaleY(.7)}}.sound-side .flip{transform:scaleX(-1)}.sound-side-label{font-size:1.1rem;font-weight:700}.sound-status{text-align:center;color:var(--text-2);margin:0;font-weight:600}.sound-freq{background:var(--bg);border:1px solid var(--line);min-width:15ch;color:var(--accent);font:600 .92rem var(--mono);font-variant-numeric:tabular-nums;text-align:left;border-radius:999px;margin-left:.5rem;padding:.1rem .6rem;display:inline-block}.sound-hint{text-align:center;margin:-.75rem 0 0;font-size:.88rem}@media (width<=640px){.mic-stats{grid-template-columns:1fr}.sound-side{min-height:110px}.sound-side-label{font-size:.95rem}}.prose{max-width:760px;margin-top:2rem}.prose h2{margin:2rem 0 .5rem;font-size:1.45rem}.prose p{color:var(--text-2)}.faq details{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;justify-content:space-between;align-items:center;gap:1rem;min-height:44px;padding:.6rem 0;font-weight:600;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";color:var(--accent);font:600 1.3rem/1 var(--mono);transition:transform .2s var(--ease);flex:none}.faq details[open] summary:after{transform:rotate(45deg)}.faq details p{margin:0 0 .9rem}.ad-slot{justify-items:center;gap:.3rem;margin:2rem auto;display:grid}.ad-label{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:.7rem}.ad-box{max-width:100%;display:inline-block}.ad-banner .ad-box{width:320px;height:100px}.ad-rect .ad-box{width:300px;height:250px}@media (width>=500px){.ad-banner .ad-box{width:468px;height:60px}}@media (width>=800px){.ad-banner .ad-box{width:728px;height:90px}.ad-rect .ad-box{width:336px;height:280px}}.ad-banner{margin-bottom:2.75rem}.ad-placeholder{border:1px dashed var(--line);border-radius:var(--radius-sm);color:var(--muted);place-items:center;font-size:.85rem;display:grid}@media (width<=640px){.header-inner{gap:.5rem}.brand span{display:none}.tests-menu ul{position:fixed;top:64px;left:1rem;right:1rem}.stage{flex-direction:column;display:flex}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.card:hover{transform:none}}
