.repl,.repl-figure{--r-leader: #2f5bea;--r-follower: #0f8b7d;--r-replica: #0b7fa8;--r-client: #7a4fd1;--r-ok: #0f8b7d;--r-read: #7a4fd1;--r-err: #d64045;--r-hb: #d9488f;--r-stale: #c98a00;--r-down: #d64045;--r-downbg: #fbe9ea;--r-conflict: #c2255c;--r-conflictbg: #fbe7ef;--r-chip: rgb(0 0 0 / .06);--r-snap: #cfdafc;--r-risk: #ffe39a;--r-goodbg: #d9f2ee;--r-badbg: #fbe1e3;--r-warnbg: #fff1c7}html.dark .repl,html.dark .repl-figure{--r-leader: #6f93ff;--r-follower: #35c2ad;--r-replica: #3fb6e0;--r-client: #a988ff;--r-ok: #2aa894;--r-read: #8f6cf0;--r-err: #ef5f64;--r-hb: #ec6aa9;--r-stale: #f0b62a;--r-down: #ef5f64;--r-downbg: #33191d;--r-conflict: #f0619b;--r-conflictbg: #33182a;--r-chip: rgb(255 255 255 / .07);--r-snap: #2a3d73;--r-risk: #6b5310;--r-goodbg: #123630;--r-badbg: #3a1a1e;--r-warnbg: #3a3010}.repl{margin-top:2.25rem;margin-bottom:2.25rem;overflow:hidden;border-radius:14px;border-width:1px;border-color:var(--line);font-family:Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";background:var(--bg-2)}.repl button{cursor:pointer;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.repl :focus-visible{outline:2px solid var(--accent);outline-offset:2px}.repl-modes{display:flex;flex-wrap:wrap;gap:.375rem;padding-left:.875rem;padding-right:.875rem;padding-top:.875rem}.repl-modes button{border-radius:9999px;border-width:1px;border-color:var(--line-2);padding:.25rem .75rem;font-size:13px;color:var(--text)}.repl-modes button:hover{color:var(--head)}.repl-modes button[aria-pressed=true]{border-color:transparent;color:var(--bg);background:var(--head)}.repl-stage{overflow-x:auto}.repl-stage svg{display:block;height:auto;width:100%;min-width:600px}.repl-status{display:flex;height:2.5rem;align-items:center;justify-content:center;padding-left:.75rem;padding-right:.75rem}.repl-pill{visibility:hidden;border-radius:9999px;padding:.375rem 1rem;text-align:center;font-size:13px;font-weight:600;opacity:0}.repl-pill[data-kind=good]{background:var(--r-goodbg);color:var(--r-ok)}.repl-pill[data-kind=bad]{background:var(--r-badbg);color:var(--r-err)}.repl-pill[data-kind=warn]{background:var(--r-warnbg);color:var(--r-stale)}.repl-caption{display:flex;min-height:78px;align-items:flex-start;gap:.75rem;border-top-width:1px;border-color:var(--line);padding-left:18px;padding-right:18px;padding-top:.875rem;padding-bottom:.875rem;font-size:15px;line-height:1.625;color:var(--head)}.repl-caption .sn{margin-top:3px;flex:none;border-radius:.375rem;padding:.125rem .5rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:11px;font-weight:500;background:var(--head);color:var(--bg)}.repl-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;border-top-width:1px;border-color:var(--line);padding:.625rem .875rem}.repl-controls>button,.repl-speed button{border-radius:.5rem;border-width:1px;border-color:var(--line-2);padding:.375rem .75rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.75rem;line-height:1rem;color:var(--text)}.repl-controls>button:hover,.repl-speed button:hover{color:var(--head)}.repl-controls>button:disabled{cursor:default;opacity:.4}.repl-controls>button:disabled:hover{color:var(--text)}.repl-controls>.primary{border-color:transparent;color:var(--bg)}.repl-controls>.primary:hover{color:var(--bg)}.repl-controls>.primary{background:var(--head)}.repl-controls>.primary:disabled:hover{color:var(--bg)}.repl-controls>.primary[data-ready]{animation:repl-ready 1.8s var(--ease) infinite}@keyframes repl-ready{0%{box-shadow:0 0 color-mix(in srgb,var(--accent) 55%,transparent)}70%,to{box-shadow:0 0 0 8px color-mix(in srgb,var(--accent) 0%,transparent)}}.repl-stepc{min-width:52px;padding-left:.25rem;padding-right:.25rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.75rem;line-height:1rem;color:var(--text-2)}.repl-auto{margin-left:auto}.repl-auto[aria-pressed=true]{border-color:currentColor;color:var(--head)}.repl-speed{display:flex;align-items:center;gap:.25rem}.repl-speed button{padding:.25rem .5rem;font-size:11px}.repl-speed button[aria-pressed=true]{border-color:currentColor;color:var(--head)}@media(max-width:520px){.repl-auto{margin-left:0}.repl-speed{margin-left:auto}}.repl-transcript{border-top-width:1px;border-color:var(--line);padding-left:18px;padding-right:18px;padding-top:.75rem;padding-bottom:.75rem;font-size:13px}.repl-transcript summary{cursor:pointer;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--text-2)}.repl-transcript summary:hover{color:var(--text)}.repl-transcript ol{margin-top:.625rem;list-style-type:decimal}.repl-transcript ol>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.repl-transcript ol{padding-left:1.5rem}.repl-transcript ol *::marker{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:11px;color:var(--text-2)}.repl-transcript ol::marker{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:11px;color:var(--text-2)}.repl-transcript button{text-align:left;line-height:1.625;color:var(--text-2)}.repl-transcript button:hover{color:var(--head)}.repl-transcript li[data-seen] button{color:var(--text)}.repl-transcript li[aria-current] button{font-weight:500;color:var(--head)}.repl svg text{font-family:Inter,ui-sans-serif,system-ui,sans-serif}.repl .zone rect{fill:var(--bg);stroke:var(--line-2);stroke-dasharray:6 6}.repl .zone text{font-size:13px;font-weight:600;fill:var(--text-2)}.repl .link{stroke:var(--line-2);stroke-width:1.5;transition:stroke .3s}.repl .link.cut{stroke:var(--r-down);stroke-dasharray:4 5}.repl .route{stroke:var(--text-2);stroke-width:1.2;stroke-dasharray:3 5;opacity:.6}.repl .node .box{fill:var(--bg);stroke:var(--line-2);stroke-width:2;transition:fill .3s,stroke .3s}.repl .r-leader .box{stroke:var(--r-leader);stroke-width:2.5}.repl .r-follower .box{stroke:var(--r-follower)}.repl .r-replica .box{stroke:var(--r-replica)}.repl .r-new .box{stroke:var(--text-2);stroke-dasharray:6 4}.repl .badge rect{fill:var(--text-2)}.repl .r-leader .badge rect{fill:var(--r-leader)}.repl .r-follower .badge rect{fill:var(--r-follower)}.repl .r-replica .badge rect{fill:var(--r-replica)}.repl .badge text{font-size:10.5px;font-weight:700;fill:#fff}.repl .nname{font-size:13.5px;font-weight:600;fill:var(--head)}.repl .nval,.repl .cval,.repl .lent text,.repl .pkt text{font-family:JetBrains Mono,ui-monospace,monospace!important}.repl .nval{font-size:12px;font-weight:500;fill:var(--head)}.repl .cval{font-size:11.5px;font-weight:500;fill:var(--text-2)}.repl .ntag{font-size:11.5px;font-weight:600;fill:var(--text-2)}.repl .ntag.bad{fill:var(--r-err)}.repl .ntag.warn{fill:var(--r-stale)}.repl .ntag.good{fill:var(--r-ok)}.repl .flash{animation:repl-flash .9s ease-out}@keyframes repl-flash{0%{fill:var(--accent)}}.repl .cli .cbody{fill:var(--bg);stroke:var(--r-client);stroke-width:2.5}.repl .cli .cicon{fill:var(--r-client)}.repl .xmark{display:none}.repl .xmark line{stroke:var(--r-down);stroke-width:5;stroke-linecap:round}.repl .down .xmark{display:block}.repl .down .box{fill:var(--r-downbg);stroke:var(--r-down)}.repl .down .nval,.repl .down .nname{opacity:.45}.repl .stale .box{stroke:var(--r-stale);stroke-width:3;stroke-dasharray:7 4}.repl .hl .box{stroke:var(--r-leader);stroke-width:4}.repl .conflict .box{fill:var(--r-conflictbg);stroke:var(--r-conflict);stroke-width:3}.repl .conflict .nval{fill:var(--r-conflict)}.repl .cut .box{stroke:var(--r-down);stroke-dasharray:3 4;stroke-width:3}.repl .lent rect{fill:var(--r-chip);stroke:var(--line-2)}.repl .lent text{font-size:9.5px;font-weight:500;fill:var(--head)}.repl .lent.new rect{fill:var(--r-goodbg);stroke:var(--r-ok)}.repl .lent.snap rect{fill:var(--r-snap);stroke:var(--r-leader)}.repl .lent.risk rect{fill:var(--r-risk);stroke:var(--r-stale)}.repl .lent.lost rect{fill:var(--r-down);stroke:var(--r-down)}.repl .lent.lost text{fill:#fff}.repl .pkt rect{fill:var(--head)}.repl .pkt text{font-size:11px;font-weight:500;fill:var(--bg)}.repl .pkt.ok rect{fill:var(--r-ok)}.repl .pkt.read rect{fill:var(--r-read)}.repl .pkt.err rect{fill:var(--r-err)}.repl .pkt.big rect{fill:var(--r-leader)}.repl .pkt.hb rect{fill:var(--r-hb)}.repl .pkt:is(.ok,.read,.err,.big,.hb) text{fill:#fff}.repl .pkt.dropped{opacity:.45}.repl .dropx line{stroke:var(--r-down);stroke-width:4;stroke-linecap:round}.repl .timer .tbg{fill:none;stroke:var(--line-2);stroke-width:4}.repl .timer .tfg{fill:none;stroke:var(--r-down);stroke-width:4}@media(prefers-reduced-motion:reduce){.repl .flash,.repl-controls>.primary[data-ready]{animation:none}}.repl .qbody{fill:var(--bg);stroke:var(--line-2);stroke-width:2}.repl .qn.w .qbody{fill:var(--r-leader);stroke:var(--r-leader)}.repl .qn.w .qname,.repl .qn.w .qval{fill:#fff}.repl .rring{fill:none;stroke:var(--r-client);stroke-width:5}.repl .qlegw{fill:var(--r-leader)}.repl .qname{font-size:14px;font-weight:700;fill:var(--head);text-anchor:middle}.repl .qval{font-family:JetBrains Mono,ui-monospace,monospace!important;font-size:13px;fill:var(--text-2);text-anchor:middle}.repl .qhit{font-size:13px;font-weight:700;fill:var(--r-ok);text-anchor:middle}.repl .qsum{font-family:JetBrains Mono,ui-monospace,monospace!important;font-size:15px;fill:var(--head);text-anchor:middle;white-space:pre}.repl .qleg{font-size:13px;fill:var(--text-2)}.q-controls{border-top-width:1px;border-color:var(--line);padding-left:18px;padding-right:18px;padding-top:1rem;padding-bottom:1rem}.q-sliders{display:grid;gap:1rem}.repl-chart .q-sliders{stroke:var(--line);stroke-width:1}@media(min-width:640px){.q-sliders{grid-template-columns:repeat(3,minmax(0,1fr))}}.q-sliders label{display:grid;grid-template-columns:1fr auto;align-items:baseline;row-gap:.375rem;font-size:13px;color:var(--head)}.repl-chart .q-sliders label{stroke:var(--line);stroke-width:1}.q-sliders label span{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-weight:500}.q-sliders em{margin-left:.25rem;font-family:Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-style:normal;color:var(--text-2)}.q-sliders b{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:13px;font-weight:500}.q-sliders input{grid-column:span 2 / span 2;width:100%;accent-color:var(--accent)}.q-buttons{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.5rem}.q-buttons button{border-radius:.5rem;border-width:1px;border-color:var(--line-2);padding:.375rem .75rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.75rem;line-height:1rem;color:var(--text)}.q-buttons button:hover{color:var(--head)}.q-buttons .primary{border-color:transparent;color:var(--bg)}.q-buttons .primary:hover{color:var(--bg)}.q-buttons .primary{background:var(--head)}.q-result{margin-top:1rem}.q-result>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.q-result{border-radius:10px;padding:.75rem 1rem;font-size:14px;line-height:1.625;color:var(--head)}.q-result p{margin:0;font-family:Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.q-result[data-ok=true]{background:var(--r-goodbg)}.q-result[data-ok=false]{background:var(--r-badbg)}.repl-topo{margin-top:2rem;margin-bottom:2rem;display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:1rem;font-family:Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.repl-chart .repl-topo{stroke:var(--line);stroke-width:1}@media(min-width:640px){.repl-topo{grid-template-columns:repeat(3,minmax(0,1fr))}}.repl-topo figure{margin:0;border-radius:14px;border-width:1px;border-color:var(--line);padding:1.25rem 1rem 1rem;text-align:center;font-size:13px;line-height:1.375;color:var(--text);background:var(--bg-2)}.repl-topo svg{margin-left:auto;margin-right:auto;margin-bottom:.75rem;height:auto;width:100%;max-width:110px;color:var(--head)}.repl-topo b{margin-bottom:.25rem;display:block;font-size:.875rem;line-height:1.25rem;color:var(--head)}.repl-qa{margin-top:1.5rem;margin-bottom:1.5rem;border-top-width:1px;border-color:var(--line);font-family:Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.repl-qa details{border-bottom-width:1px;border-color:var(--line);padding-top:.875rem;padding-bottom:.875rem}.repl-qa summary{cursor:pointer;list-style-type:none;font-size:15px;font-weight:500;line-height:1.375;color:var(--head)}.repl-qa summary::-webkit-details-marker{display:none}.repl-qa summary:before{margin-right:.75rem;display:inline-block;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.75rem;line-height:1rem;color:var(--text-2);content:counter(qa,decimal-leading-zero);counter-increment:qa}.repl-qa{counter-reset:qa}.repl-qa details[open] summary{color:var(--head)}.repl-qa details p{margin-bottom:0;margin-top:.625rem;padding-left:2rem;font-family:Lora,ui-serif,Georgia,Cambria,Times New Roman,Times,serif;font-size:16px;line-height:1.625;color:var(--prose)}.ps-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:.75rem;padding:.875rem}.repl-chart .ps-grid{stroke:var(--line);stroke-width:1}@media(min-width:640px){.ps-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.ps-card{border-radius:.75rem;border-width:1px;border-color:var(--line);padding:.875rem 1rem;background:var(--bg)}.ps-h{margin:0;margin-bottom:.5rem;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-2)}.ps-cmd{display:block;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:15px;font-weight:500;color:var(--head)}.repl .ps-who{margin:0;margin-top:.5rem;font-family:Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-size:13px;line-height:1.375;color:var(--text)}.ps-dl{margin:0;display:grid;grid-template-columns:auto 1fr;-moz-column-gap:1rem;column-gap:1rem;row-gap:.25rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:13px}.repl-chart .ps-dl{stroke:var(--line);stroke-width:1}.ps-dl dt{color:var(--text-2)}.ps-dl dd{margin:0;color:var(--head)}.ps-checks{margin:0;list-style-type:none}.ps-checks>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.ps-checks{border-top-width:1px;border-color:var(--line);padding:.75rem .875rem;counter-reset:ps}.repl .ps-checks li{display:flex;align-items:baseline;gap:.75rem;border-radius:.5rem;padding:.5rem .75rem;font-family:Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-size:14px;line-height:1.375;color:var(--head);background:var(--bg);counter-increment:ps}.ps-checks li:before{flex:none;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.75rem;line-height:1rem;color:var(--text-2);content:counter(ps)}.ps-checks li span{flex:1 1 0%}.ps-checks li b{flex:none;border-radius:9999px;padding:.125rem .625rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:11px;font-weight:600}.ps-checks li[data-ok=true] b{background:var(--r-goodbg);color:var(--r-ok)}.ps-checks li[data-ok=false] b{background:var(--r-badbg);color:var(--r-err)}.ps-checks li[data-ok=skip]{opacity:.55}.ps-checks li[data-ok=skip] b{background:var(--r-chip);color:var(--text-2)}.ps-result{border-top-width:1px;border-color:var(--line);padding-left:18px;padding-right:18px;padding-top:.875rem;padding-bottom:.875rem;font-size:14.5px;line-height:1.625;color:var(--head)}.ps-result p{margin:0;font-family:Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.ps-result .ps-verdict{margin-bottom:.25rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:13px;font-weight:600}.ps-result[data-ok=true]{background:var(--r-goodbg)}.ps-result[data-ok=true] .ps-verdict{color:var(--r-ok)}.ps-result[data-ok=false]{background:var(--r-badbg)}.ps-result[data-ok=false] .ps-verdict{color:var(--r-err)}.ps-log{margin-top:.625rem;display:block;white-space:pre-wrap;word-break:break-all;border-radius:.5rem;padding:.5rem .75rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px;line-height:1.375;color:var(--head);background:var(--bg)}.repl-figure{margin-top:2rem;margin-bottom:2rem;overflow-x:auto;border-radius:14px;border-width:1px;border-color:var(--line);padding:.75rem .5rem;font-family:Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";background:var(--bg-2)}.repl-figure svg{display:block;height:auto;width:100%;min-width:560px}.repl-figure svg text{font-family:Inter,ui-sans-serif,system-ui,sans-serif}.repl-figure figcaption{padding:.5rem .75rem .25rem;text-align:center;font-size:13px;line-height:1.375;color:var(--text-2)}.repl-chart .grid{stroke:var(--line);stroke-width:1}.repl-chart .axis{font-size:12px;fill:var(--text-2)}.repl-chart .fast{fill:var(--r-ok)}.repl-chart .slow{fill:var(--r-err)}.repl-chart .val{font-family:JetBrains Mono,ui-monospace,monospace!important;font-size:12.5px;font-weight:600;fill:var(--r-err)}.repl-branch path{fill:none;stroke-width:10;stroke-linecap:round}.repl-branch .shared{stroke:var(--text-2)}.repl-branch .old{stroke:var(--line-2)}.repl-branch .new{stroke:var(--r-leader)}.repl-branch .dot{fill:var(--bg-2);stroke:var(--head);stroke-width:3}.repl-branch .lab{font-family:JetBrains Mono,ui-monospace,monospace!important;font-size:13.5px;font-weight:500;fill:var(--head)}.repl-branch .new-t{fill:var(--r-leader)}.repl-branch .cut{font-family:JetBrains Mono,ui-monospace,monospace!important;font-size:12.5px;fill:var(--text-2)}
