.viz{margin:2.2em 0 2.4em;padding:20px 20px 14px;border:1px solid var(--line);background:var(--bg);color:var(--ink)}.viz svg{width:100%;height:auto;display:block;overflow:visible}.viz figcaption{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-top:12px;font-size:14px;color:var(--ink-2)}.viz-pause{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;background:none;border:1px solid var(--line);color:var(--ink-3);padding:5px 9px;cursor:pointer;white-space:nowrap;border-radius:0}.viz-pause:hover{color:var(--ink);border-color:var(--ink-3)}.viz-pause:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.viz.paused *{animation-play-state:paused!important}.viz .box{fill:var(--bg-2);stroke:currentColor;stroke-width:1.2}.viz .lbl{font-family:var(--body);font-size:13px;font-weight:600;fill:currentColor}.viz .sub{font-family:var(--mono);font-size:10.5px;fill:var(--ink-3)}.viz .rowt,.viz .tabt{fill:var(--ink)}.viz .arrow{stroke:currentColor;fill:none;stroke-width:1.2}.viz .brk{stroke:var(--ink-3);fill:none;stroke-width:1}.viz .dot{fill:var(--accent);stroke:var(--bg);stroke-width:2;opacity:0}@media (prefers-reduced-motion:reduce){.viz *{animation:none!important}.viz .dot,.viz-pause{display:none}.viz .tab{fill:var(--accent-soft)}.viz .cite{opacity:1}.viz .head{display:none}}.shot{margin:2.2em 0 2.4em}.shot .frame{border:1px solid var(--line);background:var(--bg-2)}.shot .bar{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:11px;color:var(--ink-3)}.shot .bar i{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--line)}.shot .bar span{margin-left:8px;background:var(--bg);padding:2px 10px;border:1px solid var(--line)}.shot img{display:block;width:100%;height:auto}.shot figcaption{margin-top:12px;font-size:14px;color:var(--ink-2)}.viz .d1{animation:d1 8s cubic-bezier(.2,0,0,1) infinite}@keyframes d1{0%{transform:translateX(66px);opacity:0}4%{opacity:1}12%{transform:translateX(66px)}22%{transform:translateX(216px)}30%{transform:translateX(216px)}40%{transform:translateX(366px)}48%{transform:translateX(366px)}58%{transform:translateX(516px)}66%{transform:translateX(516px)}74%{transform:translateX(605px)}82%{transform:translateX(605px)}90%{transform:translateX(700px);opacity:1}96%{transform:translateX(700px);opacity:0}to{transform:translateX(700px);opacity:0}}.viz .hl{fill:var(--accent);opacity:0}.viz .hl0,.viz .hl1{animation:hl 8s infinite}.viz .hl1{animation-delay:1.45s}.viz .hl2{animation:hl 8s infinite;animation-delay:2.9s}.viz .hl3{animation:hl 8s infinite;animation-delay:4.35s}.viz .hl4{animation:hl 8s infinite;animation-delay:7.2s}@keyframes hl{0%{opacity:0}6%{opacity:.28}18%{opacity:.28}26%{opacity:0}to{opacity:0}}.viz .gate-post{stroke:var(--ink-3);stroke-width:1;stroke-dasharray:2 3}.viz .gate{stroke:var(--accent);stroke-width:4;stroke-linecap:round;transform-box:fill-box;transform-origin:50% 0;animation:gate 8s cubic-bezier(.2,0,0,1) infinite}@keyframes gate{0%,76%{transform:rotate(0)}82%{transform:rotate(-70deg)}90%{transform:rotate(-70deg)}96%,to{transform:rotate(0)}}.viz .g0{animation:grow 9s cubic-bezier(.2,0,0,1) infinite;animation-delay:0s}.viz .b0{animation:grow 9s cubic-bezier(.2,0,0,1) infinite;animation-delay:.35s}.viz .g1{animation:grow 9s cubic-bezier(.2,0,0,1) infinite;animation-delay:1.4s}.viz .b1{animation:grow 9s cubic-bezier(.2,0,0,1) infinite;animation-delay:1.75s}.viz .c1{animation:clip 9s infinite;animation-delay:1.9s}.viz .g2{animation:grow 9s cubic-bezier(.2,0,0,1) infinite;animation-delay:2.8s}.viz .b2{animation:grow 9s cubic-bezier(.2,0,0,1) infinite;animation-delay:3.15s}.viz .g3{animation:grow 9s cubic-bezier(.2,0,0,1) infinite;animation-delay:4.2s}.viz .b3{animation:grow 9s cubic-bezier(.2,0,0,1) infinite;animation-delay:4.55s}.viz .g4{animation:grow 9s cubic-bezier(.2,0,0,1) infinite;animation-delay:5.6s}.viz .b4{animation:grow 9s cubic-bezier(.2,0,0,1) infinite;animation-delay:5.95s}.viz .c4{animation:clip 9s infinite;animation-delay:6.1s}.viz .g5{animation:grow 9s cubic-bezier(.2,0,0,1) infinite;animation-delay:7s}.viz .b5{animation:grow 9s cubic-bezier(.2,0,0,1) infinite;animation-delay:7.35s}.viz .axis{stroke:currentColor;stroke-width:1.2}.viz .ceil{stroke:var(--accent);stroke-width:1.5;stroke-dasharray:6 5}.viz .acc-t{fill:var(--accent)}.viz .ghost{fill:none;stroke:var(--ink-3);stroke-width:1.2;stroke-dasharray:4 3}.viz .bar,.viz .ghost{transform-box:fill-box;transform-origin:50% 100%}.viz .bar{fill:var(--accent)}.viz .clipmark{stroke:var(--ink);stroke-width:3;stroke-linecap:round}@keyframes grow{0%{transform:scaleY(.02)}5%{transform:scaleY(1)}to{transform:scaleY(1)}}.viz .clip,.viz .clipmark.c1,.viz .clipmark.c4{opacity:1}@keyframes clip{0%{opacity:0}4%{opacity:1}to{opacity:1}}.viz .t0{animation:tab 8s infinite;animation-delay:1.2s}.viz .t1{animation:tab 8s infinite;animation-delay:1.45s}.viz .t2{animation:tab 8s infinite;animation-delay:1.7s}.viz .t3{animation:tab 8s infinite;animation-delay:1.95s}.viz .t4{animation:tab 8s infinite;animation-delay:2.2s}.viz .t5{animation:tab 8s infinite;animation-delay:2.45s}.viz .t6{animation:tab 8s infinite;animation-delay:2.7s}.viz .t7{animation:tab 8s infinite;animation-delay:2.95s}.viz .s0,.viz .s1{animation:src 8s cubic-bezier(.2,0,0,1) infinite}.viz .s1{animation-delay:.3s}.viz .s2{animation:src 8s cubic-bezier(.2,0,0,1) infinite;animation-delay:.6s}@keyframes src{0%{transform:translateX(0);opacity:0}3%{opacity:1}12%{transform:translateX(84px);opacity:1}15%{opacity:0}to{transform:translateX(84px);opacity:0}}.viz .tab{fill:var(--bg);stroke:var(--line)}@keyframes tab{0%{fill:var(--bg)}5%{fill:var(--accent)}to{fill:var(--accent)}}.viz .d3{animation:d3 8s cubic-bezier(.2,0,0,1) infinite}@keyframes d3{0%,44%{transform:translateX(0);opacity:0}47%{opacity:1}56%{transform:translateX(116px)}66%{transform:translateX(116px)}74%{transform:translateX(250px);opacity:1}86%{transform:translateX(250px);opacity:1}92%{opacity:0}to{transform:translateX(250px);opacity:0}}.viz .ag{animation:hl 8s infinite;animation-delay:4.4s}.viz .sp{animation:hl 8s infinite;animation-delay:5.9s}@keyframes k0{0%,9.4%{opacity:.3;transform:scale(1)}10.0%{opacity:1;transform:scale(1.8)}14.0%{transform:scale(1)}to{opacity:1;transform:scale(1)}}.viz .k0{animation:k0 12s linear infinite}@keyframes k1{0%,19.4%{opacity:.3;transform:scale(1)}20.0%{opacity:1;transform:scale(1.8)}24.0%{transform:scale(1)}to{opacity:1;transform:scale(1)}}.viz .k1{animation:k1 12s linear infinite}@keyframes k2{0%,29.4%{opacity:.3;transform:scale(1)}30.0%{opacity:1;transform:scale(1.8)}34.0%{transform:scale(1)}to{opacity:1;transform:scale(1)}}.viz .k2{animation:k2 12s linear infinite}@keyframes k3{0%,39.4%{opacity:.3;transform:scale(1)}40.0%{opacity:1;transform:scale(1.8)}44.0%{transform:scale(1)}to{opacity:1;transform:scale(1)}}.viz .k3{animation:k3 12s linear infinite}@keyframes k4{0%,49.4%{opacity:.3;transform:scale(1)}50.0%{opacity:1;transform:scale(1.8)}54.0%{transform:scale(1)}to{opacity:1;transform:scale(1)}}.viz .k4{animation:k4 12s linear infinite}@keyframes k5{0%,59.4%{opacity:.3;transform:scale(1)}60.0%{opacity:1;transform:scale(1.8)}64.0%{transform:scale(1)}to{opacity:1;transform:scale(1)}}.viz .k5{animation:k5 12s linear infinite}@keyframes k6{0%,69.4%{opacity:.3;transform:scale(1)}70.0%{opacity:1;transform:scale(1.8)}74.0%{transform:scale(1)}to{opacity:1;transform:scale(1)}}.viz .k6{animation:k6 12s linear infinite}@keyframes k7{0%,79.4%{opacity:.3;transform:scale(1)}80.0%{opacity:1;transform:scale(1.8)}84.0%{transform:scale(1)}to{opacity:1;transform:scale(1)}}.viz .k7{animation:k7 12s linear infinite}@keyframes k8{0%,89.4%{opacity:.3;transform:scale(1)}90.0%{opacity:1;transform:scale(1.8)}94.0%{transform:scale(1)}to{opacity:1;transform:scale(1)}}.viz .k8{animation:k8 12s linear infinite}@keyframes k9{0%,99.4%{opacity:.3;transform:scale(1)}100.0%{opacity:1;transform:scale(1.8);transform:scale(1)}to{opacity:1;transform:scale(1)}}.viz .k9{animation:k9 12s linear infinite}@keyframes k10{0%,22.7%{opacity:.3;transform:scale(1)}23.3%{opacity:1;transform:scale(1.8)}27.3%{transform:scale(1)}to{opacity:1;transform:scale(1)}}.viz .k10{animation:k10 12s linear infinite}@keyframes k11{0%,46.1%{opacity:.3;transform:scale(1)}46.7%{opacity:1;transform:scale(1.8)}50.7%{transform:scale(1)}to{opacity:1;transform:scale(1)}}.viz .k11{animation:k11 12s linear infinite}@keyframes k12{0%,69.4%{opacity:.3;transform:scale(1)}70.0%{opacity:1;transform:scale(1.8)}74.0%{transform:scale(1)}to{opacity:1;transform:scale(1)}}.viz .k12{animation:k12 12s linear infinite}@keyframes k13{0%,92.7%{opacity:.3;transform:scale(1)}93.3%{opacity:1;transform:scale(1.8)}97.3%{transform:scale(1)}to{opacity:1;transform:scale(1)}}.viz .k13{animation:k13 12s linear infinite}@keyframes k14{0%,99.4%{opacity:.3;transform:scale(1)}100.0%{opacity:1;transform:scale(1.8);transform:scale(1)}to{opacity:1;transform:scale(1)}}.viz .k14{animation:k14 12s linear infinite}.viz .lane{stroke:var(--line);stroke-width:1.5}.viz .tick{fill:var(--accent);transform-box:fill-box;transform-origin:50% 50%;opacity:1}.viz .head{stroke:currentColor;stroke-width:1.5;animation:head 12s linear infinite}@keyframes head{0%{transform:translateX(0)}to{transform:translateX(530px)}}.viz .dashed{stroke-dasharray:4 3}.viz .bubble{stroke-dasharray:0}.viz .row{fill:var(--bg);stroke:var(--line)}.viz .row.me{stroke:var(--accent);stroke-width:1.5}.viz .row.comp{stroke:var(--ink-3);stroke-width:1.5}.viz .cite{opacity:0;fill:var(--accent)}.viz .cite.comp{fill:var(--ink-3)}.viz .cite.me{animation:cite 10s infinite;animation-delay:4.2s}.viz .cite.comp{animation:cite 10s infinite;animation-delay:4.6s}@keyframes cite{0%{opacity:0}3%{opacity:1}55%{opacity:1}60%{opacity:0}to{opacity:0}}.viz .ai{animation:hl 10s infinite;animation-delay:1s}.viz .d5{animation:d5 10s cubic-bezier(.2,0,0,1) infinite}@keyframes d5{0%{transform:translate(90px,60px);opacity:0}3%{opacity:1}12%{transform:translate(265px,60px)}18%{transform:translate(265px,60px)}28%{transform:translate(430px,60px)}34%{transform:translate(430px,60px)}42%{transform:translate(620px,51px)}50%{transform:translate(620px,150px)}58%{transform:translate(620px,176px)}70%{transform:translate(265px,176px)}78%{transform:translate(265px,96px)}86%{transform:translate(90px,165px);opacity:1}92%{opacity:0}to{transform:translate(90px,165px);opacity:0}}.viz .gatebox{fill:var(--ink);stroke:var(--ink);stroke-width:1.2}.viz .gatet{fill:var(--bg)}.viz .bounce{stroke:#b8372a;stroke-dasharray:4 3}.viz .red{fill:#b8372a}.viz .chk{font-family:var(--mono);font-size:12px;fill:var(--accent);opacity:0}.viz .c60{animation:chk 12s infinite;animation-delay:3.6s}.viz .c61{animation:chk 12s infinite;animation-delay:8.4s}@keyframes chk{0%{opacity:0}3%{opacity:1}90%{opacity:1}to{opacity:0}}.viz .d6{animation:d6 12s cubic-bezier(.2,0,0,1) infinite}@keyframes d6{0%{transform:translateX(52px);opacity:0}3%{opacity:1}8%{transform:translateX(52px)}14%{transform:translateX(145px)}20%{transform:translateX(145px)}26%{transform:translateX(237px)}34%{transform:translateX(237px)}40%{transform:translateX(330px)}46%{transform:translateX(330px)}52%{transform:translateX(422px)}58%{transform:translateX(422px)}64%{transform:translateX(515px)}72%{transform:translateX(515px)}78%{transform:translateX(607px)}84%{transform:translateX(607px)}90%{transform:translateX(700px);opacity:1}96%{transform:translateX(700px);opacity:0}to{transform:translateX(700px);opacity:0}}.viz .g6h0{animation:hl 12s infinite;animation-delay:.4s}.viz .g6h1{animation:hl 12s infinite;animation-delay:1.7s}.viz .g6h2{animation:hl 12s infinite;animation-delay:3.1s}.viz .g6h3{animation:hl 12s infinite;animation-delay:4.8s}.viz .g6h4{animation:hl 12s infinite;animation-delay:6.3s}.viz .g6h5{animation:hl 12s infinite;animation-delay:7.7s}.viz .g6h6{animation:hl 12s infinite;animation-delay:9.4s}.viz .g6h7{animation:hl 12s infinite;animation-delay:10.8s}.viz .term{fill:#0B0B0B}.viz .termbar{fill:#1c1c1a}.viz .termdot{fill:#3a3a37}.viz .termtitle{font-family:var(--mono);font-size:11px;fill:#8a877f}.viz .tl{font-family:var(--mono);font-size:12.5px;fill:#D9D2C6;opacity:0}.viz .tl.cmd{fill:#F5F1EB}.viz .tl.step{fill:#B9B3A8}.viz .tl.ok{fill:#52B788}.viz .tl.you{fill:#F5F1EB;font-weight:500}.viz .cursor{fill:#52B788;animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.viz .l0{animation:tline 11s infinite;animation-delay:.3s}.viz .l1{animation:tline 11s infinite;animation-delay:1.6s}.viz .l2{animation:tline 11s infinite;animation-delay:2.6s}.viz .l3{animation:tline 11s infinite;animation-delay:3.7s}.viz .l4{animation:tline 11s infinite;animation-delay:4.8s}.viz .l5{animation:tline 11s infinite;animation-delay:6.2s}.viz .l6{animation:tline 11s infinite;animation-delay:7.6s}@keyframes tline{0%{opacity:0}2%{opacity:1}88%{opacity:1}92%{opacity:0}to{opacity:0}}@media (prefers-reduced-motion:reduce){.viz .tl{opacity:1}}.viz .step{fill:var(--bg-2);stroke:var(--ink);stroke-width:1.2}.viz .stepnum{font-family:var(--display);font-weight:800;font-size:14px;fill:var(--accent)}@keyframes d8{0%{transform:translate(90px,165px);opacity:0}3%{opacity:1}8%{transform:translate(90px,165px)}20%{transform:translate(90px,165px)}28%{transform:translate(230px,125px)}40%{transform:translate(230px,125px)}48%{transform:translate(370px,85px)}60%{transform:translate(370px,85px)}68%{transform:translate(510px,45px)}80%{transform:translate(510px,45px)}88%{transform:translate(650px,5px)}94%{transform:translate(650px,5px);opacity:1}to{transform:translate(650px,5px);opacity:0}}.viz .d8{animation:d8 10s cubic-bezier(.2,0,0,1) infinite}.viz .s8h0{animation:hl 10s infinite;animation-delay:.6s}.viz .s8h1{animation:hl 10s infinite;animation-delay:2.6s}.viz .s8h2{animation:hl 10s infinite;animation-delay:4.6s}.viz .s8h3{animation:hl 10s infinite;animation-delay:6.6s}.viz .s8h4{animation:hl 10s infinite;animation-delay:8.6s}.viz .core{stroke-width:2}.viz .big{font-size:16px;font-weight:700}.viz .acc{fill:var(--accent-soft)}.viz .slackbg{fill:var(--bg)}.viz .slackhdr{fill:var(--bg-2)}.viz .g2jav{fill:#b8372a}.viz .avt{font-family:var(--display);font-weight:800;font-size:9px;fill:#F5F1EB}.viz .tl2{font-family:var(--body);font-size:13px;fill:var(--ink)}.viz .tl2.muted{fill:var(--ink-3);font-size:12px}.viz .strong{font-weight:600}.viz .sbtn{fill:var(--accent);stroke:var(--ink);stroke-width:1}.viz .sbtnt{font-family:var(--display);font-weight:700;font-size:12px;fill:var(--ink)}.viz .sbtn2{fill:var(--bg);stroke:var(--line);stroke-width:1}.viz .sbtnt2{font-family:var(--display);font-weight:600;font-size:12px;fill:var(--ink-2)}.viz .approved{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1;opacity:0}.viz .approvedt{font-family:var(--mono);font-size:11px}.viz .approvedt,.viz .tap{fill:var(--ink);opacity:0}.viz .msg2{opacity:0}.viz .sbtn.approve,.viz .sbtn2,.viz .sbtnt.approve,.viz .sbtnt2{animation:btnout 10s infinite}@keyframes btnout{0%,36%{opacity:1}40%,92%{opacity:0}96%,to{opacity:1}}.viz .tap{animation:tap 10s infinite}@keyframes tap{0%,30%{opacity:0;transform:scale(.6);transform-box:fill-box;transform-origin:center}34%{opacity:.35;transform:scale(1)}38%{opacity:0;transform:scale(1.6)}to{opacity:0}}.viz .approved,.viz .approvedt{animation:appr 10s infinite}@keyframes appr{0%,38%{opacity:0}42%,92%{opacity:1}96%,to{opacity:0}}.viz .msg2{animation:msg2 10s infinite}@keyframes msg2{0%,48%{opacity:0}54%,92%{opacity:1}96%,to{opacity:0}}@media (prefers-reduced-motion:reduce){.viz .sbtn.approve,.viz .sbtn2,.viz .sbtnt.approve,.viz .sbtnt2,.viz .tap{display:none}.viz .approved,.viz .approvedt,.viz .msg2{opacity:1}}