@font-face{font-display:swap;font-family:Agave Nerd Font;font-style:normal;font-weight:400;src:url(/fonts/agave-nerd/AgaveNerdFontMono-Regular.woff2) format("woff2")}@font-face{font-display:swap;font-family:Agave Nerd Font;font-style:normal;font-weight:700;src:url(/fonts/agave-nerd/AgaveNerdFontMono-Bold.woff2) format("woff2")}@font-face{font-family:webflow-icons;font-style:normal;font-weight:400;src:url(data:application/x-font-ttf;charset=utf-8;base64,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) format("truetype")}html{height:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-family:sans-serif}body{background-color:#fff;color:#333;font-family:Arial,sans-serif;font-size:14px;line-height:20px;margin:0;min-height:100%}a{background-color:transparent;color:#428dff;text-decoration:none;transition:color .15s ease}a:hover{color:#33e1ff}img{border:0;display:inline-block;max-width:100%;vertical-align:middle}h1{font-size:clamp(2rem,5.5vw + .25rem,3.5rem);letter-spacing:-.02em;line-height:1.15;margin-top:20px}h1,h2{font-weight:700}h2{font-size:clamp(1.5rem,2.8vw + .5rem,2.25rem);letter-spacing:-.01em;line-height:1.2;margin-top:18px}h3,h4{font-weight:600}ul{padding-left:40px}:root{--border:hsla(0,0%,100%,.12);--color-primary:#428dff;--color-primary-rgb:66,141,255;--color-secondary:#33e1ff;--color-secondary-rgb:51,225,255;--text-primary:#fff;--text-secondary:#d0d0d0;--text-muted:#a0a0a0;--bg-primary:#161616;--bg-secondary:#1f1f1f;--bg-tertiary:#232323;--border-color:#353535}@font-face{font-display:swap;font-family:Agave Nerd Font;font-style:normal;font-weight:400;src:url(/fonts/agave-nerd/AgaveNerdFontMono-Regular.woff2) format("woff2")}@font-face{font-display:swap;font-family:Agave Nerd Font;font-style:normal;font-weight:700;src:url(/fonts/agave-nerd/AgaveNerdFontMono-Bold.woff2) format("woff2")}html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-family:sans-serif}body{margin:0}aside,main,nav,section{display:block}a{background-color:transparent;color:var(--color-primary);text-decoration:none;transition:color .15s ease}a:hover{color:var(--color-secondary)}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}img{border:0}@font-face{font-family:webflow-icons;font-style:normal;font-weight:400;src:url(data:application/x-font-ttf;charset=utf-8;base64,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) format("truetype")}*{box-sizing:border-box}html{height:100%}:root{--border:hsla(0,0%,100%,.12)}img{vertical-align:middle}.w-inline-block,img{display:inline-block;max-width:100%}.w-button{background-color:#3898ec;border:0;border-radius:0;color:#fff;cursor:pointer;display:inline-block;line-height:inherit;padding:9px 15px;text-decoration:none}h1,h2,h3,h4{margin-bottom:10px}h1{font-size:clamp(2rem,5.5vw + .25rem,3.5rem);line-height:1.15;margin-top:20px}h2{font-size:clamp(1.5rem,2.8vw + .5rem,2.25rem);font-weight:700;letter-spacing:-.01em;line-height:1.2;margin-top:18px}h3{font-size:clamp(1.25rem,1.6vw + .6rem,2rem);line-height:1.25;margin-top:16px}h4{font-size:clamp(1.25rem,1vw + .8rem,1.5rem);line-height:1.35;margin-top:12px}p,ul{margin-bottom:10px;margin-top:0}ul{padding-left:30px}#blog-content .adsbygoogle,#download-content .adsbygoogle,.content-container>.adsbygoogle{display:block!important;margin:1.25rem auto;max-width:100%;padding:.5rem 0;text-align:center}.ad-placeholder{background:var(--bg-tertiary);border:2px dashed var(--border);border-radius:8px;color:var(--text-muted);display:block;font-family:Agave Nerd Font,ui-monospace,monospace;font-size:.95rem;margin:1rem auto;padding:.75rem 1rem;text-align:center;width:100%}@media screen and (max-width:640px){.ad-placeholder{font-size:.9rem;margin:.5rem auto;padding:.5rem .75rem}#blog-content .adsbygoogle,#download-content .adsbygoogle,.content-container>.adsbygoogle{margin:.75rem auto;padding:.25rem 0}}@media screen and (min-width:641px) and (max-width:1024px){#blog-content .adsbygoogle,#download-content .adsbygoogle,.content-container>.adsbygoogle{margin:1rem auto;padding:.4rem 0}}.w-richtext:after,.w-richtext:before{content:" ";display:table;grid-area:1/1/2/2}.w-richtext:after{clear:both}.w-richtext ul{overflow:hidden}.w-nav{background:#ddd;position:relative;z-index:1000}.w-nav:after,.w-nav:before{content:" ";display:table;grid-area:1/1/2/2}.w-nav:after{clear:both}.w-nav-brand{color:#333;float:left;position:relative;text-decoration:none}.w-nav-menu{float:right;position:relative}.sidebar .w-nav-menu{display:flex;flex-direction:column;gap:8px}.w-nav-menu.is-open{display:block!important;height:100vh;height:100dvh;left:0;padding-top:92px;position:fixed;right:0;top:0;z-index:1200}.w-nav-button{cursor:pointer;float:right;-webkit-tap-highlight-color:rgba(0,0,0,0);-tap-highlight-color:transparent;display:none;font-size:24px;padding:18px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.w-nav-button:focus{outline:0}@media screen and (max-width:1024px){.w-nav[data-collapse=medium] .w-nav-menu{display:none}.w-nav[data-collapse=medium] .w-nav-menu.is-visible{display:block;height:100vh;height:100dvh;left:0;opacity:0;padding-top:92px;position:fixed;right:0;top:0;transform:translateY(-50%);transition:transform .25s ease,opacity .25s ease;will-change:transform,opacity;z-index:1200}.w-nav[data-collapse=medium] .w-nav-menu.is-visible.is-open{opacity:1;transform:translateY(0)}.w-nav[data-collapse=medium] .w-nav-button{display:block}}@media screen and (max-width:767px){.w-nav-brand{padding-left:10px}}body{background-color:var(--bg-primary);color:var(--text-secondary);font-family:Albert Sans,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:clamp(16px,2.5vw,18px);font-weight:400;line-height:1.7}h1{color:#fff;font-weight:700;letter-spacing:-.02em;margin-bottom:clamp(16px,4vw,24px);margin-top:0}h3{margin-bottom:clamp(10px,2.5vw,16px)}h3,h4{color:#fff;font-weight:600;margin-top:0}h4{margin-bottom:clamp(8px,2vw,12px)}p{color:#d0d0d0;font-weight:400;margin-bottom:clamp(12px,3vw,18px)}.prose,p{font-size:clamp(1rem,2.5vw,1.125rem);line-height:1.75}.prose{color:#e0e0e0}.prose h1{color:#fff;font-size:clamp(1.75rem,5vw,2.25rem);font-weight:700;line-height:1.2;margin:clamp(1rem,3vw,1.5rem) 0 clamp(.5rem,2vw,.75rem)}.prose h2{font-size:clamp(1.5rem,4vw,1.875rem);letter-spacing:-.01em;margin:clamp(1rem,3vw,1.25rem) 0 clamp(.5rem,2vw,.75rem)}.prose h2,.prose h3{color:#fff;font-weight:600}.prose h3{font-size:clamp(1.25rem,3vw,1.5rem);margin:clamp(.75rem,2.5vw,1rem) 0 clamp(.4rem,1.5vw,.6rem)}.prose p{font-weight:400;margin:clamp(.7rem,2vw,1rem) 0}.prose ol,.prose p,.prose ul{color:#d0d0d0;font-size:clamp(1rem,2.5vw,1.125rem);line-height:1.75}.prose ol,.prose ul{margin:clamp(.6rem,2vw,1rem) 0 clamp(.6rem,2vw,1rem) 1.25rem}.prose table{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-collapse:collapse;border-radius:12px;margin:clamp(.75rem,2.5vw,1.25rem) 0;overflow:hidden;width:100%}.prose table td,.prose table th{border-right:1px solid #2f2f2f;border-top:1px solid #2f2f2f;color:#d6d6d6;padding:16px 18px;text-align:left}.prose table th{background-color:var(--bg-tertiary);color:var(--text-primary);font-weight:600}.prose table tr:first-child td,.prose table tr:first-child th{border-top:none}.prose table tr td:last-child,.prose table tr th:last-child{border-right:none}.prose table tr:nth-child(2n) td{background-color:var(--bg-primary)}.prose table td:first-child,.prose table th:first-child{color:#fff;font-weight:600;width:34%}.prose table a{color:var(--color-primary)}.prose table a:hover{color:var(--color-secondary)}.prose img{display:block;height:auto;margin:1rem auto;max-width:100%}.prose .prose-figure,.prose figure{align-items:center;display:flex;flex-direction:column;gap:.5rem;margin:clamp(1rem,3vw,1.5rem) 0}.prose .prose-figure img,.prose figure img{margin:0;max-width:100%;width:100%}.prose figcaption{color:#a0a0a0;font-size:clamp(.75rem,1.4vw,.85rem);font-style:italic;line-height:1.35;padding:.5rem;text-align:center;word-wrap:break-word;background:#ffffff04;border:1px solid hsla(0,0%,100%,.04);border-radius:6px;opacity:.9;overflow-wrap:anywhere;text-wrap:balance;transition:all .2s ease}.prose .prose-figure:hover figcaption,.prose figure:hover figcaption{background:#ffffff08;border-color:#ffffff14;opacity:1}.prose blockquote{background:#ffffff0d;border-left:3px solid var(--border);color:#d5d5d5;font-size:clamp(1rem,2.5vw,1.125rem);font-style:italic;line-height:1.7;margin:clamp(1rem,3vw,1.5rem) 0;padding:clamp(.75rem,2vw,1rem) clamp(1rem,3vw,1.25rem)}.prose a{color:#6bb6ff;text-decoration:none;transition:color .15s ease}.prose a:hover{color:#8ab4ff}.prose code{background:transparent;border-radius:0;font-family:Agave Nerd Font,ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:.95em;padding:0}.prose h1 code,.prose h2 code,.prose h3 code,.prose h4 code,.prose h5 code,.prose h6 code,.prose li code,.prose p code{background:#ffffff0f;border-radius:6px;font-size:.9em;padding:.15rem .35rem}.prose pre code{background:transparent;border-radius:0;padding:0}.prose pre{background:#0d1117;border:1px solid #30363d;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;color:#e6edf3;font-size:1rem;line-height:1.6;margin:1.5rem 0;padding:1.5rem}.prose pre:hover{border-color:#58a6ff;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f,0 0 0 1px #58a6ff1a}.prose pre:before{border-bottom:1px solid #30363d;border-radius:12px 0;border-right:1px solid #30363d;content:attr(data-language);font-size:.75rem;font-weight:500;left:0;letter-spacing:.05em;max-width:calc(100% - 4rem);overflow:hidden;padding:.5rem 1rem;text-overflow:ellipsis;text-transform:uppercase;top:0;white-space:nowrap;z-index:5}.code-copy-btn,.prose pre:before{background:#21262d;color:#8b949e;position:absolute}.code-copy-btn{align-items:center;border:1px solid #30363d;border-radius:6px;cursor:pointer;display:flex;flex-shrink:0;height:32px;justify-content:center;min-width:32px;padding:.5rem;right:.75rem;top:.75rem;transition:all .2s ease;width:32px;z-index:10}.code-copy-btn:hover{background:#30363d;border-color:#58a6ff;color:#e6edf3}.code-copy-btn:active{transform:scale(.95)}.code-copy-btn svg{fill:none;height:16px;stroke:currentColor;stroke-width:1.5;width:16px}.code-copy-btn.copied{background:#238636;border-color:#238636;color:#fff}.code-copy-btn.copied:after{background:#21262d;border:1px solid #30363d;border-radius:4px;box-shadow:0 4px 6px -1px #0000001a;color:#e6edf3;content:"Copied!";font-size:.75rem;padding:.25rem .5rem;position:absolute;right:0;top:-2rem;white-space:nowrap}.prose pre:has(.code-copy-btn){padding-top:3rem}.prose pre:has(.code-copy-btn):before{box-sizing:border-box;left:0;max-width:calc(100% - 4rem);padding-right:.5rem}.prose pre::-webkit-scrollbar{height:8px;width:8px}.prose pre::-webkit-scrollbar-track{background:#21262d;border-radius:4px}.prose pre::-webkit-scrollbar-thumb{background:#6e7681;border-radius:4px}.prose pre::-webkit-scrollbar-thumb:hover{background:#8b949e}.content{display:flex;min-height:100vh;width:100%}.sidebar{backface-visibility:hidden;-webkit-backface-visibility:hidden;background-color:#1c1c1c;border-right:1px solid #353535;contain:layout style;flex-shrink:0;height:100vh;overflow-x:hidden;overflow-y:auto;padding:32px;position:sticky;top:0;transform:translateZ(0);-webkit-transform:translateZ(0);transition:all .4s cubic-bezier(.25,.46,.45,.94);width:280px;will-change:width,padding}.sidebar.sidebar-collapsed{padding:20px 8px;width:80px}.nav-content{height:100%;width:100%;grid-column-gap:36px;grid-row-gap:36px;display:flex;flex-direction:column}.label-white{color:#fff;font-size:clamp(16px,2.5vw,18px);font-weight:600;line-height:1.5;margin-bottom:2px}.label-gray{color:silver;font-size:clamp(14px,2vw,16px);font-weight:400;line-height:1.4}.toast-container{bottom:20px;display:flex;flex-direction:column;gap:8px;left:50%;pointer-events:none;position:fixed;transform:translate(-50%);z-index:2000}.toast{background:#21262d;border:1px solid var(--color-primary);border-radius:10px;box-shadow:0 10px 15px -3px #0000004d,0 4px 6px -2px #00000040;color:var(--text-primary);font-size:.9rem;line-height:1.2;padding:10px 14px;pointer-events:auto;transition:opacity .22s ease,transform .22s ease;will-change:opacity,transform}.toast.toast--error,.toast.toast--info,.toast.toast--success{border-color:var(--color-primary)}.niv-data{align-items:center;display:flex}.niv-image{border:1px solid #353535;border-radius:100px;height:48px;margin-right:12px;width:48px}.main{align-items:center;background:linear-gradient(90deg,#1b1d1c,#0e1412);flex:1;min-height:100vh;overflow:auto;padding:46px 48px 0;position:relative}.container,.main{display:flex;flex-direction:column}.container{max-width:720px;width:100%;grid-column-gap:68px;grid-row-gap:68px}.mini-label-white{color:#fff;font-family:Agave Nerd Font,ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:clamp(12px,2vw,14px);font-weight:500;letter-spacing:.75px;line-height:1.5;margin-top:clamp(20px,4vw,28px);text-transform:uppercase}.mini-label-white.gray-color{color:silver}.chips-container{grid-column-gap:12px;grid-row-gap:12px;align-items:flex-start;display:flex;flex-wrap:wrap;margin-top:8px}.chips-container.chips-container-small-width{max-width:380px}.single-chip{background-color:#353535;border-radius:8px;color:#fff;font-family:Agave Nerd Font,ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:clamp(12px,2vw,14px);font-weight:500;line-height:1.4;padding:clamp(6px,1.5vw,10px) clamp(10px,2vw,14px)}.single-chip.small-chip{font-size:clamp(12px,1.8vw,13px);padding:clamp(4px,1vw,8px) clamp(8px,1.5vw,12px)}.single-item{color:#d0d0d0;font-size:clamp(16px,2vw,17px);line-height:1.5}.nav-link-image{opacity:.48;transition:opacity .2s ease;width:24px}.nav-link-container:hover .nav-link-image{opacity:1}.nav-link-container{grid-column-gap:12px;grid-row-gap:12px;align-items:center;border:1px solid transparent;border-radius:8px;color:silver;display:flex;font-size:clamp(14px,2vw,16px);font-weight:500;justify-content:flex-start;line-height:1.4;min-height:44px;padding:clamp(10px,2vw,14px);text-decoration:none;text-transform:capitalize;transform:translate(0);transition:all .2s ease}.nav-link-container:hover{background-color:#252525;border-color:#353535;box-shadow:0 2px 8px #0000004d;color:#fff!important;transform:translate(0) scale(1.02)}.nav-link-container a{color:inherit;text-decoration:none}.nav-link-container:hover a{color:inherit}.nav-link-container.w--current{background-color:#2b2b2b;border-color:#353535;color:#fff;transform:translate(0)}.tech-tools-container{display:flex;flex-direction:column;justify-content:flex-end}.back-nav-container{align-items:center;color:#fff;display:flex;font-weight:500;letter-spacing:normal;padding-bottom:0;text-transform:none}.back-nav-img{width:18px}.back-nav-button{background-color:transparent;border-radius:8px;color:#fff;display:flex;margin-top:-12px;padding:12px 16px;text-decoration:none;transition:all .12s}.back-nav-button:hover{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0808083d}.project-desc{color:silver;line-height:28px}.project-desc.project-desc-list{margin-left:-24px}.content-container{grid-column-gap:32px;grid-row-gap:32px;display:flex;flex-direction:column}.hero-image{background:radial-gradient(circle at top,rgba(79,148,255,.16),transparent 70%);border-radius:18px;box-shadow:0 16px 40px #0000003d;display:block;height:auto;margin:0 auto 1.5rem;-o-object-fit:contain;object-fit:contain;padding:18px;width:clamp(220px,45vw,320px)}.hero-placeholder{align-items:center;color:#d6d6d6e6;display:flex;font-size:3rem;justify-content:center;min-height:clamp(200px,45vw,280px)}@media (max-width:640px){.hero-image{padding:14px;width:clamp(180px,60vw,320px)}}.projects-category-image{color:#fff;height:82px;width:82px}@media screen and (max-width:1024px){.content{flex-direction:column}.sidebar{border-bottom:1px solid #353535;border-right:none;height:auto;max-width:100%;padding:18px 28px 18px 24px;position:relative;width:100%}.sidebar-toggle-button{display:none!important}.nav-content{height:auto;grid-column-gap:0;grid-row-gap:0;align-items:center;flex-direction:row;justify-content:space-between}.fold-content{margin-bottom:32px}.nav-link-container{background-color:#1c1c1c;border-radius:0;padding:18px 28px 18px 32px}.nav-link-container:active{background-color:#2b2b2b;color:#fff}.navbar-icon{color:#fff;font-size:32px;height:26px;transform-origin:center;transition:all .2s ease-in-out;width:26px}.navbar-icon-button{padding:12px;transition:all .24s}.navbar-icon.icon-transitioning{opacity:.7;transform:scale(.8)}.navbar-icon[data-icon=close],.navbar-icon[data-icon=menu]{transform:rotate(0)}}@media (min-width:1025px){.sidebar{align-self:flex-start;height:100vh;overflow-y:auto;position:sticky;top:0}.navbar-icon-button{display:none}.sidebar-toggle-button{display:flex!important}}@media screen and (max-width:767px){.sidebar{padding-left:24px;padding-right:18px}.main{background-position:50%;padding-left:28px;padding-right:28px}.container{grid-column-gap:68px;grid-row-gap:68px}.fold-content{margin-bottom:24px}.nav-link-container{padding-left:24px;padding-right:18px}.w-nav[data-collapse=medium] .w-nav-menu.is-visible .socials--menu{padding:12px 18px 12px 24px}.projects-section{grid-column-gap:68px;grid-row-gap:68px}.projects-category-image{height:64px;width:64px}.download-page{gap:32px}.download-hero{padding:24px}}.socials{display:flex;gap:5px}.social-link,.socials{align-items:center;color:#d6d6d6}.social-link{border-radius:8px;display:inline-flex;justify-content:center;opacity:.9;padding:8px;text-decoration:none;transition:background-color .15s ease,opacity .15s ease,color .15s ease}.social-link:hover{background-color:#ffffff0f;color:#fff;opacity:1}.prose pre{position:relative}.prose pre:before{pointer-events:none}.prose pre[class*=language-],.prose pre[data-language]{padding-top:3rem}.social-icon{display:block;height:22px;width:22px}.socials svg{height:22px!important;width:22px!important}.sidebar .socials--sidebar{border-top:1px solid #353535;margin-top:auto;padding-top:12px}.w-nav .socials--menu{display:none}@media screen and (max-width:1024px){.sidebar .socials--sidebar{display:none!important}.w-nav[data-collapse=medium] .w-nav-menu.is-visible{align-items:stretch;background-color:#1c1c1c;display:flex!important;flex-direction:column;padding-bottom:8px}.w-nav[data-collapse=medium] .w-nav-menu.is-visible .socials--menu{background-color:#1c1c1c;border-top:1px solid #353535;display:flex!important;gap:18px;justify-content:flex-start;margin-top:auto;padding:4%;position:static}}.blog-post{max-width:780px}.nav-link-container:focus-visible,a:focus-visible,button:focus-visible{border-radius:4px;outline:2px solid var(--text-accent);outline-offset:2px}::-moz-selection{background-color:#8ab4ff33;color:var(--text-primary)}::selection{background-color:#8ab4ff33;color:var(--text-primary)}code{background-color:#ffffff14;border-radius:4px;color:#e8e8e8;font-size:.9em;font-weight:500;padding:.2em .4em}.prose :is(p,ul,ol){line-height:1.75}.prose pre{background:#0f1115;border:1px solid #252525;border-radius:10px;overflow:auto;padding:1rem}.prose h1{font-size:2rem;letter-spacing:-.02em;line-height:1.25;margin:1.25rem 0 .5rem}.prose h2{font-size:1.5rem;line-height:1.3;margin:1.2rem 0 .5rem}.prose h3{font-size:1.25rem;line-height:1.35;margin:1rem 0 .4rem}.prose img{border-radius:12px}.content-image-grid,.download-image-grid{display:grid;gap:20px;width:100%}@media (min-width:720px){.content-image-grid,.download-image-grid{align-items:start;grid-template-columns:repeat(2,minmax(0,1fr))}}.content-image-grid figure,.download-image-grid figure{display:grid;gap:12px;margin:0}.content-image-grid img,.download-image-grid img{border-radius:12px;display:block;height:auto;width:100%}.content-image-grid figcaption,.download-image-grid figcaption{color:#a0a0a0;font-size:clamp(.85rem,2vw,.95rem);font-style:italic;line-height:1.5;margin-top:.5rem;opacity:.9;padding:.5rem 1rem;text-align:center;transition:all .2s ease;word-wrap:break-word;background:#ffffff05;border:1px solid hsla(0,0%,100%,.05);border-radius:6px}.content-image-grid figure:hover figcaption,.download-image-grid figure:hover figcaption{background:#ffffff0a;border-color:#ffffff1a;opacity:1}
