.lab-head{gap:14px;display:grid}.intro{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}@media (width<=760px){.intro{grid-template-columns:minmax(0,1fr)}}.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;gap:10px;min-width:0;padding:16px 18px;display:grid}.card h3{font:600 1.05rem var(--body);margin:0}pre.snip{font-family:var(--mono);background:var(--bg);border-radius:6px;margin:0;padding:10px 12px;font-size:.82rem;line-height:1.55;overflow-x:auto}.readhow{color:var(--muted);flex-wrap:wrap;gap:10px 22px;font-size:.88rem;display:flex}.readhow span{align-items:center;gap:8px;display:inline-flex}.sw{border-radius:2px;width:24px;height:3px;display:inline-block}.lab{gap:14px;display:grid}.pickers{gap:10px;display:grid}.seg{border:1px solid var(--line);background:var(--surface);border-radius:999px;width:max-content;max-width:100%;padding:3px;display:inline-flex}.seg button{font:600 .92rem var(--body);color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:7px 16px}.seg button[aria-pressed=true]{background:var(--fg);color:var(--bg)}.ops{flex-wrap:wrap;gap:8px;display:flex}.op{font:500 .9rem var(--body);border:1px solid var(--line);background:var(--surface);color:var(--fg);cursor:pointer;border-radius:7px;align-items:baseline;gap:8px;padding:6px 12px;display:inline-flex}.op small{font-family:var(--mono);color:var(--muted);font-size:.72rem}.op[aria-pressed=true]{border-color:var(--hl);box-shadow:inset 0 0 0 1px var(--hl);background:var(--hl-soft)}.bench{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}.benchhead{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:baseline;gap:6px 16px;padding:12px 16px;display:flex}.benchhead .call{font:600 1rem var(--mono)}.badge{font:600 .74rem var(--mono);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:2px 8px}.benchhead .sum{color:var(--muted);flex-basis:100%;font-size:.92rem}.stagewrap{border-bottom:1px solid var(--line);background-color:var(--bg);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:24px 24px;overflow-x:auto}.stagewrap svg{width:100%;height:auto;display:block}.lower{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);display:grid}@media (width<=760px){.lower{grid-template-columns:minmax(0,1fr)}.code{border-bottom:1px solid var(--line);border-right:0!important}}.code{font-family:var(--mono);border-right:1px solid var(--line);min-width:0;padding:12px 0;font-size:.82rem;line-height:1.5;overflow-x:auto}.code div{white-space:pre;border-left:3px solid #0000;gap:12px;padding:1px 16px 1px 8px;display:flex}.code div .ln{color:var(--muted);opacity:.6;text-align:right;user-select:none;flex:none;width:2ch}.code div.on{background:var(--hl-soft);border-left-color:var(--hl);font-weight:600}.narr{align-content:start;gap:14px;min-width:0;padding:16px 18px;display:grid}.stepno{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.74rem}.narr p{font-size:1rem}.vars{flex-wrap:wrap;gap:6px;display:flex}.vars span{font:400 .8rem var(--mono);background:var(--bg);border:1px solid var(--line);border-radius:5px;padding:2px 7px}.vars:empty{display:none}.controls{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;display:flex}.btn{font:600 .9rem var(--body);border:1px solid var(--line);background:var(--bg);color:var(--fg);cursor:pointer;border-radius:8px;padding:8px 14px}.btn.primary{background:var(--ptr);border-color:var(--ptr);color:var(--surface)}.btn:disabled{opacity:.4;cursor:default}.dots{flex-wrap:wrap;gap:6px;margin-left:auto;display:flex}.dot{background:var(--line);cursor:pointer;border:0;border-radius:50%;width:10px;height:10px;padding:0}.dot.on{background:var(--hl)}.hint{color:var(--muted);padding:0 16px 12px;font-size:.8rem}.cell{fill:var(--surface);stroke:var(--fg);stroke-width:1.6px}.focus .cell{stroke:var(--hl);stroke-width:3px}.val{fill:var(--fg);font:600 20px var(--mono);text-anchor:middle}.cap{fill:var(--muted);font:400 10px var(--mono);text-anchor:middle}.nul{stroke:var(--muted);stroke-width:1.4px}.arrow{fill:none;stroke:var(--ptr);stroke-width:2px}.arrow.hl{stroke:var(--hl);stroke-width:3px}.sdot{fill:var(--ptr)}.sdot.hl{fill:var(--hl)}.vbox{fill:var(--fg)}.vtxt{fill:var(--bg);font:600 13px var(--mono);text-anchor:middle}.var.loc .vbox{fill:var(--surface);stroke:var(--fg);stroke-width:1.4px}.var.loc .vtxt{fill:var(--fg)}.var.hl .vbox{fill:var(--hl);stroke:var(--hl)}.var.hl .vtxt{fill:#1a1205}.var .arrow{stroke:var(--fg);stroke-width:1.6px}.var.hl .arrow{stroke:var(--hl);stroke-width:2.4px}.lost{opacity:.25}.size{fill:var(--muted);font:400 13px var(--mono);text-anchor:end}.enter{animation:.45s ease-out pop}.draw{stroke-dasharray:1;stroke-dashoffset:1px;animation:.7s ease-out forwards draw}@keyframes pop{0%{opacity:0}}@keyframes draw{to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){.enter,.draw{stroke-dashoffset:0;animation:none}}.ref{gap:14px;display:grid}.tablewrap{overflow-x:auto}table{border-collapse:collapse;background:var(--surface);border:1px solid var(--line);font-variant-numeric:tabular-nums;border-radius:8px;width:100%;min-width:560px;font-size:.92rem}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:9px 14px}th{font:600 .72rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}td:not(:first-child){font-family:var(--mono);font-size:.85rem}tr:last-child td{border-bottom:0}
