.progress{z-index:90;height:3px;position:fixed;top:0;left:0;right:0}.progress i{background:var(--ink);width:0;height:100%;display:block}html.js .rv{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(16px)}html.js .rv.in{opacity:1;transform:none}.hnode{fill:var(--card);stroke:var(--ink);stroke-width:2px}.hletter{fill:var(--ink);font-family:Newsreader;font-size:16px;font-style:italic}.hwire{stroke:var(--ink);stroke-width:1.5px;stroke-dasharray:4 6;opacity:.5}section{padding:clamp(64px,9vh,116px) clamp(20px,5vw,72px)}.prose{max-width:690px;margin:0 auto}h2{letter-spacing:-.01em;margin:0 0 28px;font-family:Fraunces,serif;font-size:clamp(34px,4.4vw,52px);font-weight:500;line-height:1.06}.prose p{margin:0 0 22px}.fig{border:1.5px solid var(--ink);background:var(--paper2);width:min(1060px,100%);margin:46px auto 0;box-shadow:6px 6px #19150914}.fig-head{border-bottom:1.5px solid var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.fl{letter-spacing:.18em;font:600 11px IBM Plex Mono}.fr{color:var(--ink2);letter-spacing:.08em;font:400 10.5px IBM Plex Mono}.fig-body{padding:6px 8px 0;overflow-x:auto}svg.sim,svg.plain{width:100%;min-width:620px;height:auto;display:block}.fig-foot{border-top:1px dashed var(--line);padding:13px 16px}.frow{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spacer{flex:1}.btn{letter-spacing:.05em;border:1.5px solid var(--ink);color:var(--ink);cursor:pointer;background:0 0;align-items:center;gap:9px;padding:9px 14px;font:500 12.5px IBM Plex Mono;transition:all .15s;display:inline-flex}.btn:hover{background:var(--ink);color:var(--paper2)}.btn:active{transform:translate(1px,1px)}.btn.ghostb{color:var(--ink2);border-style:dashed}.btn.ghostb:hover{color:var(--paper2)}.modes{border:1.5px solid var(--ink);flex-wrap:wrap;display:inline-flex}.modes button{border:0;border-right:1.5px solid var(--ink);cursor:pointer;color:var(--ink);letter-spacing:.08em;background:0 0;padding:7px 12px;font:600 11px IBM Plex Mono}.modes button:last-child{border-right:0}.modes button.on{background:var(--ink);color:var(--paper2)}.chk{letter-spacing:.1em;color:var(--ink2);cursor:pointer;align-items:center;gap:8px;font:600 10.5px IBM Plex Mono;display:inline-flex}.simlog{border-top:1px dashed var(--line);min-height:110px;padding:11px 16px;font:400 12px/1.9 IBM Plex Mono}.simlog .row{gap:12px;animation:.3s rowin;display:flex}.simlog .t{color:var(--stamp);flex:none}.simlog .k{flex:none;width:86px;font-weight:600}.simlog .m{color:var(--ink2);overflow-wrap:anywhere;min-width:0}.k-red{color:var(--red)}.k-green{color:var(--green)}.k-ink{color:var(--ink)}@keyframes rowin{0%{opacity:0;transform:translateY(-3px)}}.lbox{fill:var(--card);stroke:var(--ink);stroke-width:2px}.lboxt{letter-spacing:.2em;fill:var(--ink);font-family:IBM Plex Mono;font-size:11px;font-weight:600}.lwire{stroke:var(--ink);stroke-width:2px}.rowTxt{fill:var(--ink);font:600 11px IBM Plex Mono}.chipt{fill:var(--ink);font:600 10px IBM Plex Mono}.sllab{letter-spacing:.14em;color:var(--ink2);font:600 10.5px IBM Plex Mono}.sllab b{color:var(--ink)}.opline{color:var(--ink2);margin-top:10px;font:500 12px/1.6 IBM Plex Mono}.opline.good{color:var(--green)}.opline.warn{color:var(--amber)}.opline.badv{color:var(--red)}input[type=range]{accent-color:var(--red);flex:1;min-width:100px;max-width:180px}.loads{gap:7px;margin-top:12px;display:grid}.lrow{color:var(--ink2);align-items:center;gap:10px;font:500 11px IBM Plex Mono;display:flex}.lrow i{border-radius:2px;flex:none;width:10px;height:10px}.lrow b{width:180px;color:var(--ink);font-weight:600}.lb{border:1.2px solid var(--line);background:var(--paper);flex:1;height:13px;position:relative}.lb i{transition:width .4s;position:absolute;top:0;bottom:0;left:0}.lrow u{width:130px;color:var(--ink);text-align:right;flex:none;text-decoration:none}@media (width<=640px){.lrow b{width:110px}.lrow u{width:100px}}.node .body{fill:var(--card);stroke:var(--ink);stroke-width:2px}.node .code{letter-spacing:.2em;fill:var(--ink2);font-family:IBM Plex Mono;font-size:11px;font-weight:600}.node .val{fill:var(--ink);font-family:Fraunces,serif;font-size:30px;font-weight:500}.node .nname{letter-spacing:.22em;fill:var(--ink2);font-family:IBM Plex Mono;font-size:9.5px}.node.down{opacity:.45}.node.down .body{stroke-dasharray:4 5}.rfrole{transition:all .2s}.rfrole rect{stroke-width:1.4px}.rfrole text{letter-spacing:.14em;font:600 9.5px IBM Plex Mono}.rfrole.leader rect{fill:var(--green);stroke:var(--green)}.rfrole.leader text{fill:var(--paper2)}.rfrole.cand rect{fill:var(--amber);stroke:var(--amber)}.rfrole.cand text{fill:var(--paper2)}.rfrole.foll rect{fill:var(--paper2);stroke:var(--ink2)}.rfrole.foll text{fill:var(--ink2)}.rfrole.dead rect{fill:var(--ink2);stroke:var(--ink2)}.rfrole.dead text{fill:var(--paper)}.edge .wire{stroke:var(--ink);stroke-width:2.2px;stroke-linecap:round}.edge .ghost{stroke:var(--ink2);stroke-width:1.4px;stroke-dasharray:2 7;opacity:0;pointer-events:none}.edge.cut .ghost{opacity:.55}.edge .hit{stroke:#000;stroke-opacity:0;stroke-width:26px;pointer-events:none}.edge.cutable .hit{pointer-events:stroke;cursor:pointer}.edge.cutable:not(.cut):hover .wire{stroke:var(--amber);stroke-width:3.4px}.edge .gapx{fill:var(--red);opacity:0;pointer-events:none;font-size:15px;font-weight:600}.edge.cut .gapx{opacity:1}.spark{opacity:0;pointer-events:none;transform-box:fill-box;transform-origin:50%}.spark line{stroke:var(--red);stroke-width:2px;stroke-linecap:round}.spark.go{animation:.5s ease-out sparky}@keyframes sparky{0%{opacity:1;transform:scale(.4)}to{opacity:0;transform:scale(1.7)}}.pk{fill:var(--ink)}.pk.dead{fill:var(--red)}.tbar{transition:width .1s linear}dfn.tip{font-style:inherit;cursor:help;border-bottom:1.5px dotted var(--amber);position:relative}dfn.tip:after{content:attr(data-tip);background:var(--ink);width:min(300px,74vw);color:var(--paper2);opacity:0;pointer-events:none;z-index:60;white-space:normal;text-align:left;padding:10px 13px;font:400 12.5px/1.55 IBM Plex Mono;transition:opacity .18s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}dfn.tip:hover:after,dfn.tip:focus-visible:after{opacity:1}footer{border-top:1.5px solid var(--ink);padding:70px clamp(20px,5vw,72px) 90px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}html{scroll-behavior:auto}}
