.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:21px;font-style:italic}.hwire{stroke:var(--ink);stroke-width:2px}.hpk{fill:var(--ink)}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}.frow.col{flex-direction:column;align-items:stretch;gap:8px}.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:hover .dotc{background:var(--paper2)}.btn:active{transform:translate(1px,1px)}.btn:disabled{opacity:.4;cursor:default}.btn.ghostb{color:var(--ink2);border-style:dashed}.btn.ghostb:hover{color:var(--paper2)}.dotc{background:var(--ink);border-radius:50%;flex:none;width:8px;height:8px;transition:all .15s}.modes{border:1.5px solid var(--ink);transition:opacity .25s;display:inline-flex}.modes.off{opacity:.35;pointer-events:none}.modes button{border:0;border-right:1.5px solid var(--ink);cursor:pointer;text-align:left;color:var(--ink);background:0 0;padding:7px 14px;font-family:IBM Plex Mono;transition:all .15s}.modes button:last-child{border-right:0}.modes button b{letter-spacing:.06em;font-size:13px;font-weight:600;display:block}.modes button span{letter-spacing:.04em;color:var(--ink2);font-size:9.5px;display:block}.modes button.on{background:var(--ink);color:var(--paper2)}.modes button.on span{color:var(--onink2)}.modenote{color:var(--ink2);max-width:270px;font:400 11.5px/1.5 IBM Plex Mono}.modenote.hot{color:var(--red)}.agree{letter-spacing:.06em;align-items:center;gap:9px;font:500 11.5px IBM Plex Mono;display:inline-flex}.adot{background:var(--green);border-radius:50%;flex:none;width:9px;height:9px}.agree.ok{color:var(--green)}.agree.warn{color:var(--amber)}.agree.bad{color:var(--red)}.agree.warn .adot{background:var(--amber)}.agree.bad .adot{background:var(--red)}.simlog{border-top:1px dashed var(--line);min-height:120px;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:82px;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)}}.edge .wire{stroke:var(--ink);stroke-width:2.2px;stroke-linecap:round;transition:stroke .2s}.edge .ghost{stroke:var(--ink2);stroke-width:1.4px;stroke-dasharray:2 7;opacity:0;pointer-events:none;transition:all .2s}.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.cutable.cut:hover .ghost{opacity:1;stroke:var(--green)}.edge.cutable:has(.hit:focus-visible) .wire{stroke:var(--amber);stroke-width:3.4px}@media (pointer:coarse){.edge .hit{stroke-width:44px}.btn{padding:12px 16px}}.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)}}.gapx{fill:var(--red);opacity:0;pointer-events:none;font-weight:600;transition:all .3s}.edge .gapx{font-size:15px}.edge.cut .gapx{opacity:1}.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);transform-box:fill-box;transform-origin:50%;font-family:Fraunces,serif;font-size:33px;font-weight:500}.node .val.neg{fill:var(--red)}.node .unit{letter-spacing:.16em;fill:var(--ink2);font-family:IBM Plex Mono;font-size:9.5px}.node .nname{letter-spacing:.22em;fill:var(--ink2);font-family:IBM Plex Mono;font-size:10px}.node .halo{fill:none;stroke:var(--green);stroke-width:2.5px;opacity:0;transform-box:fill-box;transform-origin:50%}.node.pop .halo{animation:.8s ease-out halo}.node.pop .val{animation:.45s cubic-bezier(.2,1.4,.4,1) vpop}.node.shake{animation:.45s shake}.node.down{opacity:.4}.node.down .body{stroke-dasharray:4 5}@keyframes halo{0%{opacity:.9;transform:scale(.92)}to{opacity:0;transform:scale(1.28)}}@keyframes vpop{0%{transform:scale(1)}45%{transform:scale(1.28)}to{transform:scale(1)}}@keyframes shake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(3px)}30%,70%{transform:translate(-4px)}40%,60%{transform:translate(4px)}50%{transform:translate(-3px)}}.ntag{opacity:0;transition:all .2s}.ntag.show{opacity:1}.ntag rect{fill:var(--paper2);stroke:var(--red);stroke-width:1.4px}.ntag text{fill:var(--red);letter-spacing:.14em;font:600 9.5px IBM Plex Mono}.pk{fill:var(--ink)}.pk.dead{fill:var(--red)}.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:2.2px}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}}.bolt{fill:none;stroke:var(--red);stroke-width:2.6px;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;opacity:0}.bolt.go{animation:.8s ease-out forwards zap}@keyframes zap{0%{stroke-dashoffset:1px;opacity:1}55%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:0}}#f2svg .gapx{font-size:26px}.lcap{color:var(--ink2);min-height:56px;padding:4px 16px 14px;font:italic 17px/1.6 Newsreader}.opline{color:var(--ink2);font:500 12.5px/1.6 IBM Plex Mono}.opline.good{color:var(--green)}.opline.warn{color:var(--amber)}.opline.badv{color:var(--red)}.lbar{border:1.5px solid var(--ink);max-width:520px;height:16px;position:relative}.lbar i{background:var(--ink);width:0;transition:width .3s;position:absolute;top:0;bottom:0;left:0}.lbar b{background:var(--ink2);width:1.5px;position:absolute;top:-3px;bottom:-3px}.lscale{max-width:520px;height:14px;color:var(--ink2);font:400 9.5px IBM Plex Mono;position:relative}.lscale span{position:absolute;top:0}.pacelc{color:var(--ink2);grid-template-columns:112px 1fr;align-items:center;gap:9px 16px;padding:2px 0 12px;font:500 11px/1.5 IBM Plex Mono;display:grid}.pacelc .k{color:var(--ink);letter-spacing:.16em;font-weight:600}.pacelc .row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pacelc .o{border:1.2px solid var(--line);color:var(--ink2);padding:4px 10px;transition:all .2s}.pacelc .o b{margin-right:7px;font-weight:600}.pacelc .o.a b{color:var(--green)}.pacelc .o.c b{color:var(--red)}.pacelc .o.l b{color:var(--amber)}.pacelc .o.live{border-color:var(--ink);color:var(--ink);box-shadow:2px 2px #1915091a}.pacelc .or{letter-spacing:.18em;font-size:9.5px}@media (width<=640px){.pacelc{grid-template-columns:1fr;gap:6px}}.axis{stroke:var(--ink);stroke-width:1.6px}.axishead{fill:var(--ink)}.slab{fill:var(--ink2);letter-spacing:.08em;font-family:IBM Plex Mono;font-size:10.5px;font-weight:500}.axislab{fill:var(--ink);letter-spacing:.14em;font-family:IBM Plex Mono;font-size:10px;font-weight:600}.axiscap{fill:var(--ink2);font-family:Newsreader;font-size:14.5px;font-style:italic}.sysdot{cursor:pointer;outline:none}.sysdot>circle{fill:var(--ink);transition:all .15s}.sysdot:hover>circle,.sysdot:focus-visible>circle{fill:var(--red)}.ring{fill:none;stroke:var(--red);stroke-width:1.6px;pointer-events:none}.inset{cursor:pointer}.inset rect{fill:none;stroke:var(--ink2);stroke-width:1.3px;stroke-dasharray:4 5}.inset:hover rect{stroke:var(--red)}.inset .t1{letter-spacing:.12em;fill:var(--ink);font-family:IBM Plex Mono;font-size:10px;font-weight:600}.inset .t2{fill:var(--ink2);font-family:Newsreader;font-size:13.5px;font-style:italic}.sysinfo{border-top:1px dashed var(--line);min-height:58px;padding:14px 16px;font-size:16.5px;line-height:1.6}.sysinfo strong{font-family:Fraunces;font-size:19px;font-weight:600}.chip{letter-spacing:.1em;vertical-align:2px;border:1.2px solid;border-radius:2px;margin:0 6px;padding:2px 7px;font:600 10px IBM Plex Mono}.chip.c{color:var(--red)}.chip.a{color:var(--green)}.chip.x{color:var(--amber)}
