html.sidebar-open,body.sidebar-open{overflow:hidden;overscroll-behavior:none}.vertical-navbar[data-astro-cid-ymhdp2rl]{width:var(--app-navbar-desktop-width);background:transparent;border-right:1px solid var(--pico-muted-border-color);display:flex;flex-direction:column;align-items:center;padding:var(--app-spacing) 0;position:fixed;top:0;left:0;bottom:0;height:100vh;z-index:var(--app-z-navbar-desktop)}.vertical-navbar[data-astro-cid-ymhdp2rl] ul[data-astro-cid-ymhdp2rl]{display:flex;flex-direction:column;align-items:center;gap:var(--app-spacing-lg);list-style:none!important;margin:0!important;padding:0!important}.vertical-navbar[data-astro-cid-ymhdp2rl] .bottom-nav[data-astro-cid-ymhdp2rl]{margin-top:auto;gap:var(--app-spacing-md)}.vertical-navbar[data-astro-cid-ymhdp2rl] a[data-astro-cid-ymhdp2rl],.vertical-navbar[data-astro-cid-ymhdp2rl] button[data-astro-cid-ymhdp2rl]{display:flex;justify-content:center;align-items:center;width:var(--app-navbar-desktop-button);height:var(--app-navbar-desktop-button);padding:0;margin:0;border:none!important;background:transparent!important;box-shadow:none!important;color:var(--pico-muted-color)!important;opacity:.7;cursor:pointer;transition:opacity var(--app-transition),color var(--app-transition);text-decoration:none}.vertical-navbar[data-astro-cid-ymhdp2rl] a[data-astro-cid-ymhdp2rl] svg[data-astro-cid-ymhdp2rl],.vertical-navbar[data-astro-cid-ymhdp2rl] button[data-astro-cid-ymhdp2rl] svg[data-astro-cid-ymhdp2rl]{color:inherit!important;stroke:currentColor!important}.vertical-navbar[data-astro-cid-ymhdp2rl] a[data-astro-cid-ymhdp2rl]:hover,.vertical-navbar[data-astro-cid-ymhdp2rl] button[data-astro-cid-ymhdp2rl]:hover{opacity:1;color:var(--pico-primary)!important}.mobile-only[data-astro-cid-ymhdp2rl]{display:none}#sun-icon[data-astro-cid-ymhdp2rl],#moon-icon[data-astro-cid-ymhdp2rl]{display:none!important}html[data-theme=dark] #sun-icon[data-astro-cid-ymhdp2rl],html[data-theme=light] #moon-icon[data-astro-cid-ymhdp2rl]{display:block!important}@media(max-width:991px){.mobile-only[data-astro-cid-ymhdp2rl]{display:flex}.vertical-navbar[data-astro-cid-ymhdp2rl]{width:100%;flex-direction:row;align-items:center;position:fixed;top:0;left:0;right:0;padding:var(--app-spacing-xs) .75rem;height:var(--app-navbar-mobile-height);min-height:var(--app-navbar-mobile-height);max-height:var(--app-navbar-mobile-height);background:var(--pico-background-color);border-right:none;border-bottom:1px solid var(--pico-muted-border-color);z-index:var(--app-z-navbar);overflow:hidden;touch-action:manipulation}.vertical-navbar[data-astro-cid-ymhdp2rl] a[data-astro-cid-ymhdp2rl],.vertical-navbar[data-astro-cid-ymhdp2rl] button[data-astro-cid-ymhdp2rl]{width:var(--app-navbar-mobile-button)!important;height:var(--app-navbar-mobile-button)!important;min-height:var(--app-navbar-mobile-button)!important;padding:0!important}.vertical-navbar[data-astro-cid-ymhdp2rl] ul[data-astro-cid-ymhdp2rl]{flex-direction:row;width:auto;min-width:0;justify-content:flex-start;gap:var(--app-spacing-sm);margin-top:0!important;overflow:hidden;flex-shrink:0}.vertical-navbar[data-astro-cid-ymhdp2rl] .bottom-nav[data-astro-cid-ymhdp2rl] li[data-astro-cid-ymhdp2rl]:nth-child(1){order:0}.vertical-navbar[data-astro-cid-ymhdp2rl] .bottom-nav[data-astro-cid-ymhdp2rl] li[data-astro-cid-ymhdp2rl]:nth-child(2){order:-1}.vertical-navbar[data-astro-cid-ymhdp2rl] .bottom-nav[data-astro-cid-ymhdp2rl] li[data-astro-cid-ymhdp2rl]:nth-child(3){order:1}.vertical-navbar[data-astro-cid-ymhdp2rl] ul[data-astro-cid-ymhdp2rl]:last-child{margin-left:auto}}.sidebar-controls[data-astro-cid-ssfzsv2f]{display:flex;align-items:stretch;gap:.3rem;margin-bottom:.4rem;font-family:JetBrains Mono,Fira Code,Cascadia Code,Consolas,monospace}.sidebar-controls[data-astro-cid-ssfzsv2f] input[data-astro-cid-ssfzsv2f]{flex:1;font-size:.75rem;font-family:inherit;padding:.2rem .4rem;border:1px solid var(--pico-muted-border-color);border-radius:3px;background:transparent;color:var(--pico-color);outline:none;margin:0;line-height:1;height:auto;box-sizing:border-box}.sidebar-controls[data-astro-cid-ssfzsv2f] input[data-astro-cid-ssfzsv2f]::placeholder{color:var(--pico-muted-color);opacity:.6}.sidebar-controls[data-astro-cid-ssfzsv2f] input[data-astro-cid-ssfzsv2f]:focus{border-color:var(--pico-primary)}.sort-btn[data-astro-cid-ssfzsv2f]{display:flex;align-items:center;justify-content:center;background:transparent!important;background-color:transparent!important;border:1px solid var(--pico-muted-border-color)!important;border-radius:3px!important;color:var(--pico-muted-color)!important;cursor:pointer;padding:0 .35rem!important;font-size:.75rem!important;line-height:1!important;transition:color .15s ease,border-color .15s ease;margin:0!important;height:auto!important;width:auto!important;font-family:inherit;box-shadow:none!important;box-sizing:border-box!important}.sort-btn[data-astro-cid-ssfzsv2f]:hover,.sort-btn[data-astro-cid-ssfzsv2f].active{color:var(--pico-primary)!important;border-color:var(--pico-primary)!important;background:transparent!important}.sort-btn[data-astro-cid-ssfzsv2f][data-label]:after{content:attr(data-label);margin-left:.15rem;font-size:.6rem;opacity:.8}.sidebar-nav[data-astro-cid-ssfzsv2f]{position:relative;font-family:JetBrains Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:.8rem}.sidebar-nav[data-astro-cid-ssfzsv2f] ul[data-astro-cid-ssfzsv2f]{list-style:none;margin:0;padding:0;display:grid}#sidebar-tree[data-astro-cid-ssfzsv2f][data-sort=desc]>.sidebar-pinned[data-astro-cid-ssfzsv2f],#sidebar-tree[data-astro-cid-ssfzsv2f][data-sort=asc]>.sidebar-pinned[data-astro-cid-ssfzsv2f]{order:-9999999999}#sidebar-tree[data-astro-cid-ssfzsv2f][data-sort=desc] .sortable-list[data-astro-cid-ssfzsv2f]>.sortable-item[data-astro-cid-ssfzsv2f]{order:var(--order-desc, 0)}#sidebar-tree[data-astro-cid-ssfzsv2f][data-sort=asc] .sortable-list[data-astro-cid-ssfzsv2f]>.sortable-item[data-astro-cid-ssfzsv2f]{order:var(--order-asc, 0)}#sidebar-tree[data-astro-cid-ssfzsv2f][data-sort=desc]>.sortable-item[data-astro-cid-ssfzsv2f]>details[data-astro-cid-ssfzsv2f]>.sortable-list[data-astro-cid-ssfzsv2f]>.sortable-item[data-astro-cid-ssfzsv2f],#sidebar-tree[data-astro-cid-ssfzsv2f][data-sort=asc]>.sortable-item[data-astro-cid-ssfzsv2f]>details[data-astro-cid-ssfzsv2f]>.sortable-list[data-astro-cid-ssfzsv2f]>.sortable-item[data-astro-cid-ssfzsv2f]{order:0}.sidebar-nav[data-astro-cid-ssfzsv2f] li[data-astro-cid-ssfzsv2f]{margin-bottom:0;line-height:1;padding:1px 0}.sidebar-nav[data-astro-cid-ssfzsv2f] summary[data-astro-cid-ssfzsv2f]{cursor:pointer;font-size:.8rem;font-weight:700;margin-bottom:0;line-height:1;padding:1px 0!important}.sidebar-nav[data-astro-cid-ssfzsv2f] summary[data-astro-cid-ssfzsv2f]:after{display:none!important}.ascii-icon[data-astro-cid-ssfzsv2f]{color:var(--pico-muted-color);margin-right:.2rem;flex-shrink:0}.ascii-icon[data-astro-cid-ssfzsv2f].folder{color:var(--pico-primary);padding:0 .1rem;cursor:pointer}.sidebar-nav[data-astro-cid-ssfzsv2f] a[data-astro-cid-ssfzsv2f].file-link{text-decoration:none!important;color:var(--pico-contrast)!important;transition:all .15s ease;display:flex;align-items:center;line-height:1.2;min-width:0;padding:2px 4px;margin:0 -4px;border-radius:3px}.sidebar-nav[data-astro-cid-ssfzsv2f] a[data-astro-cid-ssfzsv2f].file-link:hover{color:var(--pico-primary)!important;background-color:var(--pico-code-background-color)!important}.sidebar-nav[data-astro-cid-ssfzsv2f] a[data-astro-cid-ssfzsv2f].file-link.active{color:var(--pico-primary)!important;font-weight:700;background-color:rgba(var(--pico-primary-rgb),.1)!important}.sidebar-nav[data-astro-cid-ssfzsv2f] a[data-astro-cid-ssfzsv2f].folder-link{text-decoration:none!important;color:inherit!important;transition:all .15s ease;display:inline-flex;align-items:center;padding:2px 4px;margin:0 -4px;border-radius:3px}.sidebar-nav[data-astro-cid-ssfzsv2f] a[data-astro-cid-ssfzsv2f].folder-link:hover{color:var(--pico-primary)!important;background-color:var(--pico-code-background-color)!important}.sidebar-nav[data-astro-cid-ssfzsv2f] a[data-astro-cid-ssfzsv2f].folder-link.active{color:var(--pico-primary)!important;font-weight:700;background-color:rgba(var(--pico-primary-rgb),.1)!important}.file-link-wrapper[data-astro-cid-ssfzsv2f]{flex:1;min-width:0}.sidebar-nav[data-astro-cid-ssfzsv2f] li[data-astro-cid-ssfzsv2f]:has(>.file-link-wrapper){display:flex;align-items:baseline;gap:.75rem;min-width:0}.file-name[data-astro-cid-ssfzsv2f]{display:block;min-width:0;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-date[data-astro-cid-ssfzsv2f]{font-size:.7rem;opacity:.45;white-space:nowrap;line-height:1.7;flex:0 0 auto;margin-left:auto}details[data-astro-cid-ssfzsv2f] ul[data-astro-cid-ssfzsv2f]{padding-left:.75rem!important;border-left:1px solid var(--pico-muted-border-color);margin-left:.2rem!important;margin-top:0!important;margin-bottom:0!important}.sidebar-nav[data-astro-cid-ssfzsv2f] details[data-astro-cid-ssfzsv2f]{margin:0!important;padding:0!important;position:static!important;border:none!important}.sidebar-nav[data-astro-cid-ssfzsv2f] details[data-astro-cid-ssfzsv2f] summary[data-astro-cid-ssfzsv2f]{margin:0!important;padding:0!important;border:none!important}.sidebar-nav[data-astro-cid-ssfzsv2f] details[data-astro-cid-ssfzsv2f]>ul[data-astro-cid-ssfzsv2f]{margin-top:0!important;padding-top:0!important}@media(max-width:991px){.sidebar-nav[data-astro-cid-ssfzsv2f]{font-size:1rem}.sidebar-controls[data-astro-cid-ssfzsv2f] input[data-astro-cid-ssfzsv2f]{font-size:.9rem;padding:.6rem .8rem;height:44px}.sort-btn[data-astro-cid-ssfzsv2f]{height:44px!important;width:44px!important;font-size:1.1rem!important}.sidebar-nav[data-astro-cid-ssfzsv2f] a[data-astro-cid-ssfzsv2f].file-link,.sidebar-nav[data-astro-cid-ssfzsv2f] a[data-astro-cid-ssfzsv2f].folder-link,.sidebar-nav[data-astro-cid-ssfzsv2f] summary[data-astro-cid-ssfzsv2f]{font-size:1rem;padding:6px 4px}.file-date[data-astro-cid-ssfzsv2f]{font-size:1rem}}:root{--app-primary: #95d600;--app-primary-rgb: 149, 214, 0;--app-primary-hover-light: #7ab800;--app-primary-hover-dark: #a8e00a;--app-primary-inverse: #fff;--app-primary-underline-opacity: .5;--app-primary-focus-opacity-light: .25;--app-primary-focus-opacity-dark: .375;--app-primary-selection-opacity-light: .25;--app-primary-selection-opacity-dark: .2;--app-navbar-desktop-width: 64px;--app-navbar-desktop-button: 40px;--app-navbar-mobile-height: 46px;--app-navbar-mobile-button: 28px;--app-sidebar-width: 320px;--app-main-max-width: 130ch;--app-content-padding-top-mobile: 50px;--app-spacing-xs: .15rem;--app-spacing-sm: .25rem;--app-spacing-md: .5rem;--app-spacing: 1rem;--app-spacing-lg: 1.5rem;--app-spacing-xl: 2rem;--app-spacing-page: 2rem;--app-font-xs: .8rem;--app-font-sm: .9rem;--app-font-md: 1rem;--app-font-lg: 1.15rem;--app-font-xl: 1.3rem;--app-scrollbar-size: 10px;--app-scrollbar-thumb-radius: 5px;--app-radius-sm: 4px;--app-z-navbar: 1000;--app-z-sidebar-overlay: 999;--app-z-navbar-desktop: 100;--app-z-code-copy: 10;--app-transition: .2s ease;--font-family: "JetBrains Mono", "Cascadia Code", Consolas, monospace;--pico-primary: var(--app-primary);--pico-primary-rgb: var(--app-primary-rgb)}html[data-theme=light],:root:not([data-theme=dark]){--pico-primary: var(--app-primary);--pico-primary-rgb: var(--app-primary-rgb);--pico-primary-background: var(--app-primary);--pico-primary-border: var(--app-primary);--pico-primary-underline: rgba(var(--app-primary-rgb), var(--app-primary-underline-opacity));--pico-primary-hover: var(--app-primary-hover-light);--pico-primary-hover-background: var(--app-primary-hover-light);--pico-primary-hover-border: var(--app-primary-hover-light);--pico-primary-hover-underline: var(--app-primary-hover-light);--pico-primary-focus: rgba(var(--app-primary-rgb), var(--app-primary-focus-opacity-light));--pico-primary-inverse: var(--app-primary-inverse);--pico-text-selection-color: rgba(var(--app-primary-rgb), var(--app-primary-selection-opacity-light))}html[data-theme=dark]{--pico-primary: var(--app-primary);--pico-primary-rgb: var(--app-primary-rgb);--pico-primary-background: var(--app-primary);--pico-primary-border: var(--app-primary);--pico-primary-underline: rgba(var(--app-primary-rgb), var(--app-primary-underline-opacity));--pico-primary-hover: var(--app-primary-hover-dark);--pico-primary-hover-background: var(--app-primary-hover-light);--pico-primary-hover-border: var(--app-primary-hover-light);--pico-primary-hover-underline: var(--app-primary-hover-dark);--pico-primary-focus: rgba(var(--app-primary-rgb), var(--app-primary-focus-opacity-dark));--pico-primary-inverse: var(--app-primary-inverse);--pico-text-selection-color: rgba(var(--app-primary-rgb), var(--app-primary-selection-opacity-dark))}*{box-sizing:border-box}html{font-size:90%;overflow-x:clip;background-color:var(--pico-background-color);scrollbar-width:thin;scrollbar-color:var(--pico-muted-border-color) var(--pico-background-color)}body{font-family:var(--font-family);line-height:1.6;background-color:var(--pico-background-color);overflow-x:clip}html::-webkit-scrollbar{width:var(--app-scrollbar-size);height:var(--app-scrollbar-size)}html::-webkit-scrollbar-track{background:var(--pico-background-color)}html::-webkit-scrollbar-thumb{background:var(--pico-muted-border-color);border-radius:var(--app-scrollbar-thumb-radius)}html::-webkit-scrollbar-thumb:hover{background:var(--pico-muted-color)}.app-layout{display:flex;min-height:100vh;min-width:0;overflow-x:clip;width:100%;background-color:var(--pico-background-color)}.main-container{flex:1;display:flex;flex-direction:column;min-height:0;min-width:0;overflow-x:clip}.main-grid{flex:1;min-width:0;overflow-x:clip}main{max-width:var(--app-main-max-width);margin-inline:auto;width:100%;min-width:0;overflow-x:clip}article{background:transparent!important;box-shadow:none!important;border:none!important;padding:0!important;min-width:0;overflow-x:clip;max-width:100%}article>*{background:transparent!important;box-shadow:none!important;max-width:100%}html[data-font=xs]{--app-article-font: var(--app-font-xs)}html[data-font=sm]{--app-article-font: var(--app-font-sm)}html[data-font=md]{--app-article-font: var(--app-font-md)}html[data-font=lg]{--app-article-font: var(--app-font-lg)}html[data-font=xl]{--app-article-font: var(--app-font-xl)}main article .entry-header,main article .content{font-size:var(--app-article-font, var(--app-font-md))}main article .entry-header h1{font-size:2em}main article .entry-header .summary{font-size:1em}article .entry-header{border-bottom:1px solid var(--pico-muted-border-color)!important;padding-bottom:var(--app-spacing);margin-bottom:var(--app-spacing-lg)}h1,h2,h3,h4,h5,h6,pre,code{font-family:var(--font-family)}@media(min-width:992px){.app-layout{padding-left:var(--app-navbar-desktop-width)}.main-container{background-image:linear-gradient(to right,transparent calc(var(--app-spacing-page) + var(--app-sidebar-width)),var(--pico-muted-border-color) calc(var(--app-spacing-page) + var(--app-sidebar-width)),var(--pico-muted-border-color) calc(var(--app-spacing-page) + var(--app-sidebar-width) + 1px),transparent calc(var(--app-spacing-page) + var(--app-sidebar-width) + 1px))}.main-grid{display:grid;grid-template-columns:var(--app-sidebar-width) minmax(0,1fr);gap:0;padding:var(--app-spacing-page)}#layout-sidebar{padding-right:var(--app-spacing-page)}main{padding-left:var(--app-spacing-page)}}@media(max-width:991px){.app-layout{display:block;min-height:0}.main-container{display:block;flex:none;min-height:auto;padding-top:var(--app-content-padding-top-mobile)}.main-grid{flex:none;min-height:auto;padding:var(--app-spacing);display:block}#layout-sidebar.sidebar-hidden,#layout-sidebar:not(.sidebar-shown){display:none}#layout-sidebar.sidebar-shown{display:block;position:fixed;top:var(--app-navbar-mobile-height);left:0;right:0;bottom:0;background:var(--pico-background-color);z-index:var(--app-z-sidebar-overlay);padding:var(--app-spacing);overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;border-bottom:1px solid var(--pico-muted-border-color);margin:0;box-shadow:0 4px 10px #0000001a}}.sidebar-nav ul{list-style:none;padding:0}.sidebar-nav li{margin-bottom:0}.sidebar-nav a{text-decoration:none}.sidebar-nav .active{color:var(--pico-primary)!important;font-weight:700}.meta{color:var(--pico-muted-color);font-size:var(--app-font-sm);margin-bottom:var(--app-spacing-md)}.highlight,.highlight-wrapper,.code-block-container{position:relative;margin-bottom:var(--app-spacing-lg)}.code-copy-btn{position:absolute;top:var(--app-spacing-md);right:var(--app-spacing-md);z-index:var(--app-z-code-copy);font-size:.75rem!important;padding:var(--app-spacing-sm) .6rem!important;width:auto!important;margin:0!important;line-height:1.4!important;min-height:0!important;background-color:#ffffff1a!important;color:#e5e7eb!important;border:1px solid rgba(255,255,255,.2)!important;border-radius:var(--app-radius-sm)!important;box-shadow:none!important;text-transform:none!important;font-weight:500!important;opacity:.7;transition:all var(--app-transition) ease-in-out;cursor:pointer}.code-block-container:hover .code-copy-btn,.highlight:hover .code-copy-btn,.highlight-wrapper:hover .code-copy-btn{opacity:1}.code-copy-btn:hover{background-color:#fff3!important;border-color:#ffffff80!important;color:#fff!important}.code-copy-btn.copied{opacity:1;background-color:var(--pico-primary)!important;border-color:var(--pico-primary)!important;color:var(--pico-primary-inverse, var(--app-primary-inverse))!important}.site-footer{border-top:1px solid var(--pico-muted-border-color);padding:var(--app-spacing-lg) var(--app-spacing);margin-top:3rem;text-align:center;display:flex;align-items:center;justify-content:center;background:var(--pico-background-color);position:relative}.highlight pre,.highlight-wrapper pre,.code-block-container pre,.code-block-container pre code,.code-block-container pre code *{white-space:pre-wrap!important;word-wrap:break-word!important;word-break:break-all!important;max-width:100%}.content a[href^="/"]:not(.post-title-link){display:inline;padding:.1rem var(--app-spacing-md);border-radius:var(--app-radius-sm);background-color:var(--pico-code-background-color)!important;border:1px solid var(--pico-muted-border-color);color:var(--pico-primary)!important;text-decoration:none!important;font-size:.9em;font-weight:500;transition:all var(--app-transition);vertical-align:middle;line-height:inherit;margin:0 .1rem}.content a[href^="/"]:not(.post-title-link):hover{background-color:var(--pico-primary-background)!important;border-color:var(--pico-primary);opacity:1}.content a[href^=http]:not(.nav-link){display:inline;color:var(--pico-primary)!important;text-decoration-color:var(--pico-primary)!important;opacity:.8;transition:opacity var(--app-transition)}.content a[href^=http]:not(.nav-link):hover{opacity:1}.content a[href^=http]:not(.nav-link):after{content:"";display:inline-block;width:12px;height:12px;margin-left:var(--app-spacing-sm);vertical-align:middle;background-color:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'%3E%3C/path%3E%3Cpolyline points='15 3 21 3 21 9'%3E%3C/polyline%3E%3Cline x1='10' y1='14' x2='21' y2='3'%3E%3C/line%3E%3C/svg%3E") no-repeat center;mask-size:contain;opacity:.7}.content a code{color:inherit!important;background:transparent!important;border:none!important;padding:0!important;font-size:inherit!important}main article .content{max-width:100%;overflow-x:clip;overflow-wrap:break-word}.mermaid{display:flex;justify-content:center;width:100%;overflow-x:auto}.mermaid svg{max-width:100%!important;height:auto!important}.post-title-link{text-decoration:none!important;color:var(--pico-contrast)!important;transition:all var(--app-transition) ease}.post-title-link:hover{color:var(--pico-primary)!important;text-shadow:0 0 8px rgba(var(--pico-primary-rgb),.4)}a.all-articles-link.post-title-link{color:var(--pico-primary)!important}a.all-articles-link.post-title-link:hover{color:var(--pico-primary-hover, var(--app-primary-hover-light))!important;text-shadow:0 0 8px rgba(var(--pico-primary-rgb),.4)}
