:root{--bg: #0f0f11;--ink: #f4f2ed;--muted: #8f8d88;--line: rgb(244 242 237 / 18%);--code-bg: #18191b;--image-filter: brightness(0.75);--diagram-invert: 0.88;--box-bg: #404040;--box-edge: #2a2a2a;--box-info-bg: #003c74;--box-info-edge: #0a2942;--box-warning-bg: #905300;--box-warning-edge: #503000;--box-error-bg: #850e00;--box-error-edge: #5b0600;--box-success-bg: #0c5e00;--box-success-edge: #043901;--icon-sun: block;--icon-moon: none;--logo-invert: 1;--accent: #ff4b33;--go-blue: #007d9c;--error: #ff4444;--font-sans: "Source Sans 3", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-display: "Anton", "Arial Narrow", ui-sans-serif, system-ui, sans-serif;--measure: 34rem;--radius: 6px;--nav-height: 2.5rem}@media(prefers-color-scheme: light){:root:not([data-theme=dark]){--bg: #f7f5f0;--ink: #16151a;--muted: #6b6963;--line: rgb(22 21 26 / 18%);--code-bg: #ffffff;--image-filter: none;--diagram-invert: 0;--box-bg: #f4f4f4;--box-edge: #6c757d;--box-info-bg: #e7f3fe;--box-info-edge: #2196f3;--box-warning-bg: #fff4e5;--box-warning-edge: #ff9800;--box-error-bg: #fdecea;--box-error-edge: #f44336;--box-success-bg: #eafdea;--box-success-edge: #25a74a;--icon-sun: none;--icon-moon: block;--logo-invert: 0}}:root[data-theme=light]{--bg: #f7f5f0;--ink: #16151a;--muted: #6b6963;--line: rgb(22 21 26 / 18%);--code-bg: #ffffff;--image-filter: none;--diagram-invert: 0;--box-bg: #f4f4f4;--box-edge: #6c757d;--box-info-bg: #e7f3fe;--box-info-edge: #2196f3;--box-warning-bg: #fff4e5;--box-warning-edge: #ff9800;--box-error-bg: #fdecea;--box-error-edge: #f44336;--box-success-bg: #eafdea;--box-success-edge: #25a74a;--icon-sun: none;--icon-moon: block;--logo-invert: 0}:root[data-theme=dark]{--bg: #0f0f11;--ink: #f4f2ed;--muted: #8f8d88;--line: rgb(244 242 237 / 18%);--code-bg: #18191b;--image-filter: brightness(0.75);--diagram-invert: 0.88;--box-bg: #404040;--box-edge: #2a2a2a;--box-info-bg: #003c74;--box-info-edge: #0a2942;--box-warning-bg: #905300;--box-warning-edge: #503000;--box-error-bg: #850e00;--box-error-edge: #5b0600;--box-success-bg: #0c5e00;--box-success-edge: #043901;--icon-sun: block;--icon-moon: none;--logo-invert: 1}*,*::before,*::after{box-sizing:border-box}body{margin:0;display:flex;flex-direction:column;min-height:100dvh;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}img,svg{display:block;max-width:100%}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media(prefers-reduced-motion: reduce){*,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important}}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.stage{flex:1;display:grid;place-items:center;padding:4rem 1.5rem 2rem}.hero{width:100%;max-width:var(--measure);text-align:center}.hero__eyebrow{margin:0 0 1.25rem;color:var(--muted);font-size:.875rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.hero__logo{height:auto;margin:0 auto;filter:invert(var(--logo-invert))}.hero__wordmark{font-family:var(--font-display);font-weight:400;letter-spacing:.01em;line-height:1}.hero--stacked .hero__rule{display:none}.hero--stacked .hero__logo{width:clamp(88px,18vw,140px)}.hero--stacked .hero__wordmark{margin:1.5rem 0 0;font-size:clamp(2.25rem,9vw,3.75rem)}.hero--inline .hero__lockup{display:flex;align-items:center;justify-content:center;gap:clamp(.9rem,3vw,1.5rem)}.hero--inline .hero__logo{width:clamp(64px,13vw,96px)}.hero--inline .hero__rule{align-self:stretch;width:1px;background:var(--line)}.hero--inline .hero__wordmark{margin:0;font-size:clamp(2rem,8vw,3.25rem)}.hero__tagline{margin:.75rem auto 0;max-width:28rem;color:var(--muted);font-size:1.0625rem;text-wrap:balance}.hero__links{margin-top:2.25rem;display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem}.footer{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 1.25rem;padding:1.5rem;text-align:center;color:var(--muted);font-size:.8125rem}.footer a{color:inherit;text-decoration-color:var(--line);text-underline-offset:.2em}.footer a:hover{color:var(--ink)}.page{align-self:start;width:100%;max-width:56rem;min-width:0}.page>*{max-width:var(--measure);margin-inline:auto}.page>.table-wrap{max-width:none}.page__title{margin:0 0 1.5rem;font-family:var(--font-display);font-weight:400;font-size:clamp(2rem,7vw,2.75rem);letter-spacing:.01em;line-height:1}.page a{color:inherit;text-decoration-color:var(--line);text-underline-offset:.2em}.page a:hover{text-decoration-color:currentcolor}.page__back{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--line);color:var(--muted);font-size:.9375rem}.page h2{margin:2.5rem 0 .75rem;font-size:1.375rem;line-height:1.3}.page h3{margin:1.75rem 0 .5rem;font-size:1.0625rem;line-height:1.3}.page p,.page ul,.page ol{margin:0 0 1rem}.page ul,.page ol{padding-left:1.25rem}.page li{margin-bottom:.35rem}.page code{padding:.1em .35em;border-radius:3px;background:color-mix(in srgb, var(--ink) 10%, transparent);font-size:.9em}.table-wrap{margin:0 0 1.5rem;overflow-x:auto}.page table{width:100%;border-collapse:collapse;font-size:.9375rem}.page th,.page td{padding:.6rem .9rem;border:1px solid var(--line);vertical-align:top}.page th{white-space:nowrap;font-weight:600}.page__meta{margin:-0.75rem 0 1.75rem;color:var(--muted);font-size:.9375rem}.page .signature{margin-top:2.5rem;text-align:right;font-style:italic}.page h1:not(.page__title){margin:3rem 0 1rem;font-size:1.75rem;line-height:1.2}.page h4{margin:1.5rem 0 .5rem;font-size:1em;line-height:1.35}.page h5{margin:1.25rem 0 .4rem;font-size:.9375em;line-height:1.4}.page h6{margin:1rem 0 .35rem;color:var(--muted);font-size:.875em;line-height:1.45}.page li>ul,.page li>ol{margin:.35rem 0 0}.page blockquote{margin:2rem 0;padding:.25rem 0 .25rem 1.5rem;border-left:2px solid var(--line);font-style:italic}.page blockquote>:first-child{margin-top:0}.page blockquote>:last-child{margin-bottom:0}.page hr{height:1px;margin:2.5rem 0;border:0;background:var(--line)}.page dl{margin:0 0 1rem}.page dt{font-weight:600}.page dd{margin:0 0 1rem 1.25rem}.page sup{line-height:0}.footnotes{margin:3rem 0 0;font-size:.9375rem;font-style:italic}.footnotes hr{margin:0 0 1.5rem}.post-list{margin:0;padding:0;list-style:none}.post-list__item{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.25rem 1rem;padding:1rem 0;border-bottom:1px solid var(--line)}.post-list__item:first-child{border-top:1px solid var(--line)}.post-list__link{font-weight:600}.post-list__date{color:var(--muted);font-size:.875rem;font-variant-numeric:tabular-nums}.box{margin:2rem 0;padding:1rem;border-left:3px solid var(--box-edge);border-radius:4px;background:var(--box-bg)}.box>:first-child{margin-top:0}.box>:last-child{margin-bottom:0}.box-info{border-color:var(--box-info-edge);background:var(--box-info-bg)}.box-warning{border-color:var(--box-warning-edge);background:var(--box-warning-bg)}.box-error{border-color:var(--box-error-edge);background:var(--box-error-bg)}.box-success{border-color:var(--box-success-edge);background:var(--box-success-bg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem 1.4rem;border:1px solid var(--line);border-radius:var(--radius);background:rgba(0,0,0,0);color:inherit;font:inherit;font-weight:600;text-decoration:none;cursor:pointer;transition:border-color .15s ease,background-color .15s ease,transform .15s ease}.btn:hover{border-color:var(--ink);transform:translateY(-1px)}.btn__icon{width:1.25em;height:1.25em;flex:none}.btn--youtube:hover{border-color:var(--accent);color:var(--accent)}.btn--primary{border-color:var(--ink);background:var(--ink);color:var(--bg)}.btn--primary:hover{background:var(--accent);border-color:var(--accent);color:#fff}:root[data-theme=dark] .bg{color:#e6edf3;background-color:#0d1117}:root[data-theme=dark] .chroma{color:#e6edf3;background-color:#0d1117}:root[data-theme=dark] .chroma .err{color:#f85149}:root[data-theme=dark] .chroma .lnlinks{outline:none;text-decoration:none;color:inherit}:root[data-theme=dark] .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}:root[data-theme=dark] .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}:root[data-theme=dark] .chroma .hl{background-color:#6e7681}:root[data-theme=dark] .chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em 0 .4em;color:#737679}:root[data-theme=dark] .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em 0 .4em;color:#6e7681}:root[data-theme=dark] .chroma .line{display:flex}:root[data-theme=dark] .chroma .k{color:#ff7b72}:root[data-theme=dark] .chroma .kc{color:#79c0ff}:root[data-theme=dark] .chroma .kd{color:#ff7b72}:root[data-theme=dark] .chroma .kn{color:#ff7b72}:root[data-theme=dark] .chroma .kp{color:#79c0ff}:root[data-theme=dark] .chroma .kr{color:#ff7b72}:root[data-theme=dark] .chroma .kt{color:#ff7b72}:root[data-theme=dark] .chroma .nc{color:#f0883e;font-weight:bold}:root[data-theme=dark] .chroma .no{color:#79c0ff;font-weight:bold}:root[data-theme=dark] .chroma .nd{color:#d2a8ff;font-weight:bold}:root[data-theme=dark] .chroma .ni{color:#ffa657}:root[data-theme=dark] .chroma .ne{color:#f0883e;font-weight:bold}:root[data-theme=dark] .chroma .nl{color:#79c0ff;font-weight:bold}:root[data-theme=dark] .chroma .nn{color:#ff7b72}:root[data-theme=dark] .chroma .py{color:#79c0ff}:root[data-theme=dark] .chroma .nt{color:#7ee787}:root[data-theme=dark] .chroma .nv{color:#79c0ff}:root[data-theme=dark] .chroma .vc{color:#79c0ff}:root[data-theme=dark] .chroma .vg{color:#79c0ff}:root[data-theme=dark] .chroma .vi{color:#79c0ff}:root[data-theme=dark] .chroma .vm{color:#79c0ff}:root[data-theme=dark] .chroma .nf{color:#d2a8ff;font-weight:bold}:root[data-theme=dark] .chroma .fm{color:#d2a8ff;font-weight:bold}:root[data-theme=dark] .chroma .l{color:#a5d6ff}:root[data-theme=dark] .chroma .ld{color:#79c0ff}:root[data-theme=dark] .chroma .s{color:#a5d6ff}:root[data-theme=dark] .chroma .sa{color:#79c0ff}:root[data-theme=dark] .chroma .sb{color:#a5d6ff}:root[data-theme=dark] .chroma .sc{color:#a5d6ff}:root[data-theme=dark] .chroma .dl{color:#79c0ff}:root[data-theme=dark] .chroma .sd{color:#a5d6ff}:root[data-theme=dark] .chroma .s2{color:#a5d6ff}:root[data-theme=dark] .chroma .se{color:#79c0ff}:root[data-theme=dark] .chroma .sh{color:#79c0ff}:root[data-theme=dark] .chroma .si{color:#a5d6ff}:root[data-theme=dark] .chroma .sx{color:#a5d6ff}:root[data-theme=dark] .chroma .sr{color:#79c0ff}:root[data-theme=dark] .chroma .s1{color:#a5d6ff}:root[data-theme=dark] .chroma .ss{color:#a5d6ff}:root[data-theme=dark] .chroma .m{color:#a5d6ff}:root[data-theme=dark] .chroma .mb{color:#a5d6ff}:root[data-theme=dark] .chroma .mf{color:#a5d6ff}:root[data-theme=dark] .chroma .mh{color:#a5d6ff}:root[data-theme=dark] .chroma .mi{color:#a5d6ff}:root[data-theme=dark] .chroma .il{color:#a5d6ff}:root[data-theme=dark] .chroma .mo{color:#a5d6ff}:root[data-theme=dark] .chroma .o{color:#ff7b72;font-weight:bold}:root[data-theme=dark] .chroma .ow{color:#ff7b72;font-weight:bold}:root[data-theme=dark] .chroma .c{color:#8b949e;font-style:italic}:root[data-theme=dark] .chroma .ch{color:#8b949e;font-style:italic}:root[data-theme=dark] .chroma .cm{color:#8b949e;font-style:italic}:root[data-theme=dark] .chroma .c1{color:#8b949e;font-style:italic}:root[data-theme=dark] .chroma .cs{color:#8b949e;font-weight:bold;font-style:italic}:root[data-theme=dark] .chroma .cp{color:#8b949e;font-weight:bold;font-style:italic}:root[data-theme=dark] .chroma .cpf{color:#8b949e;font-weight:bold;font-style:italic}:root[data-theme=dark] .chroma .gd{color:#ffa198;background-color:#490202}:root[data-theme=dark] .chroma .ge{font-style:italic}:root[data-theme=dark] .chroma .gr{color:#ffa198}:root[data-theme=dark] .chroma .gh{color:#79c0ff;font-weight:bold}:root[data-theme=dark] .chroma .gi{color:#56d364;background-color:#0f5323}:root[data-theme=dark] .chroma .go{color:#8b949e}:root[data-theme=dark] .chroma .gp{color:#8b949e}:root[data-theme=dark] .chroma .gs{font-weight:bold}:root[data-theme=dark] .chroma .gu{color:#79c0ff}:root[data-theme=dark] .chroma .gt{color:#ff7b72}:root[data-theme=dark] .chroma .gl{text-decoration:underline}:root[data-theme=dark] .chroma .w{color:#6e7681}:root[data-theme=dark] .chroma{background-color:var(--code-bg)}:root[data-theme=dark] .chroma .line{display:block}:root[data-theme=light] .bg{background-color:#fff}:root[data-theme=light] .chroma{background-color:#fff}:root[data-theme=light] .chroma .err{color:#f6f8fa;background-color:#82071e}:root[data-theme=light] .chroma .lnlinks{outline:none;text-decoration:none;color:inherit}:root[data-theme=light] .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}:root[data-theme=light] .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}:root[data-theme=light] .chroma .hl{background-color:#e5e5e5}:root[data-theme=light] .chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em 0 .4em;color:#7f7f7f}:root[data-theme=light] .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em 0 .4em;color:#7f7f7f}:root[data-theme=light] .chroma .line{display:flex}:root[data-theme=light] .chroma .k{color:#cf222e}:root[data-theme=light] .chroma .kc{color:#cf222e}:root[data-theme=light] .chroma .kd{color:#cf222e}:root[data-theme=light] .chroma .kn{color:#cf222e}:root[data-theme=light] .chroma .kp{color:#cf222e}:root[data-theme=light] .chroma .kr{color:#cf222e}:root[data-theme=light] .chroma .kt{color:#cf222e}:root[data-theme=light] .chroma .na{color:#1f2328}:root[data-theme=light] .chroma .nc{color:#1f2328}:root[data-theme=light] .chroma .no{color:#0550ae}:root[data-theme=light] .chroma .nd{color:#0550ae}:root[data-theme=light] .chroma .ni{color:#6639ba}:root[data-theme=light] .chroma .nl{color:#900;font-weight:bold}:root[data-theme=light] .chroma .nn{color:#24292e}:root[data-theme=light] .chroma .nx{color:#1f2328}:root[data-theme=light] .chroma .nt{color:#0550ae}:root[data-theme=light] .chroma .nb{color:#6639ba}:root[data-theme=light] .chroma .bp{color:#6a737d}:root[data-theme=light] .chroma .nv{color:#953800}:root[data-theme=light] .chroma .vc{color:#953800}:root[data-theme=light] .chroma .vg{color:#953800}:root[data-theme=light] .chroma .vi{color:#953800}:root[data-theme=light] .chroma .vm{color:#953800}:root[data-theme=light] .chroma .nf{color:#6639ba}:root[data-theme=light] .chroma .fm{color:#6639ba}:root[data-theme=light] .chroma .s{color:#0a3069}:root[data-theme=light] .chroma .sa{color:#0a3069}:root[data-theme=light] .chroma .sb{color:#0a3069}:root[data-theme=light] .chroma .sc{color:#0a3069}:root[data-theme=light] .chroma .dl{color:#0a3069}:root[data-theme=light] .chroma .sd{color:#0a3069}:root[data-theme=light] .chroma .s2{color:#0a3069}:root[data-theme=light] .chroma .se{color:#0a3069}:root[data-theme=light] .chroma .sh{color:#0a3069}:root[data-theme=light] .chroma .si{color:#0a3069}:root[data-theme=light] .chroma .sx{color:#0a3069}:root[data-theme=light] .chroma .sr{color:#0a3069}:root[data-theme=light] .chroma .s1{color:#0a3069}:root[data-theme=light] .chroma .ss{color:#032f62}:root[data-theme=light] .chroma .m{color:#0550ae}:root[data-theme=light] .chroma .mb{color:#0550ae}:root[data-theme=light] .chroma .mf{color:#0550ae}:root[data-theme=light] .chroma .mh{color:#0550ae}:root[data-theme=light] .chroma .mi{color:#0550ae}:root[data-theme=light] .chroma .il{color:#0550ae}:root[data-theme=light] .chroma .mo{color:#0550ae}:root[data-theme=light] .chroma .o{color:#0550ae}:root[data-theme=light] .chroma .ow{color:#0550ae}:root[data-theme=light] .chroma .p{color:#1f2328}:root[data-theme=light] .chroma .c{color:#57606a}:root[data-theme=light] .chroma .ch{color:#57606a}:root[data-theme=light] .chroma .cm{color:#57606a}:root[data-theme=light] .chroma .c1{color:#57606a}:root[data-theme=light] .chroma .cs{color:#57606a}:root[data-theme=light] .chroma .cp{color:#57606a}:root[data-theme=light] .chroma .cpf{color:#57606a}:root[data-theme=light] .chroma .gd{color:#82071e;background-color:#ffebe9}:root[data-theme=light] .chroma .ge{color:#1f2328}:root[data-theme=light] .chroma .gi{color:#116329;background-color:#dafbe1}:root[data-theme=light] .chroma .go{color:#1f2328}:root[data-theme=light] .chroma .gl{text-decoration:underline}:root[data-theme=light] .chroma .w{color:#fff}:root[data-theme=light] .chroma{background-color:var(--code-bg)}:root[data-theme=light] .chroma .line{display:block}@media not all and (prefers-color-scheme: light){:root:not([data-theme]) .bg{color:#e6edf3;background-color:#0d1117}:root:not([data-theme]) .chroma{color:#e6edf3;background-color:#0d1117}:root:not([data-theme]) .chroma .err{color:#f85149}:root:not([data-theme]) .chroma .lnlinks{outline:none;text-decoration:none;color:inherit}:root:not([data-theme]) .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}:root:not([data-theme]) .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}:root:not([data-theme]) .chroma .hl{background-color:#6e7681}:root:not([data-theme]) .chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em 0 .4em;color:#737679}:root:not([data-theme]) .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em 0 .4em;color:#6e7681}:root:not([data-theme]) .chroma .line{display:flex}:root:not([data-theme]) .chroma .k{color:#ff7b72}:root:not([data-theme]) .chroma .kc{color:#79c0ff}:root:not([data-theme]) .chroma .kd{color:#ff7b72}:root:not([data-theme]) .chroma .kn{color:#ff7b72}:root:not([data-theme]) .chroma .kp{color:#79c0ff}:root:not([data-theme]) .chroma .kr{color:#ff7b72}:root:not([data-theme]) .chroma .kt{color:#ff7b72}:root:not([data-theme]) .chroma .nc{color:#f0883e;font-weight:bold}:root:not([data-theme]) .chroma .no{color:#79c0ff;font-weight:bold}:root:not([data-theme]) .chroma .nd{color:#d2a8ff;font-weight:bold}:root:not([data-theme]) .chroma .ni{color:#ffa657}:root:not([data-theme]) .chroma .ne{color:#f0883e;font-weight:bold}:root:not([data-theme]) .chroma .nl{color:#79c0ff;font-weight:bold}:root:not([data-theme]) .chroma .nn{color:#ff7b72}:root:not([data-theme]) .chroma .py{color:#79c0ff}:root:not([data-theme]) .chroma .nt{color:#7ee787}:root:not([data-theme]) .chroma .nv{color:#79c0ff}:root:not([data-theme]) .chroma .vc{color:#79c0ff}:root:not([data-theme]) .chroma .vg{color:#79c0ff}:root:not([data-theme]) .chroma .vi{color:#79c0ff}:root:not([data-theme]) .chroma .vm{color:#79c0ff}:root:not([data-theme]) .chroma .nf{color:#d2a8ff;font-weight:bold}:root:not([data-theme]) .chroma .fm{color:#d2a8ff;font-weight:bold}:root:not([data-theme]) .chroma .l{color:#a5d6ff}:root:not([data-theme]) .chroma .ld{color:#79c0ff}:root:not([data-theme]) .chroma .s{color:#a5d6ff}:root:not([data-theme]) .chroma .sa{color:#79c0ff}:root:not([data-theme]) .chroma .sb{color:#a5d6ff}:root:not([data-theme]) .chroma .sc{color:#a5d6ff}:root:not([data-theme]) .chroma .dl{color:#79c0ff}:root:not([data-theme]) .chroma .sd{color:#a5d6ff}:root:not([data-theme]) .chroma .s2{color:#a5d6ff}:root:not([data-theme]) .chroma .se{color:#79c0ff}:root:not([data-theme]) .chroma .sh{color:#79c0ff}:root:not([data-theme]) .chroma .si{color:#a5d6ff}:root:not([data-theme]) .chroma .sx{color:#a5d6ff}:root:not([data-theme]) .chroma .sr{color:#79c0ff}:root:not([data-theme]) .chroma .s1{color:#a5d6ff}:root:not([data-theme]) .chroma .ss{color:#a5d6ff}:root:not([data-theme]) .chroma .m{color:#a5d6ff}:root:not([data-theme]) .chroma .mb{color:#a5d6ff}:root:not([data-theme]) .chroma .mf{color:#a5d6ff}:root:not([data-theme]) .chroma .mh{color:#a5d6ff}:root:not([data-theme]) .chroma .mi{color:#a5d6ff}:root:not([data-theme]) .chroma .il{color:#a5d6ff}:root:not([data-theme]) .chroma .mo{color:#a5d6ff}:root:not([data-theme]) .chroma .o{color:#ff7b72;font-weight:bold}:root:not([data-theme]) .chroma .ow{color:#ff7b72;font-weight:bold}:root:not([data-theme]) .chroma .c{color:#8b949e;font-style:italic}:root:not([data-theme]) .chroma .ch{color:#8b949e;font-style:italic}:root:not([data-theme]) .chroma .cm{color:#8b949e;font-style:italic}:root:not([data-theme]) .chroma .c1{color:#8b949e;font-style:italic}:root:not([data-theme]) .chroma .cs{color:#8b949e;font-weight:bold;font-style:italic}:root:not([data-theme]) .chroma .cp{color:#8b949e;font-weight:bold;font-style:italic}:root:not([data-theme]) .chroma .cpf{color:#8b949e;font-weight:bold;font-style:italic}:root:not([data-theme]) .chroma .gd{color:#ffa198;background-color:#490202}:root:not([data-theme]) .chroma .ge{font-style:italic}:root:not([data-theme]) .chroma .gr{color:#ffa198}:root:not([data-theme]) .chroma .gh{color:#79c0ff;font-weight:bold}:root:not([data-theme]) .chroma .gi{color:#56d364;background-color:#0f5323}:root:not([data-theme]) .chroma .go{color:#8b949e}:root:not([data-theme]) .chroma .gp{color:#8b949e}:root:not([data-theme]) .chroma .gs{font-weight:bold}:root:not([data-theme]) .chroma .gu{color:#79c0ff}:root:not([data-theme]) .chroma .gt{color:#ff7b72}:root:not([data-theme]) .chroma .gl{text-decoration:underline}:root:not([data-theme]) .chroma .w{color:#6e7681}:root:not([data-theme]) .chroma{background-color:var(--code-bg)}:root:not([data-theme]) .chroma .line{display:block}}@media(prefers-color-scheme: light){:root:not([data-theme]) .bg{background-color:#fff}:root:not([data-theme]) .chroma{background-color:#fff}:root:not([data-theme]) .chroma .err{color:#f6f8fa;background-color:#82071e}:root:not([data-theme]) .chroma .lnlinks{outline:none;text-decoration:none;color:inherit}:root:not([data-theme]) .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}:root:not([data-theme]) .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}:root:not([data-theme]) .chroma .hl{background-color:#e5e5e5}:root:not([data-theme]) .chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em 0 .4em;color:#7f7f7f}:root:not([data-theme]) .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em 0 .4em;color:#7f7f7f}:root:not([data-theme]) .chroma .line{display:flex}:root:not([data-theme]) .chroma .k{color:#cf222e}:root:not([data-theme]) .chroma .kc{color:#cf222e}:root:not([data-theme]) .chroma .kd{color:#cf222e}:root:not([data-theme]) .chroma .kn{color:#cf222e}:root:not([data-theme]) .chroma .kp{color:#cf222e}:root:not([data-theme]) .chroma .kr{color:#cf222e}:root:not([data-theme]) .chroma .kt{color:#cf222e}:root:not([data-theme]) .chroma .na{color:#1f2328}:root:not([data-theme]) .chroma .nc{color:#1f2328}:root:not([data-theme]) .chroma .no{color:#0550ae}:root:not([data-theme]) .chroma .nd{color:#0550ae}:root:not([data-theme]) .chroma .ni{color:#6639ba}:root:not([data-theme]) .chroma .nl{color:#900;font-weight:bold}:root:not([data-theme]) .chroma .nn{color:#24292e}:root:not([data-theme]) .chroma .nx{color:#1f2328}:root:not([data-theme]) .chroma .nt{color:#0550ae}:root:not([data-theme]) .chroma .nb{color:#6639ba}:root:not([data-theme]) .chroma .bp{color:#6a737d}:root:not([data-theme]) .chroma .nv{color:#953800}:root:not([data-theme]) .chroma .vc{color:#953800}:root:not([data-theme]) .chroma .vg{color:#953800}:root:not([data-theme]) .chroma .vi{color:#953800}:root:not([data-theme]) .chroma .vm{color:#953800}:root:not([data-theme]) .chroma .nf{color:#6639ba}:root:not([data-theme]) .chroma .fm{color:#6639ba}:root:not([data-theme]) .chroma .s{color:#0a3069}:root:not([data-theme]) .chroma .sa{color:#0a3069}:root:not([data-theme]) .chroma .sb{color:#0a3069}:root:not([data-theme]) .chroma .sc{color:#0a3069}:root:not([data-theme]) .chroma .dl{color:#0a3069}:root:not([data-theme]) .chroma .sd{color:#0a3069}:root:not([data-theme]) .chroma .s2{color:#0a3069}:root:not([data-theme]) .chroma .se{color:#0a3069}:root:not([data-theme]) .chroma .sh{color:#0a3069}:root:not([data-theme]) .chroma .si{color:#0a3069}:root:not([data-theme]) .chroma .sx{color:#0a3069}:root:not([data-theme]) .chroma .sr{color:#0a3069}:root:not([data-theme]) .chroma .s1{color:#0a3069}:root:not([data-theme]) .chroma .ss{color:#032f62}:root:not([data-theme]) .chroma .m{color:#0550ae}:root:not([data-theme]) .chroma .mb{color:#0550ae}:root:not([data-theme]) .chroma .mf{color:#0550ae}:root:not([data-theme]) .chroma .mh{color:#0550ae}:root:not([data-theme]) .chroma .mi{color:#0550ae}:root:not([data-theme]) .chroma .il{color:#0550ae}:root:not([data-theme]) .chroma .mo{color:#0550ae}:root:not([data-theme]) .chroma .o{color:#0550ae}:root:not([data-theme]) .chroma .ow{color:#0550ae}:root:not([data-theme]) .chroma .p{color:#1f2328}:root:not([data-theme]) .chroma .c{color:#57606a}:root:not([data-theme]) .chroma .ch{color:#57606a}:root:not([data-theme]) .chroma .cm{color:#57606a}:root:not([data-theme]) .chroma .c1{color:#57606a}:root:not([data-theme]) .chroma .cs{color:#57606a}:root:not([data-theme]) .chroma .cp{color:#57606a}:root:not([data-theme]) .chroma .cpf{color:#57606a}:root:not([data-theme]) .chroma .gd{color:#82071e;background-color:#ffebe9}:root:not([data-theme]) .chroma .ge{color:#1f2328}:root:not([data-theme]) .chroma .gi{color:#116329;background-color:#dafbe1}:root:not([data-theme]) .chroma .go{color:#1f2328}:root:not([data-theme]) .chroma .gl{text-decoration:underline}:root:not([data-theme]) .chroma .w{color:#fff}:root:not([data-theme]) .chroma{background-color:var(--code-bg)}:root:not([data-theme]) .chroma .line{display:block}}.highlight{margin:0 0 1.25rem}.chroma{margin:0;padding:.75rem 1rem;border:1px solid var(--line);border-radius:var(--radius);font-size:.8em;line-height:1.6;overflow-x:auto}.page pre code{padding:0;background:none;font-size:inherit}.post-image{margin:1.5rem 0}.post-image img{filter:var(--image-filter)}.post-image figcaption{margin-top:.5rem;color:var(--muted);font-size:.9375rem;font-style:italic}.image-center{text-align:center}.image-center img{margin-inline:auto}.image-left{float:left;margin:0 1.5rem 1rem 0}.image-right{float:right;margin:0 0 1rem 1.5rem}.modal-image{cursor:zoom-in}.page::after{content:"";display:table;clear:both}.modal{display:none;position:fixed;z-index:1000;inset:0;overflow:auto;background-color:rgba(0,0,0,.9)}.modal .modal-content{position:absolute;top:50%;left:50%;width:80%;transform:translate(-50%, -50%)}.modal .modal-caption{width:80%;max-width:700px;margin:auto;padding:10px 0;color:#ccc;text-align:center}.modal .modal-close{position:absolute;top:15px;right:35px;color:#f1f1f1;font-size:40px;font-weight:bold;cursor:pointer;transition:color .3s}.modal .modal-close:hover,.modal .modal-close:focus{color:#bbb}.page>.modal{max-width:none;margin:0}.go-playground{margin:1.5rem 0;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius)}.go-playground__header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;border-bottom:1px solid var(--line);font-size:.75rem}.go-playground__button{padding:.3rem 1rem;border:none;border-radius:4px;background:var(--go-blue);color:#fff;font:inherit;font-weight:600;cursor:pointer;transition:opacity .2s}.go-playground__button:hover{opacity:.9}.go-playground__editor{display:block;width:100%;height:200px;padding:1rem;border:none;outline:none;background:var(--code-bg);color:inherit;font-family:monospace;resize:vertical}.go-playground__output{min-height:2.5rem;padding:.6rem 1rem;border-top:1px solid var(--line);font-size:.8125rem;white-space:pre-wrap}.go-playground__output--error{color:var(--error)}.page :is(h1,h2,h3,h4,h5,h6){scroll-margin-top:2rem}.heading-link{display:none;margin-left:.35em;color:var(--accent);vertical-align:middle}.heading-link svg{display:inline}.heading-link:focus-visible{display:inline}.heading-link.is-copied{display:inline}.heading-link.is-copied .heading-link__icon{display:none}.heading-link.is-copied::after{content:"copied!";font-size:.75rem;font-weight:400}:is(h1,h2,h3,h4,h5,h6):hover .heading-link{display:inline}.mermaid{margin:0 0 1.25rem;filter:invert(var(--diagram-invert))}html{scroll-padding-top:calc(var(--nav-height) + 1rem)}.nav{position:sticky;top:0;z-index:10;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg) 90%, transparent);backdrop-filter:blur(6px)}.nav__inner{display:flex;align-items:stretch;height:var(--nav-height);padding-inline:.5rem}.nav__brand{display:flex;align-items:center;gap:.5rem;padding:0 .75rem;color:inherit;text-decoration:none}.nav__logo{width:1.125rem;height:auto;filter:invert(var(--logo-invert))}.nav__wordmark{font-family:var(--font-display);font-size:1.125rem;letter-spacing:.01em;line-height:1}.nav__links{display:flex;margin:0;padding:0;list-style:none}.nav__link{display:flex;align-items:center;height:100%;padding:0 .75rem;border-block:3px solid rgba(0,0,0,0);color:inherit;font-size:.9375rem;text-decoration:none}.nav__link:hover{border-bottom-color:var(--line)}.nav__link.is-active{border-bottom-color:var(--ink)}.nav .theme-toggle{position:static;height:100%;margin-left:auto;border:0;border-radius:0}.signup{margin-top:2.5rem;padding-top:2.5rem;border-top:1px solid var(--line)}.signup--embed{margin:2.5rem 0;padding:1.5rem;border:1px solid var(--line);border-radius:var(--radius)}.signup__label{margin:0 0 .85rem;color:var(--muted);font-size:.9375rem;text-align:center}.signup__label>p{margin:0}.signup__label>p+p{margin-top:.6rem}.signup__row{display:flex;gap:.6rem}.signup__input{flex:1;min-width:0;padding:.7rem .9rem;border:1px solid var(--line);border-radius:var(--radius);background:rgba(0,0,0,0);color:var(--ink);font:inherit}.signup__input::placeholder{color:var(--muted)}.signup__input:hover{border-color:var(--ink)}.signup__submit{width:100%;margin-top:.6rem}@media(width <= 30rem){.signup__row{flex-direction:column}}.signup__hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}.theme-toggle{position:fixed;top:1.25rem;right:1.25rem;z-index:10;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;padding:0;border:1px solid var(--line);border-radius:var(--radius);background:rgba(0,0,0,0);color:inherit;cursor:pointer;transition:border-color .15s ease,color .15s ease}.theme-toggle[hidden]{display:none}.theme-toggle:hover{border-color:var(--ink)}.theme-toggle svg{width:1.125rem;height:1.125rem}.theme-toggle__sun{display:var(--icon-sun)}.theme-toggle__moon{display:var(--icon-moon)}