@font-face{font-family:__JetBrains_Mono_3c557b;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__JetBrains_Mono_3c557b;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__JetBrains_Mono_3c557b;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__JetBrains_Mono_3c557b;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__JetBrains_Mono_3c557b;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__JetBrains_Mono_3c557b;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-s.p.woff2) format("woff2");unicode-range:u+00??,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:__JetBrains_Mono_Fallback_3c557b;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_3c557b{font-family:__JetBrains_Mono_3c557b,__JetBrains_Mono_Fallback_3c557b;font-style:normal}.__variable_3c557b{--font-jetbrains:"__JetBrains_Mono_3c557b","__JetBrains_Mono_Fallback_3c557b"}*{margin:0;padding:0;box-sizing:border-box}body,html{width:100%;height:100%;background:#000;overflow:hidden;font-family:var(--font-jetbrains),monospace}@supports (padding-top:max(0px)){body{padding-left:env(safe-area-inset-left,0);padding-right:env(safe-area-inset-right,0)}}.scroll-container::-webkit-scrollbar{width:4px}.scroll-container::-webkit-scrollbar-track{background:transparent}.scroll-container::-webkit-scrollbar-thumb{background:hsla(0,0%,50%,.3);border-radius:2px}.scroll-container::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,50%,.5)}.scroll-container{scrollbar-width:thin;scrollbar-color:hsla(0,0%,50%,.3) transparent}.sidebar-desktop{display:none}.bottomnav-mobile{display:block}.main-content{padding-bottom:56px}@media (min-width:768px){.sidebar-desktop{display:block}.bottomnav-mobile{display:none}.main-content{padding-bottom:0;left:72px!important;right:0!important}}@media (max-width:600px){.topnav-inner{padding:0 16px!important}.topnav-links{gap:18px!important;font-size:10px!important;letter-spacing:1.5px!important}}@media (max-width:360px){.topnav-logo-text{display:none}}@media (max-width:768px){.topnav-links{display:none!important}.topnav-burger{display:flex!important}}@media (min-width:769px){.topnav-menu-overlay{display:none!important}}@media (prefers-reduced-motion:reduce){.topnav-menu-overlay,.topnav-menu-overlay a{transition:none!important}}@media (max-width:480px){.article-title{font-size:22px!important;letter-spacing:1px!important}.article-body{font-size:14px!important}.article-body h2{font-size:17px}.article-body h3{font-size:15px}.article-nav-row{flex-direction:column!important;gap:20px!important}}.site-footer{padding:56px 0 72px}@media (max-width:700px){.site-footer{padding:44px 0 56px}}.ecosystem-footer a{text-decoration:none}.ecosystem-footer a:focus-visible{outline:2px solid var(--foot-ink);outline-offset:4px}.ecosystem-footer{container-type:inline-size}.ecosystem-footer .footer-main{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,.65fr);grid-gap:44px;gap:44px}.ecosystem-footer .footer-main>*{min-width:0}.ecosystem-footer .brand-name{display:grid;grid-template-columns:38px minmax(0,1fr);grid-column-gap:12px;column-gap:12px;align-items:center;font-size:16px;letter-spacing:1.6px;font-weight:500;margin-bottom:10px;color:var(--foot-ink)}.ecosystem-footer .brand-description{font-size:12px;line-height:1.8;color:var(--foot-muted);margin:0;max-width:250px}.ecosystem-footer .footer-title{font-size:10px;letter-spacing:1.5px;color:var(--foot-muted);margin:0 0 16px;font-weight:500}.ecosystem-footer .products{display:grid;grid-gap:0;gap:0}.ecosystem-footer .product{color:var(--foot-ink);display:flex;justify-content:space-between;gap:16px;align-items:center;padding:10px 0;border-bottom:1px solid var(--foot-line);font-size:12px;letter-spacing:.7px}.ecosystem-footer .product:first-child{padding-top:0}.ecosystem-footer .product:last-child{border-bottom:0}.ecosystem-footer .product .tag{font-size:9px;letter-spacing:.8px;color:var(--foot-muted);flex:none}.ecosystem-footer .product:hover .product-name{text-decoration:underline;text-underline-offset:5px}.ecosystem-footer .product-name{display:grid;grid-template-columns:28px minmax(0,1fr);grid-column-gap:12px;column-gap:12px;align-items:center;min-width:0;overflow:hidden;text-overflow:ellipsis}.ecosystem-footer .brand-name .brand-mark,.ecosystem-footer .product-name .brand-mark{justify-self:start;display:inline-block;flex-shrink:0;vertical-align:middle}.ecosystem-footer .brand-name .brand-mark{width:24px;height:24px}.ecosystem-footer .brand-name .brand-hashd{width:32.3px;height:20.4px}.ecosystem-footer .product-name .brand-mark{width:18px;height:18px}.ecosystem-footer .product-name .brand-hashd{width:23.8px;height:15.08px}.ecosystem-footer .resource-list{display:grid;grid-gap:0;gap:0;align-items:start;justify-items:start}.ecosystem-footer .resource-list a{font-size:12px;padding:10px 0;border-bottom:1px solid transparent;display:flex;align-items:center;color:var(--foot-ink)}.ecosystem-footer .resource-list a:before{content:"";display:block;width:0;height:18px}.ecosystem-footer .resource-list a:first-child{padding-top:0}.ecosystem-footer .resource-list a:last-child{border-bottom:0}.ecosystem-footer .resource-list a:hover{text-decoration:underline;text-underline-offset:4px}.ecosystem-footer .footer-bottom{margin-top:32px;border-top:1px solid var(--foot-line);padding-top:18px;display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap;font-size:10px;line-height:1.7;color:var(--foot-muted);letter-spacing:.7px}.ecosystem-footer .bottom-links{display:flex;gap:20px;flex-wrap:wrap;align-items:center}.ecosystem-footer .bottom-links a{color:var(--foot-muted);font-size:10px;min-height:30px;display:inline-flex;align-items:center;transition:color .18s}.ecosystem-footer .bottom-links a:hover{color:var(--foot-ink);text-decoration:underline}@media (max-width:800px){.ecosystem-footer .footer-main{grid-template-columns:1fr 1fr;gap:32px}.ecosystem-footer .footer-brand{grid-column:1/-1}.ecosystem-footer .brand-description{max-width:none}}@media (max-width:480px){.ecosystem-footer .footer-main{gap:28px 20px;grid-template-columns:1fr}.ecosystem-footer .footer-brand{grid-column:auto}.ecosystem-footer .resource-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px 20px}.ecosystem-footer .resource-list a{padding:0;border-bottom:0;min-height:30px}.ecosystem-footer .footer-bottom{align-items:flex-start;flex-direction:column}}.article-nav-card img{filter:grayscale(100%);transition:filter .3s ease}.article-nav-card:hover img{filter:grayscale(0)}.article-nav-card .article-nav-card-title{transition:opacity .2s}.article-nav-card:hover .article-nav-card-title{opacity:1!important}.article-body p{margin-bottom:1.6em}.article-body h2{font-family:var(--font-jetbrains),monospace;font-size:20px;font-weight:400;letter-spacing:2px;margin:2em 0 1em}.article-body h3,.article-body h4{font-family:var(--font-jetbrains),monospace;font-size:17px;font-weight:400;letter-spacing:2px;margin:1.8em 0 .8em}.article-body img{max-width:100%;height:auto;margin:1.5em 0;display:block}.article-body a[style*=position] img,.article-body div[style*=flex] img,.article-body div[style*=grid] img{height:100%;margin:0;object-fit:cover}.article-body figure{margin:2.8em 0;padding:0}.article-body figure img,.article-body figure video{margin:0;background:linear-gradient(110deg,hsla(0,0%,50%,.08) 8%,hsla(0,0%,50%,.18) 18%,hsla(0,0%,50%,.08) 33%);background-size:200% 100%;animation:shimmer 1.5s linear infinite;min-height:120px;height:auto;border-radius:4px}.article-body figure img.loaded,.article-body figure video.loaded{background:none;animation:none;min-height:auto}@keyframes shimmer{to{background-position:-200% 0}}.article-body figcaption{text-align:left;margin-top:8px;margin-bottom:0;font-size:12px;opacity:.6}.article-body blockquote{border-left:2px solid hsla(0,0%,50%,.3);padding-left:16px;margin:1.5em 0;font-style:italic;opacity:.8}.article-body blockquote.twitter-tweet{border-left:none;padding-left:0;font-style:normal;opacity:1;margin:1.5em 0}.article-body{-moz-user-select:text;user-select:text;-webkit-user-select:text;cursor:text}.article-body ::selection{background:hsla(0,0%,50%,.35)}.article-body a{color:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.article-body b,.article-body strong{font-weight:600}.article-body{counter-reset:iq}.article-body .interview-q{font-weight:600;font-size:1.06em;line-height:1.5;margin:3.2em 0 1.3em;padding-top:2.6em;border-top:1px solid hsla(0,0%,50%,.28)}.article-body .interview-q:before{counter-increment:iq;content:"Q" counter(iq,decimal-leading-zero);display:block;font-family:var(--font-jetbrains),monospace;font-size:10px;font-weight:400;letter-spacing:3px;opacity:.45;margin-bottom:12px}.article-body[data-theme=dark] .interview-q{color:#fff}.article-body[data-theme=light] .interview-q{color:#000}.article-body h2.postscript{margin:3.2em 0 1.3em;padding-top:2.6em}.article-body details.faq,.article-body h2.postscript{border-top:1px solid hsla(0,0%,50%,.28)}.article-body details.faq:last-of-type{border-bottom:1px solid hsla(0,0%,50%,.28)}.article-body details.faq>summary{cursor:pointer;list-style:none;display:flex;align-items:baseline;justify-content:space-between;gap:18px;padding:18px 2px;font-weight:600;font-size:1.02em;line-height:1.5;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:opacity .15s ease}.article-body details.faq>summary:hover{opacity:.7}.article-body details.faq>summary::-webkit-details-marker{display:none}.article-body details.faq>summary::marker{content:""}.article-body details.faq>summary:after{content:"+";font-family:var(--font-jetbrains),monospace;font-size:15px;font-weight:400;opacity:.45;flex:none;transition:transform .2s ease}.article-body details.faq[open]>summary:after{transform:rotate(45deg)}.article-body details.faq>p,.article-body details.faq>ul{margin:0 0 20px;padding-right:30px}.article-body details.faq>ul{padding-left:20px}.article-body details.faq>ul li{margin-bottom:8px}.article-body[data-theme=dark] details.faq>summary{color:#fff}.article-body[data-theme=light] details.faq>summary{color:#000}.article-body a.linkout{transition:opacity .2s ease}.article-body a.linkout:hover{opacity:.7}.tiptap p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:hsla(0,0%,50%,.4);pointer-events:none;height:0}.tiptap:focus{outline:none}.tiptap .ProseMirror-selectednode{outline:2px solid hsla(0,0%,50%,.3)}.article-body ol,.article-body ul{padding-left:1.5em;margin-bottom:1.6em}.article-body li{margin-bottom:.5em}.article-body hr{border:none;border-top:1px solid hsla(0,0%,50%,.4);width:64px;margin:2.5em auto}.ecosystem-footer .gh-logo{display:inline-block;flex-shrink:0;vertical-align:middle}@container (max-width:820px){.ecosystem-footer .footer-main{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px}.ecosystem-footer .brand{grid-column:1/-1}.ecosystem-footer .brand-description{max-width:none}}@container (max-width:470px){.ecosystem-footer .footer-main{grid-template-columns:minmax(0,1fr);gap:28px}.ecosystem-footer .brand{grid-column:auto}.ecosystem-footer .resource-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px 20px}.ecosystem-footer .resource-list a{padding:0;border-bottom:0;min-height:30px}.ecosystem-footer .resource-list a:before{display:none}.ecosystem-footer .footer-bottom{flex-direction:column;align-items:flex-start}}