@font-face{font-family:Caveat;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/caveat-500.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-sans-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-sans-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Oxanium;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/oxanium-600.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#172026;--panel:#1E2E35;--rail:#131C22;--raised:#243E4A;--ink:#F4F0E8;--ink-soft:#B4BFC3;--soft:var(--ink-soft);--mut:#7498A9;--line:rgba(91,128,144,.32);--line-mid:#5B8090;--line-hi:#5B8090;--teal-lt:#5BA8C0;--copper:#BD7838;--slate:#4F7080;--sage:#97AD8B;--amber:#D9B97A;--red:#CC8E8E;--mono-bg:#10212A;--console-bg:var(--mono-bg);--linen:#F4F0E8;--grad-cap:linear-gradient(#243E4A,#1A2930);--grad-btn:linear-gradient(#CF8E4F,#A45F25);--bevel-top:inset 0 1px 0 rgba(255,255,255,.07);--bevel-inset:inset 0 1px 3px rgba(0,0,0,.4);--r-panel:6px;--r-control:4px;--sans:"IBM Plex Sans",system-ui,sans-serif;--mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;--font-mono:var(--mono);--brand:"Oxanium",var(--sans);--hand:"Caveat",cursive;color-scheme:dark}h1,h2,h3{font-family:var(--sans);font-weight:600;margin:0}.mono{font-family:var(--mono)}.btn{display:inline-flex;align-items:center;height:40px;padding:0 18px;border-radius:4px;font-weight:600;font-size:15px;border:1px solid transparent;cursor:pointer}.btn:hover{text-decoration:none}.btn-ghost{background:var(--raised);color:var(--ink);border-color:var(--line-mid);box-shadow:var(--bevel-top)}.btn-ghost:hover{border-color:var(--teal-lt)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15.5px/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}::selection{background:#bd783861;color:var(--ink)}a{color:var(--teal-lt);text-decoration:none}a:hover{text-decoration:underline}.wrap{max-width:1180px;margin:0 auto;padding:0 32px}nav{height:56px;display:flex;align-items:center}nav .wrap{display:flex;align-items:center;width:100%}nav .brand img{height:24px;display:block}nav .brand{margin-right:24px;flex-shrink:0}nav .links{margin-left:auto;display:flex;gap:26px;font:13.5px var(--mono)}nav .links a{color:var(--soft)}nav .links a.docs{color:var(--ink);border:1px solid var(--line-mid);border-radius:4px;padding:5px 11px;margin-top:-6px;background:var(--raised);box-shadow:inset 0 1px #ffffff0f}.hero{text-align:center;padding:68px 0 20px}.hero h1{font:600 60px/1.1 var(--sans);letter-spacing:-.03em;margin:0 auto 22px}.tw{font-family:var(--mono);font-weight:500;color:var(--copper);letter-spacing:-.02em;font-size:.88em}.tw.cur{display:inline-block;width:.5em;height:.95em;background:var(--copper);vertical-align:-.08em;margin-left:.06em;animation:blink 1s step-end infinite}@keyframes blink{50%{opacity:0}}.lede{font-size:18.5px;color:var(--soft);max-width:58ch;margin:0 auto 30px}.ctas{display:flex;justify-content:center;align-items:center;gap:22px}.btn-primary{height:42px;padding:0 20px;background:var(--grad-btn);color:#fcfaf6;font-weight:600;font-size:15px;border:1px solid #8d4d1b;box-shadow:inset 0 1px #ffffff24,0 1px 2px #0006}.btn-primary:hover{filter:brightness(1.06)}.install{display:inline-flex;align-items:center;gap:10px;margin-top:26px;font:13px var(--mono);color:var(--soft);background:var(--mono-bg);border:1px solid var(--line-mid);border-radius:4px;padding:8px 12px 8px 14px}.install .p{color:var(--copper)}.install .cp{color:var(--mut);background:none;border:1px solid var(--line);border-radius:3px;padding:1px 7px;font:11px var(--mono);cursor:pointer}.install .cp:hover{color:var(--ink);border-color:var(--teal-lt)}.console-wrap{position:relative;max-width:1180px;margin:34px auto 0;padding:0 32px}.win{border:1px solid var(--line-mid);border-radius:6px;background:var(--panel);box-shadow:0 40px 90px -40px #000000e6;overflow:hidden}.win .cap{height:36px;background:var(--grad-cap);border-bottom:1px solid var(--line-mid);box-shadow:inset 0 1px #ffffff12;display:flex;align-items:center;padding:0 14px;font:12.5px var(--mono);color:var(--soft)}.win .cap .tab{color:var(--ink)}.win .cap .r{margin-left:auto;color:var(--mut)}.win .cap .lv{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--sage);margin-right:5px;animation:pulse 1.6s infinite}@keyframes pulse{50%{opacity:.35}}.win .split{display:grid;grid-template-columns:1.05fr 1fr}.win .ed{position:relative;padding:22px 24px 28px;font:13.5px/1.8 var(--mono)}.code{white-space:pre;color:#dce6ea}.code .k{color:#8aacb8}.code .d{color:var(--sage)}.code .f{color:var(--copper)}.code .s{color:var(--amber)}.code .c{color:#5b8090}.pin{--col:42;position:absolute;top:calc(22px + var(--row) * 1.8em);left:calc(24px + var(--col) * 1ch);height:1.8em;pointer-events:none}.pin .ann{position:absolute;left:0;top:50%;font:500 19px/1.1 var(--hand);color:#e8c59a;white-space:nowrap;transform:translateY(-9px) rotate(-1.5deg);transform-origin:0 50%}.pin .arw,.pin .head{position:absolute;overflow:visible;fill:none;stroke:#e8c59a;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.pin .arw{right:calc(100% + .6ch);width:calc((var(--col) - var(--end) - 1.6) * 1ch);height:14px;top:calc(50% - 7px)}.pin .head{right:calc(100% + .6ch + (var(--col) - var(--end) - 1.6) * 1ch - 9px);width:10px;height:14px;top:calc(50% - 7px)}.win .ed{--pt:22px}.mk,.hl{position:absolute;top:calc(var(--pt) + var(--row) * 1.8em);height:1.8em;pointer-events:none}.mk{left:6px;width:8px;opacity:0;transition:top .25s ease,opacity .2s}.mk:before{content:"";position:absolute;top:50%;margin-top:-5px;border:5px solid transparent;border-left:7px solid var(--copper);border-right:0}.mk.on{opacity:1}.hl{left:0;right:0;opacity:0;background:color-mix(in srgb,var(--sage) 20%,transparent)}.hl.on{animation:replayed .7s ease-out}@keyframes replayed{0%{opacity:0}20%{opacity:1}to{opacity:0}}.win .dock{border-left:1px solid var(--line-mid);background:var(--mono-bg);padding:14px 0}.win .dock table{border-collapse:separate;border-spacing:0;width:100%;font:12.5px/1.9 var(--mono)}.win .dock td{padding:0 12px;white-space:nowrap;color:#dce6ea}.win .dock .id{color:#5b8090}.win .dock .ev{color:#8cc4d6}.win .dock .st{text-align:right}.win .dock tr.crash td{color:var(--red);transition:color .3s}.win.down .cap .lv{background:var(--red);animation:none}.win .dock tr.div td{color:var(--mut);font-style:italic;border-top:1px dashed #2E4650;border-bottom:1px dashed #2E4650;white-space:normal;line-height:1.5;padding:4px 12px}.ok{color:var(--sage)}.rep{color:var(--copper)}.err{color:var(--red)}.tok{color:var(--amber)}.win .dock td{opacity:0;animation:land .3s forwards}@keyframes land{to{opacity:1}}.caption{text-align:center;font:12.5px var(--mono);color:var(--mut);margin:14px 0 0}.board{--fs:13px;--cw:calc(.72*var(--fs) + 1px);font-size:var(--fs);line-height:1;border-collapse:separate;border-spacing:.7em 6px;margin:0 auto;table-layout:fixed;width:calc(34*var(--cw) + 6*.7em)}.board th{text-align:left;font:500 .78em var(--mono);color:var(--mut);padding:0 0 8px;border-bottom:1px solid var(--line);white-space:nowrap}.board th:nth-child(1),.board td:nth-child(1){width:calc(4*var(--cw))}.board th:nth-child(2),.board td:nth-child(2){width:calc(7*var(--cw))}.board th:nth-child(3),.board td:nth-child(3){width:calc(8*var(--cw))}.board th:nth-child(4),.board td:nth-child(4){width:calc(8*var(--cw))}.board th:nth-child(5),.board td:nth-child(5){width:calc(7*var(--cw))}.board td{padding:0;height:1.7em;color:var(--ink);white-space:nowrap;overflow:hidden}.board .fc{display:flex;height:1.7em;perspective:200px}.board .ch{display:block;width:.72em;margin:0 .5px;text-align:center;line-height:1.7em;color:inherit;background:linear-gradient(#1b2a32 49%,#0c1419 50%);border-radius:2px;font-style:normal;font-weight:500;overflow:hidden}.board .ch{transition:background .3s}.board tr.crash .ch{background:linear-gradient(#3a2a2d 49%,#24181a 50%)}.board .amb{color:var(--amber)}.board .ok{color:var(--sage)}.board .red{color:var(--red)}.board .cop{color:#e0a56a}.turn{display:flex;flex-direction:column;gap:8px}.turn .u{color:var(--mut)}.turn .a{color:#dce6ea}.turn .cur{display:inline-block;width:7px;height:14px;background:var(--copper);vertical-align:-2px;animation:blink .9s step-end infinite}.turn .meta{color:#5b8090;font-size:11px}.turn .a{position:relative}.turn .a .ghost{visibility:hidden}.turn .a .live{position:absolute;inset:0}.turn .a .live,.turn .a .ghost{transition:opacity .2s}.turn.lost .a .live{animation:drop .5s steps(1) forwards}@keyframes drop{0%{opacity:1}20%{opacity:.15}40%{opacity:.8}60%{opacity:.25}to{opacity:.4}}.turn .net{font:11px var(--mono);color:#5b8090;visibility:hidden;display:flex;align-items:center;gap:7px}.turn .net:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.turn .net.lost{visibility:visible;color:var(--red)}.turn .net.lost:before{animation:blink .7s step-end infinite}.turn .net.back{visibility:visible;color:var(--sage)}.ptxt p{color:var(--soft);margin:0 0 12px}.api{font:12.5px/1.7 var(--mono);color:var(--mut);background:var(--mono-bg);border:1px solid var(--line);border-radius:4px;padding:10px 12px}.api b{color:var(--teal-lt);font-weight:500}.api i{color:var(--amber);font-style:normal}.graph svg{width:100%;height:auto;display:block;overflow:visible}.graph .g-tall{display:none}.lbl{font:12.5px var(--mono);fill:var(--ink)}.sub{font:11px var(--mono);fill:#5b8090}.arg{font:11px var(--mono);fill:var(--mut)}.graph .hand{font:500 20px var(--hand);fill:#e8c59a}.out{font:12.5px var(--mono);fill:var(--ink)}.out.o{fill:#bd7838}.graph .ocard{fill:#1e2e35;stroke:#3a5563;stroke-width:1}.graph.pre .gx>*,.graph.pre .gy{opacity:0}.graph.pre .gn>*{transform:scale(.6);transform-box:fill-box;transform-origin:center}.graph.pre .gl{stroke-dasharray:1;stroke-dashoffset:1}.graph.pre.go .gx>*,.graph.pre.go .gy{opacity:1;transition:opacity .35s ease var(--d,0s)}.graph.pre.go .gn>*{transform:none;transition:opacity .35s ease var(--d,0s),transform .35s ease var(--d,0s)}.graph.pre.go .gl{stroke-dashoffset:0;transition:stroke-dashoffset var(--t) cubic-bezier(.4,0,.2,1) var(--d)}.graph .tip{transform:rotate(-2deg);transform-box:fill-box;transform-origin:100% 100%}.nd{cursor:pointer;outline:none}.nd circle{transition:stroke-width .15s}.nd:hover circle,.nd:focus-visible circle{stroke-width:3.5}.nd .hit{fill:transparent;stroke:none}.nd:focus-visible .hit{stroke:var(--teal-lt);stroke-width:1.5}.graph .br .lbl,.graph .br .arg.c{fill:#bd7838}.graph.anim .bp{stroke-dasharray:1;stroke-dashoffset:1;animation:fdraw .6s ease forwards}.graph.anim .bn{opacity:0;animation:ffade .3s ease .45s forwards}.graph.anim .bc{opacity:0;animation:ffade .3s ease .7s forwards}@keyframes fdraw{to{stroke-dashoffset:0}}@keyframes ffade{to{opacity:1}}.gm>:nth-child(1){--d:.1s}.gm>:nth-child(2){--d:.3s}.gm>:nth-child(3){--d:.55s}.gm>:nth-child(4){--d:.78s}.gk>:nth-child(1){--d:1.45s}.gk>:nth-child(2){--d:1.65s}.band{margin-top:110px;background:var(--linen);color:#1b262c;border-top:2px solid var(--copper)}.band .wrap{display:grid;grid-template-columns:1fr 1fr;gap:40px 56px;padding:60px 32px 64px}.band h2{font:600 26px var(--sans);letter-spacing:-.02em;margin:0 0 14px}.band p{margin:0 0 12px;color:#3f4a50;max-width:54ch}.band a{color:#185063}.band p code{font:13px var(--mono);color:#1b262c}.band h3{font:600 19px/1.3 var(--sans);letter-spacing:-.02em;margin:0 0 10px}.band .name{font:500 44px/1 var(--sans);letter-spacing:-.03em;color:#1b262c;margin:18px 0 22px;display:flex;flex-wrap:wrap;max-width:100%;width:fit-content;padding:0;border:0;background:none;text-align:left;cursor:pointer;border-radius:4px}.band .name:focus-visible{outline:2px solid #185063;outline-offset:6px}.band .name b{font-weight:600}.band .name .dot{font-style:normal;font-weight:500;color:#bd7838;padding:0 .14em}.band .name span{position:relative;padding-bottom:16px;white-space:nowrap}.band .name span:after{content:attr(data-l);position:absolute;left:0;bottom:0;font:600 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#bd7838;transition:opacity .4s ease calc(var(--d,0s) + .35s)}.band .name em{display:inline-block;overflow:hidden;vertical-align:top;max-width:2.4em;padding-right:.02em;font-style:normal;color:#b5ab9a;font-weight:400;transition:max-width .7s cubic-bezier(.3,.7,.2,1) var(--d,0s),opacity .5s ease var(--d,0s),transform .7s ease var(--d,0s)}.band .name.fold em{max-width:0;opacity:0;transform:translate(-.25em);transition-delay:0s}.band .name.fold span:after{opacity:0;transition-delay:0s}.band .code{font:12.5px/1.7 var(--mono);background:#fffdf8;border:1px solid #D8CCB6;border-radius:4px;padding:12px 14px;color:#2a3338;margin:0 0 16px;white-space:pre;overflow-x:auto}.band .code b{color:#185063;font-weight:500}.band .code i{color:#8a6a3a;font-style:normal}.band .code s{color:#8a9399;text-decoration:none}.band .prim{list-style:none;margin:0;padding:0}.band .prim li{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:9px 0;border-top:1px solid #D8CCB6;color:#3f4a50;font-size:14px}.band .prim li:last-child{border-bottom:1px solid #D8CCB6}.band .prim code{font:12.5px var(--mono);color:#1b262c}footer{padding:48px 0 28px}footer .motto{font:600 22px var(--brand);color:var(--ink);letter-spacing:.02em;margin-bottom:14px}footer .motto i{color:var(--copper);font-style:normal}footer .row{display:flex;justify-content:space-between;font:12.5px var(--mono);color:var(--mut);border-top:1px solid var(--line);padding-top:16px}footer .row a{color:var(--mut)}footer .nw{white-space:nowrap}footer .next{display:flex;align-items:center;flex-wrap:wrap;gap:8px 18px;margin-bottom:28px;font:12.5px var(--mono)}footer .next code{color:var(--soft);background:var(--mono-bg);border:1px solid var(--line);border-radius:4px;padding:5px 10px}footer .fl{display:flex;flex-wrap:wrap;gap:6px 20px}@media(prefers-reduced-motion:reduce){.tw.cur,.turn .cur,.win .cap .lv{animation:none}.win .dock td{animation:none;opacity:1}.band .name em,.band .name span:after,.nd circle{transition:none}.graph.anim .bp,.graph.anim .bn,.graph.anim .bc{animation:none;stroke-dashoffset:0;opacity:1}.mk,.hl{display:none}html{scroll-behavior:auto}}@media(max-width:1160px){.win .split{grid-template-columns:1fr}.win .dock{border-left:0;border-top:1px solid var(--line-mid)}.win .dock table{max-width:680px}}@media(max-width:760px){.wrap{padding:0 20px}nav .links{gap:16px;font-size:12.5px}nav .links a.opt{display:none}.install .cp{padding:4px 10px}.band .code{font-size:11.5px;padding:12px 10px}nav .links a.docs{padding:4px 9px}.hero{padding:52px 0 28px}.hero h1{font-size:38px;line-height:1.12}.lede{font-size:16.5px}.ctas{flex-direction:column;gap:14px}.install{font-size:12px}.console-wrap{padding:0 12px;margin-top:28px}.win .split{grid-template-columns:1fr}.win .ed{--pt:16px;padding:16px 14px 20px;font-size:11.5px;overflow-x:auto}.pin{display:none}.win .dock{border-left:0;border-top:1px solid var(--line-mid);overflow-x:auto}.win .dock table{font-size:10.5px}.win .dock td{padding:0 7px}.win .cap{font-size:11px}.win .cap .r{white-space:nowrap}.win .cap .r i{display:none}.caption{padding:0 20px;font-size:11.5px}.graph .g-wide{display:none}.graph .g-tall{display:block;max-width:420px;margin:0 auto}.band .wrap>div{min-width:0}.band .wrap{grid-template-columns:1fr;gap:32px;padding:40px 20px 44px}.band{margin-top:64px}.band .name{font-size:36px}.band .prim li{grid-template-columns:1fr;gap:2px}footer{padding:32px 0 20px}footer .motto{font-size:19px}footer .row{flex-direction:column;gap:10px;font-size:11.5px;line-height:1.6}}.strip{display:grid;grid-template-columns:repeat(3,1fr);width:min(460px,calc(100% - 40px));margin:56px auto 0;text-align:center;font:600 11px var(--brand);letter-spacing:.28em;text-transform:uppercase;color:#7e97a3}.strip span{padding-left:.28em}.strip .ln{grid-column:1/-1;position:relative;height:16px;margin-top:12px}.strip .ln:before{content:"";position:absolute;left:0;right:0;top:6px;height:4px;border-radius:2px;background:#3e5c69}.strip .st{position:absolute;top:2px;width:12px;height:12px;margin-left:-6px;border-radius:50%;border:3px solid var(--ink);background:var(--bg)}.strip .st:nth-child(1){left:16.667%}.strip .st:nth-child(2){left:50%}.strip .st:nth-child(3){left:83.333%}.strip .pass{position:absolute;top:4px;left:0;width:14px;height:8px;border-radius:4px;background:var(--copper);opacity:0}.strip.go .pass{animation:pass 2.8s cubic-bezier(.45,0,.35,1) forwards}@keyframes pass{0%{left:0;opacity:0}8%{opacity:1}92%{opacity:1}to{left:calc(100% - 14px);opacity:0}}.sec{max-width:1180px;margin:110px auto 0;padding:0 32px}.strip+.sec{margin-top:80px}.sh{display:flex;align-items:center;gap:12px;height:40px}.sh:before{content:"";flex:none;width:12px;height:12px;border-radius:50%;border:3px solid var(--ink);background:var(--bg)}.sh h2{font:600 24px/1 var(--sans);letter-spacing:-.02em;color:var(--ink);margin:0}.sh code{font:12.5px var(--mono);color:var(--mut)}.sh .trk{flex:1;min-width:16px;height:2px;border-radius:1px;background:var(--line-mid);opacity:.55}.sh a{font:12.5px var(--mono);white-space:nowrap}.part{display:grid;grid-template-columns:320px minmax(0,1fr);gap:56px;align-items:center}.part.alt{grid-template-columns:minmax(0,1fr) 320px}.part.alt .ptxt{order:2}.sh+.part{margin-top:40px}#kafka .part{align-items:start}.part+.part{margin-top:88px}.ptxt{min-width:0}.ptxt h3{font:600 19px/1.3 var(--sans);letter-spacing:-.02em;margin:0 0 10px}.ptxt p{max-width:50ch}.ptxt code{font:.92em var(--mono);color:var(--ink)}.ptxt .pk{font:12.5px var(--mono);margin-top:14px;display:flex;flex-wrap:wrap;gap:6px 18px}.pvis{min-width:0;justify-self:start;width:100%}.part.alt .pvis{justify-self:end}.pvis .bdf{max-width:100%}.bdf{width:100%;margin:0;border:1px solid var(--line-mid);border-radius:6px;background:#0b161c;padding:12px 8px 8px;box-shadow:inset 0 0 0 3px var(--mono-bg),inset 0 0 0 4px #2a4350}.bdf .board{--fs:16px;margin:0 auto}.scenes{border:1px solid var(--line-mid);border-radius:6px;background:var(--mono-bg);padding:10px 16px 8px}.tk-code{display:grid;grid-template-columns:1fr auto;gap:2px 12px;font:12px/1.6 var(--mono);margin-bottom:2px}.tk-code code{font:inherit;color:#dce6ea;grid-column:1;opacity:.5;transition:opacity .25s;white-space:nowrap}.tk-code code i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:8px;vertical-align:0}.tk-code .tk-run{grid-column:2;grid-row:1;color:var(--mut);font-size:11px}.tk-code code.on,.scenes.st .tk-code code{opacity:1}.tks{width:100%;height:auto;display:block;overflow:visible}.tks.tk-t{display:none}.tks .rl{fill:none;stroke:#3e5c69;stroke-width:6;stroke-linecap:round;stroke-linejoin:round}.tks .rc{fill:none;stroke:#6f93a3;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.tks .rs{fill:var(--mono-bg);stroke:var(--ink);stroke-width:3}.tks .tl{font:12px var(--mono);fill:var(--ink)}.tks .ts{font:11px var(--mono);fill:var(--mut)}.tks .ev{font:11.5px var(--mono);fill:#8cc4d6}.tks .chip rect{fill:var(--panel);stroke:var(--line-mid);stroke-width:1}.tks .chip text{font:11px var(--mono);fill:var(--soft)}.tks .chip.cp rect{stroke:var(--copper)}.tks .chip.cp text{fill:#e0a56a}.tks .car{fill:var(--ink);stroke:var(--ink);stroke-width:2.5}.graph{max-width:760px}.graph .st{transition:stroke-width .15s}.nd:hover .st,.nd:focus-visible .st{stroke-width:4}.tbox{border:1px solid var(--line-mid);border-radius:6px;background:var(--mono-bg);padding:26px 30px;font:13.5px/1.75 var(--mono)}.tbox .meta{font-size:11.5px}.sbp{min-width:0;border:1px solid var(--line-mid);border-radius:6px;background:#0f1a20;overflow:hidden}.sbp .cap{height:34px;background:var(--grad-cap);border-bottom:1px solid var(--line-mid);box-shadow:inset 0 1px #ffffff12;display:flex;align-items:center;padding:0 14px;font:600 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--soft)}.sbp .cap span{margin-left:auto;font-weight:400;text-transform:none;letter-spacing:0;color:var(--mut)}.sbp .rows{padding:4px 18px 6px}.sbr{display:grid;grid-template-columns:128px 1fr 164px;align-items:center;gap:14px;padding:11px 0;border-top:1px solid var(--line)}.sbr:first-child{border-top:0}.sbr .nm{font:12.5px var(--mono);color:var(--ink)}.sbr .stt{font:11px/1.45 var(--mono);color:var(--mut)}.sbr .stt b{display:block;font-weight:500;font-size:12px;color:var(--soft)}.sbr svg{width:100%;height:auto;display:block;overflow:visible}.sbr .rl{fill:none;stroke:#3e5c69;stroke-width:5;stroke-linecap:round}.sbr .rc{fill:none;stroke:#6f93a3;stroke-width:2;stroke-linecap:round}.sbr .rs{fill:#0f1a20;stroke:var(--ink);stroke-width:2.5}.sbr .ts{font:10.5px var(--mono);fill:var(--mut)}.sbp .blink{animation:lamp 1.6s ease-in-out infinite}.sbp:not(.live) .blink{animation-play-state:paused}@keyframes lamp{50%{opacity:.2}}.code2{font:12.5px/1.75 var(--mono);color:#dce6ea;background:var(--mono-bg);border:1px solid var(--line-mid);border-radius:6px;overflow:hidden}.code2 .cap{height:34px;background:var(--grad-cap);border-bottom:1px solid var(--line-mid);box-shadow:inset 0 1px #ffffff12;display:flex;align-items:center;padding:0 14px;font:12.5px var(--mono);color:var(--soft)}.code2 .cap .r{margin-left:auto;color:var(--mut)}.code2 pre{margin:0;padding:16px 20px;overflow-x:auto;font:inherit;white-space:pre}.code2 b{color:var(--teal-lt);font-weight:500}.code2 i{color:var(--amber);font-style:normal}.code2 s{color:#6b8a98;text-decoration:none}.bl{margin:0 0 18px}.bl svg{width:100%;height:auto;display:block;overflow:visible}.bl .tall{display:none}.bl .rl{fill:none;stroke:#3e5c69;stroke-width:6;stroke-linecap:round}.bl .rk{fill:none;stroke:var(--copper);stroke-width:2;stroke-linecap:round}.bl .rs{fill:var(--bg);stroke:var(--ink);stroke-width:3}.bl .rs.cp{stroke:var(--copper)}.bl .tl{font:12px var(--mono);fill:var(--ink)}.bl .ts{font:11px var(--mono);fill:var(--mut)}.bl .tk{font:11px var(--mono);fill:#e0a56a}@media(max-width:760px){.bl .wide{display:none}.bl .tall{display:block;max-width:360px}.code2 pre{padding:14px 12px;font-size:11px}}.band .tree{--st:24px;--sy:21px;--ln:#3E5C69;margin-top:30px;min-width:0}.tree ol{list-style:none;margin:0;padding:0}.tn{--x:calc(var(--d)*var(--st) + 12px);--px:calc((var(--d) - 1)*var(--st) + 12px);position:relative;display:block;padding:10px 0 12px calc(var(--d)*var(--st) + 36px)}.tn .nm{display:block;font:600 13.5px var(--mono);color:#1b262c;min-width:0;overflow-wrap:anywhere}.tn.root .nm{font-size:16px}.tn .ds{font-size:14px;color:#3f4a50;margin-right:8px}.tn .go{font:12.5px var(--mono);white-space:nowrap}.tn .el,.tn.k:after,.tn.c:before{position:absolute;pointer-events:none}.tn .el{left:calc(var(--px) - 2px);top:0;width:calc(var(--st) + 2px);height:calc(var(--sy) + 2px);box-sizing:border-box;border-left:4px solid var(--ln);border-bottom:4px solid var(--ln);border-bottom-left-radius:12px;transform-origin:0 0}.tn.k:after{content:"";left:calc(var(--x) - 2px);top:calc(var(--sy) - 2px);bottom:-2px;width:4px;background:var(--ln);transform-origin:0 0}.tn.c:before{content:"";left:calc(var(--px) - 2px);top:-2px;bottom:-2px;width:4px;background:var(--ln);transform-origin:0 0}.tn .st{position:absolute;z-index:1;left:calc(var(--x) - 7px);top:calc(var(--sy) - 7px);width:14px;height:14px;box-sizing:border-box;border-radius:50%;border:3px solid #1b262c;background:var(--linen)}.tn.root .st{left:0;top:calc(var(--sy) - 12px);width:24px;height:24px;border-width:4px}.tn.root .st:after{content:"";position:absolute;inset:3px;border-radius:50%;background:#bd7838}.tree.pre .tn .el,.tree.pre .tn.k:after,.tree.pre .tn.c:before{transform:scaleY(0);transition:transform .45s ease calc(var(--i)*.25s)}.tree.pre .tn .st{opacity:0;transition:opacity .25s ease calc(var(--i)*.25s + .2s)}.tree.pre.go .tn .el,.tree.pre.go .tn.k:after,.tree.pre.go .tn.c:before{transform:none}.tree.pre.go .tn .st{opacity:1}@media(prefers-reduced-motion:reduce){.tree .tn *,.tree .tn:before,.tree .tn:after{transition:none!important}}footer .row{border-top:0;position:relative;padding-top:26px}footer .row:before{content:"";position:absolute;left:0;right:0;top:0;height:10px;opacity:.7;background:linear-gradient(var(--line-mid),var(--line-mid)) 0 0/100% 2px no-repeat,repeating-linear-gradient(90deg,var(--line-mid) 0 2px,transparent 2px 16px) 0 0/100% 10px no-repeat}@media(max-width:1040px){.part,.part.alt{grid-template-columns:minmax(0,1fr);gap:28px}.part.alt .ptxt{order:0}.ptxt p{max-width:62ch}.pvis,.part.alt .pvis{justify-self:start;max-width:720px}}@media(max-width:760px){.sec{padding:0 20px;margin-top:64px}.strip+.sec{margin-top:56px}.sh{gap:10px}.sh code{display:none}.part+.part{margin-top:64px}.sh+.part{margin-top:28px}.ptxt h3{font-size:19px}.bdf .board{--fs:12px;width:calc(26*var(--cw) + 5*.7em)}.bdf .board th:nth-child(4),.bdf .board td:nth-child(4){display:none}.tbox{padding:18px 16px;font-size:12.5px;min-height:0}.sbp .rows{padding:4px 14px 6px}.sbr{grid-template-columns:1fr auto;gap:6px 12px}.sbr svg{grid-column:1/-1;order:3}.sbr .stt{text-align:right}}@media(max-width:640px){.tks.tk-w{display:none}.tks.tk-t{display:block}.tk-code{grid-template-columns:1fr;font-size:11.5px}.tk-code .tk-run{grid-column:1;grid-row:1}.scenes{padding:10px 12px 8px}}@media(prefers-reduced-motion:reduce){.strip .pass{display:none}.sbp .blink{animation:none}}
