.chroma{color:#f8f8f2;background-color:#282a36}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0;width:auto;overflow:auto;display:block}.chroma .hl{display:block;width:100%;background-color:#ffc}.chroma .lnt{margin-right:.4em;padding:0 .4em 0 .4em;color:#7f7f7f}.chroma .ln{margin-right:.4em;padding:0 .4em 0 .4em;color:#7f7f7f}.chroma .k{color:#ff79c6}.chroma .kc{color:#ff79c6}.chroma .kd{color:#8be9fd;font-style:italic}.chroma .kn{color:#ff79c6}.chroma .kp{color:#ff79c6}.chroma .kr{color:#ff79c6}.chroma .kt{color:#8be9fd}.chroma .na{color:#50fa7b}.chroma .nb{color:#8be9fd;font-style:italic}.chroma .nc{color:#50fa7b}.chroma .nf{color:#50fa7b}.chroma .nl{color:#8be9fd;font-style:italic}.chroma .nt{color:#ff79c6}.chroma .nv{color:#8be9fd;font-style:italic}.chroma .vc{color:#8be9fd;font-style:italic}.chroma .vg{color:#8be9fd;font-style:italic}.chroma .vi{color:#8be9fd;font-style:italic}.chroma .s{color:#f1fa8c}.chroma .sa{color:#f1fa8c}.chroma .sb{color:#f1fa8c}.chroma .sc{color:#f1fa8c}.chroma .dl{color:#f1fa8c}.chroma .sd{color:#f1fa8c}.chroma .s2{color:#f1fa8c}.chroma .se{color:#f1fa8c}.chroma .sh{color:#f1fa8c}.chroma .si{color:#f1fa8c}.chroma .sx{color:#f1fa8c}.chroma .sr{color:#f1fa8c}.chroma .s1{color:#f1fa8c}.chroma .ss{color:#f1fa8c}.chroma .m{color:#bd93f9}.chroma .mb{color:#bd93f9}.chroma .mf{color:#bd93f9}.chroma .mh{color:#bd93f9}.chroma .mi{color:#bd93f9}.chroma .il{color:#bd93f9}.chroma .mo{color:#bd93f9}.chroma .o{color:#ff79c6}.chroma .ow{color:#ff79c6}.chroma .c{color:#6272a4}.chroma .ch{color:#6272a4}.chroma .cm{color:#6272a4}.chroma .c1{color:#6272a4}.chroma .cs{color:#6272a4}.chroma .cp{color:#ff79c6}.chroma .cpf{color:#ff79c6}.chroma .gd{color:#f55}.chroma .ge{text-decoration:underline}.chroma .gh{font-weight:bold}.chroma .gi{color:#50fa7b;font-weight:bold}.chroma .go{color:#44475a}.chroma .gu{font-weight:bold}.chroma .gl{text-decoration:underline}article{margin-bottom:3rem}article h2,article h3{padding-top:1rem;}article p{line-height:1.5}article .highlight{position:relative}article ul{list-style-type:disc}article pre{border:1px solid #2f363d;position:relative;border-radius:4px;display:block;overflow:auto;font-size:.9rem;line-height:1.5;position:relative}article pre.language-js:before{content:"JavaScript code";padding:.2rem .5rem;background:#444d56;border-radius:0 0 8px 0;font-weight:bold;position:sticky;left:0}article pre.language-ts:before{content:"TypeScript code";padding:.2rem .5rem;background:#444d56;border-radius:0 0 8px 0;font-weight:bold;position:sticky;left:0}article pre.language-rust:before{content:"Rust code";padding:.2rem .5rem;background:#444d56;border-radius:0 0 8px 0;font-weight:bold;position:sticky;left:0}article pre.language-html:before{content:"HTML";padding:.2rem .5rem;background:#444d56;border-radius:0 0 8px 0;font-weight:bold;position:sticky;left:0}article pre.language-css:before{content:"CSS";padding:.2rem .5rem;background:#444d56;border-radius:0 0 8px 0;font-weight:bold;position:sticky;left:0}article pre :before{padding:.2rem .5rem;background:#444d56;border-radius:0 0 8px 0;font-weight:bold}article pre code{display:block;min-width:max-content;overflow:hidden;tab-size:2;padding:.7em 1.1em}article .copy-button{margin-left:1rem;border:0;border-radius:4px;padding:1px;font-size:.7em;line-height:1.8;color:#fff;background-color:rgba(114,114,114,.8);opacity:.6;min-width:55px;text-align:center;cursor:pointer}article .copy-button:hover{background-color:#666}article .post-subheader{display:flex;flex-wrap:wrap;column-gap:20px;align-items:center}article .post-metadata{white-space:nowrap}article .tags{display:inline-block;font-size:.8rem;line-height:normal;opacity:.6}article .tags .tag{display:inline-block;white-space:nowrap;padding:5px}article p a{text-decoration:underline}article :not(pre)>code{background-color:#242424;padding:.2em .4em;margin:0;font-size:85%;border-radius:6px}article table{border-spacing:0;border-collapse:collapse;margin-top:0;display:block;width:100%;width:max-content;max-width:100%;overflow:auto}article table th{font-weight:600}article table tr{background-color:#0d1117;border-top:1px solid var(--color-border-muted)}article table tr:nth-child(2n){background-color:#161b22}article table th,article table td{padding:6px 13px;border:1px solid #30363d}article img{width:100%}.suggested-post-links{display:flex;flex-direction:column;padding:1rem;background-color:#222831}.suggested-post-links h3{margin-top:0;text-align:center}.suggested-post-links a{padding:1rem 0}.post-contents{position:relative}.post-contents .sidenav{font-size:13px;margin-top:1rem;background-color:#222831}@media (min-width: 1200px){.post-contents .sidenav{background-color:inherit;position:absolute;left:100%;top:0;height:100%;width:calc((100vw - 720px)/2 - 1rem);}.post-contents .sidenav .toc-wrapper{margin-left:3rem;position:sticky;border-left:1px solid #aaa}.post-contents .sidenav .toc-wrapper li a{transition:font-weight,color .2s ease-in-out;padding-left:30px}.post-contents .sidenav .toc-wrapper li a:not(.active){color:#aaa}.post-contents .sidenav .toc-wrapper li a:hover{font-weight:400}}.post-contents .sidenav .toc-wrapper{padding-top:2rem;padding-bottom:2rem;top:3rem;list-style:none}.post-contents .sidenav .toc-wrapper .toc-title,.post-contents .sidenav .toc-wrapper a{padding-top:.5rem;padding-bottom:.5rem;padding-left:.5rem}.post-contents .sidenav .toc-wrapper .toc-title{font-weight:bold}.post-contents .sidenav .toc-wrapper ul{list-style:none;margin:0;padding:0}.post-contents .sidenav .toc-wrapper li{width:100%}.post-contents .sidenav .toc-wrapper li a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.footnote-definition{display:inline-block;font-size:.8rem;line-height:normal;opacity:.6;display:flex;column-gap:10px;align-items:center}.footnote-definition>sup{top:0}.footnote-definition>p{margin:0}.demo{background-color:#2b2c2f;padding:20px;border-radius:8px}.post-header h1{margin-bottom:0}.post-header hr{box-sizing:content-box;height:0;overflow:visible;opacity:.2;border-width:0 0 5px;border-bottom-width:5px;border-style:dashed;background:0 0;width:50%;margin:1.8em auto;width:40%;margin-top:.5rem;margin-bottom:.8rem;margin-left:0;border-style:solid;border-bottom-width:4px}.progress-bar{position:fixed;left:0;top:0;height:3px;background:#5ca3ff;pointer-events:none;z-index:100;transition:width .8s ease-in-out}.feedback{font-size:.8rem;line-height:normal;opacity:.6}