.visual-lab__invite{color:var(--ink-soft);margin:4px 0 8px;font-size:.9em}.visual-lab__choices{border:0;gap:6px;min-width:0;margin:8px 0;padding:0;display:grid}.visual-lab__choices legend{color:var(--ink-soft);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px;padding:0;font-size:11px;font-weight:700}.visual-lab__choice{border:1px solid var(--line);background:var(--surface-alt);min-height:44px;color:var(--ink);cursor:pointer;border-radius:4px;align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.visual-lab__choice:has(input:checked){border-color:var(--chapter-accent);background:var(--chapter-tint);box-shadow:inset 4px 0 0 var(--chapter-accent)}.visual-lab__choice:focus-within{outline:2px solid var(--chapter-accent);outline-offset:2px}.visual-lab__choice input{width:18px;height:18px;accent-color:var(--chapter-accent);flex:none;margin:2px 0 0}.visual-lab__choice-body{overflow-wrap:anywhere;gap:2px;min-width:0;display:grid}.visual-lab__tick{color:var(--chapter-ink,var(--ink-soft));font-size:.8em;font-style:normal}.visual-lab__figure svg{width:100%;max-width:520px;height:auto;margin:8px auto;display:block}.visual-lab__explain{border-left:4px solid var(--chapter-accent);background:var(--chapter-tint);color:var(--ink);margin:8px 0;padding:8px 10px}.visual-lab__explain--diff{border-left-color:var(--warning);background:var(--warning-soft)}.visual-lab__actions{flex-wrap:wrap;gap:6px;margin:8px 0 0;display:flex}.visual-lab__controls{flex-wrap:wrap;align-items:end;gap:8px 16px;margin:8px 0;display:flex}.visual-lab__slider{min-width:150px;color:var(--ink-soft);flex:150px;gap:2px;font-size:.85em;display:grid}.visual-lab__slider input{width:100%;min-height:28px;accent-color:var(--chapter-accent)}.visual-lab__slider output{font-family:var(--mono);color:var(--ink-strong)}.visual-lab__cards{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:6px;margin:8px 0;display:grid}.visual-lab__group{color:var(--ink-soft);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;margin:10px 0 2px;font-size:11px;font-weight:700}.visual-lab__row{gap:3px;margin:6px 0;display:grid}.visual-lab__row-label{color:var(--ink);overflow-wrap:anywhere;font-size:.85em}.visual-lab__readout{font-family:var(--mono);color:var(--ink-soft);overflow-wrap:anywhere;font-size:.8em}.visual-lab__track{border:1px solid var(--line);background:var(--surface-alt);border-radius:3px;height:20px;position:relative}.visual-lab__fill{background:var(--chapter-accent);border-radius:2px;width:0;height:100%}.visual-lab__fill--warn{background:var(--warning)}.visual-lab__marker{background:var(--ink-strong);width:2px;position:absolute;top:-4px;bottom:-4px}.visual-lab__legend{color:var(--ink-soft);margin:4px 0;font-size:.8em}.visual-lab__cells{flex-wrap:wrap;gap:2px;margin:6px 0;display:flex}.visual-lab__cell{box-sizing:border-box;border:1px solid var(--line);width:8px;height:8px}.visual-lab__cell--on{border-color:var(--chapter-accent);background:var(--chapter-accent)}.visual-lab__cell--warn{border-color:var(--warning);background:var(--warning)}.visual-lab__bytes,.visual-lab__digest-row{font-family:var(--mono);color:var(--ink);flex-wrap:wrap;gap:3px 8px;font-size:.85em;display:flex}.visual-lab__byte,.visual-lab__hex{border-radius:2px;padding:0 1px}.visual-lab__hexgroup{display:inline-flex}.visual-lab__hex--diff{background:var(--warning-soft);color:var(--ink-strong);box-shadow:inset 0 -2px 0 var(--warning)}.visual-lab__hist{border-bottom:1px solid var(--ink-soft);align-items:flex-end;gap:2px;height:120px;margin:4px 0 0;padding:0;display:flex;position:relative}.visual-lab__bin{flex:1 1 0;align-items:flex-end;min-width:0;height:100%;display:flex}.visual-lab__bar{background:var(--chapter-accent);border-radius:2px 2px 0 0;width:100%}.visual-lab__bar--warn{background:var(--warning)}.visual-lab__line{background:var(--ink-strong);width:2px;position:absolute;top:0;bottom:0}.visual-lab__pause{border:1px solid var(--ink-soft);background:var(--surface);color:var(--ink-strong);border-radius:3px;padding:0 4px;font-size:11px;line-height:16px;position:absolute;top:0;transform:translate(-50%)}.visual-lab__ticks,.visual-lab__stats{height:18px;font-family:var(--mono);color:var(--ink-soft);font-size:11px;position:relative}.visual-lab__ticks span,.visual-lab__stats span{white-space:nowrap;position:absolute;top:2px;transform:translate(-50%)}.visual-lab__stats .visual-lab__stat--end{transform:translate(-100%)}.visual-lab__ticks span:first-child{transform:none}.visual-lab__ticks span:last-child{transform:translate(-100%)}@media (prefers-reduced-motion:no-preference){.visual-lab__fill{transition:width .25s}.visual-lab__line,.visual-lab__pause{transition:left .15s}}.visual-lab svg{color:var(--ink)}.visual-lab .v-t{fill:var(--ink);font-size:12.5px}.visual-lab .v-sm{font-size:11px}.visual-lab .v-b{font-weight:700}.visual-lab .v-s{fill:var(--ink-soft)}.visual-lab .v-m{font-family:var(--mono)}.visual-lab .v-box{fill:var(--surface-alt);stroke:var(--ink-soft);stroke-width:1.2px}.visual-lab .v-ok{fill:var(--chapter-tint);stroke:var(--chapter-accent);stroke-width:2px}.visual-lab .v-warn{fill:var(--warning-soft);stroke:var(--warning);stroke-width:2px}.visual-lab .v-dim{fill:none;stroke:var(--ink-soft);stroke-width:1px;stroke-dasharray:4 3}.visual-lab .v-dim~text,.visual-lab .v-skip text{fill:var(--ink-soft);opacity:.75}.visual-lab .v-zone{fill:var(--chapter-tint);stroke:var(--ink-soft);stroke-width:1px;stroke-dasharray:5 4;opacity:.7}.visual-lab .v-arrow{fill:none;stroke:var(--ink-soft);stroke-width:1.6px;marker-end:url(#v-arr)}.visual-lab .v-faint{opacity:.3}.visual-lab .v-mk{fill:var(--ink-soft)}.visual-lab .v-node{fill:var(--surface);stroke:var(--ink-soft);stroke-width:1.5px;opacity:.5}.visual-lab .v-node--on{fill:var(--chapter-accent);stroke:var(--chapter-accent);opacity:1}
