@font-face{font-family:literata;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/literata.woff2)format("woff2")}@font-face{font-family:literata;font-style:italic;font-weight:300 700;font-display:swap;src:url(/fonts/literata-italic.woff2)format("woff2")}:root{color-scheme:light dark;--background-color:#fff;--foreground-color:rgb(36, 36, 36);--link-color:#336bad;--foreground-secondary-color:#666;--nav-current-background-color:#0f0f0f;--nav-current-foreground-color:#fff;--nav-item-background-color:#f2f2f2;--nav-item-foreground-color:#0f0f0f;--nav-item-hover-background-color:#e5e5e5;--border-color:#e2e2e2;--chevron-color:#333;--breadcrumb-background-color:rgba(255, 255, 255, 0.8);--breadcrumb-border-color:rgba(255, 255, 255, 0.7);--code-background-color:#f8f8f8;--code-foreground-color:#24292e;--kbd-color:#444444;--kbd-border-color:#bbb;--kbd-background-color:#f7f7f7}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--background-color:#1c1c1e;--foreground-color:#f1f1f1;--link-color:#6699ff;--foreground-secondary-color:#adadaf;--nav-current-background-color:#272727;--nav-current-foreground-color:#f1f1f1;--nav-item-background-color:#0f0f0f;--nav-item-foreground-color:#adadaf;--nav-item-hover-background-color:#3f3f3f;--border-color:#2b2b2d;--chevron-color:#eee;--breadcrumb-background-color:rgba(32, 32, 34, 0.8);--breadcrumb-border-color:rgba(32, 32, 34, 0.7);--code-background-color:#282c34;--code-foreground-color:#abb2bf;--kbd-color:#eeeeee;--kbd-border-color:#000;--kbd-background-color:#4d4c4c}}[data-theme=dark]{color-scheme:dark;--background-color:#1c1c1e;--foreground-color:#f1f1f1;--link-color:#6699ff;--foreground-secondary-color:#adadaf;--nav-current-background-color:#272727;--nav-current-foreground-color:#f1f1f1;--nav-item-background-color:#0f0f0f;--nav-item-foreground-color:#adadaf;--nav-item-hover-background-color:#3f3f3f;--border-color:#2b2b2d;--chevron-color:#eee;--breadcrumb-background-color:rgba(32, 32, 34, 0.8);--breadcrumb-border-color:rgba(32, 32, 34, 0.7);--code-background-color:#282c34;--code-foreground-color:#abb2bf;--kbd-color:#eeeeee;--kbd-border-color:#000;--kbd-background-color:#4d4c4c}[data-theme=light]{color-scheme:light}html{padding:0;margin:0;background-color:var(--background-color)}body{background-color:var(--background-color);padding:0;margin:0;font-family:literata,Charter,bitstream charter,sitka text,Cambria,serif}a:link,a:visited,a:active{color:var(--link-color);text-decoration:none;line-break:anywhere}a:hover{text-decoration:underline;text-underline-offset:.2rem}code{padding:0 4px;border-radius:3px;background-color:var(--code-background-color);color:inherit}pre code{padding:0;background-color:transparent;color:inherit}summary,summary *{cursor:pointer!important}code,pre,samp,tt{font-family:lucida console,Consolas,courier,monospace}pre,.chroma{background-color:var(--code-background-color)!important;color:var(--code-foreground-color)}pre{border:1px solid var(--border-color);border-radius:3px;padding:10px;font-size:.9em;box-shadow:0 1px 2px rgba(0,0,0,2%),0 2px 4px rgba(0,0,0,2%),0 4px 8px rgba(0,0,0,2%),0 8px 16px rgba(0,0,0,2%);overflow-x:auto;display:block;break-inside:avoid;text-align:left}.code-block{position:relative}.copy-btn{position:absolute;top:.4rem;right:.4rem;border:1px solid var(--border-color);background-color:var(--nav-item-background-color);color:var(--nav-item-foreground-color);padding:.2rem .5rem;font-size:.8rem;border-radius:4px;cursor:pointer;opacity:.7;transition:opacity .2s,background-color .2s}.copy-btn:hover{opacity:1;background-color:var(--nav-item-hover-background-color)}h1{color:var(--foreground-color);font-size:2em;margin:0 0 20px;line-height:1.2}h2{margin-top:40px;margin-bottom:20px}.chevron{font-size:1.1em;color:var(--chevron-color);font-family:lucida grande;font-weight:500}hr{border:none;height:2px;color:var(--border-color);background-color:var(--border-color);margin-top:2rem;margin-bottom:2rem}.date{font-size:.8em;color:var(--foreground-secondary-color);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,segoe ui,Roboto,helvetica neue,Arial,sans-serif}.breadcrumb{display:flex;align-items:center;width:100%;padding:20px 0;position:sticky;top:0;background-color:var(--breadcrumb-background-color);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--breadcrumb-border-color);box-sizing:border-box;z-index:99}.breadcrumb-inner{display:flex;align-items:center;width:100%;max-width:calc(800px - env(safe-area-inset-left) - env(safe-area-inset-left));margin-left:auto;margin-right:auto}.chevron{display:inline-block;margin:0 8px;color:var(--chevron-color);font-family:lucida grande;font-weight:500}.breadcrumb-inner>a{line-break:auto}.breadcrumb-avatar{margin-right:8px;display:flex}.breadcrumb-avatar-image{width:20px;height:20px;border-radius:20px;vertical-align:bottom;display:block;filter:drop-shadow(0 1px 2px rgba(0,0,0,.1))}.main{max-width:calc(800px - env(safe-area-inset-left) - env(safe-area-inset-left));margin:0 auto;padding:20px;color:var(--foreground-color)}.content{margin:20px 0;line-height:1.8;font-size:1.1em;color:var(--foreground-color)}.content p{margin-top:0;margin-bottom:1.2em}.content img{display:block;margin:20px auto;max-width:100%}.content table{table-layout:auto;width:100%;padding:0;border-collapse:collapse;box-shadow:0 1px 2px rgba(0,0,0,2%),0 2px 4px rgba(0,0,0,2%),0 4px 8px rgba(0,0,0,2%),0 8px 16px rgba(0,0,0,2%)}.content table tr{border-top:1px solid var(--border-color);background-color:var(--background-color);margin:0;padding:0}.content table tr:nth-child(2n){background-color:var(--code-background-color)}.content table tr th{font-weight:700;border:1px solid var(--border-color);margin:0;padding:6px 12px;background-color:var(--code-background-color)}.content table tr td{border:1px solid var(--border-color);margin:0;padding:6px 12px}.content table tr th :first-child,.content table tr td :first-child{margin-top:0}.content table tr th :last-child,.content table tr td :last-child{margin-bottom:0}.site-info{flex:1;display:flex;flex-direction:column;gap:20px;font-size:1em;line-height:1.2;color:var(--foreground-color)}.site-title{font-size:2.5em;line-height:1.2;font-weight:600;color:var(--foreground-color);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,segoe ui,Roboto,helvetica neue,Arial,sans-serif}.site-about{font-size:1.2em;line-height:1.2;color:var(--foreground-color)}.site-about p:first-child{margin-top:0}.site-about p:last-child{margin-bottom:0}.items{max-width:100%;margin-left:auto;margin-right:auto;display:flex;flex-direction:column;gap:20px}.item{display:flex;flex-direction:row;gap:20px;margin-bottom:30px;align-items:top}.item-main{flex:1;display:flex;flex-direction:column;gap:10px}.item-hero-image img{max-height:60px;border-radius:2px;aspect-ratio:3/2;object-fit:cover;image-rendering:optimizeQuality;border:0}.item-title{font-size:1.25em;font-weight:500;line-height:1.2;text-align:left}.item-title>a{line-break:strict!important}.item-info{display:flex;gap:10px;align-items:center}.item-date{font-size:.8em;color:var(--foreground-secondary-color);text-align:left;display:inline-block;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,segoe ui,Roboto,helvetica neue,Arial,sans-serif}.social-icon{width:1em;height:1em;vertical-align:bottom;filter:invert(28%)sepia(47%)saturate(2131%)hue-rotate(197deg)brightness(95%)contrast(78%)}.top{max-width:100%;margin-left:auto;margin-right:auto;align-items:center;display:flex;gap:20px;margin-bottom:40px}img.avatar{width:72px;height:72px;border-radius:72px;filter:drop-shadow(0 2px 5px rgba(0,0,0,.1));padding:10px}.pages-container{display:flex;align-items:center;margin-top:20px;margin-bottom:20px}.pages-info{flex:1;text-align:center;vertical-align:middle;color:var(--foreground-secondary-color);font-weight:500;font-size:12px}.nav-container{text-align:left;max-width:100%;margin-left:auto;margin-right:auto}.nav{display:inline-flex;gap:12px;padding:2px;box-sizing:border-box;margin:0 auto 40px;align-items:center;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,segoe ui,Roboto,helvetica neue,Arial,sans-serif;flex-wrap:wrap}.nav-current:link,.nav-current:visited{background-color:var(--nav-current-background-color);color:var(--nav-current-foreground-color);border-radius:2em;font-size:1em;line-height:1;display:inline-block;padding:5px 10px;transition:background-color .15s}.nav-current:hover{text-decoration:none;background-color:var(--nav-current-background-color)}.nav-item:link,.nav-item:visited{background-color:var(--nav-item-background-color);color:var(--nav-item-foreground-color);border-radius:2em;font-size:1em;line-height:1;display:inline-block;padding:5px 10px;transition:background-color .15s}.nav-item:hover{background-color:var(--nav-item-hover-background-color);text-decoration:none}.nav a svg{width:1.5em;height:1.5em;vertical-align:middle}p,h1,h2,h3,h4,h5,h6,.date,ul,ol,pre,hr{max-width:100%;margin-left:auto;margin-right:auto}ul{padding-inline-start:1em}ol{padding-inline-start:1.25em}.site-about p{max-width:100%;margin-left:0;margin-right:0}figure{margin-top:20px;margin-bottom:20px;margin-inline-start:0;margin-inline-end:0}figure>img:first-child{margin:40px 0 20px}figcaption{font-size:.8em;color:var(--foreground-secondary-color);text-align:center}blockquote{display:block;margin-block-start:1em;margin-block-end:1em;margin-inline-start:40px;margin-inline-end:40px;font-style:italic;border-left:5px solid;margin-left:2em;padding-left:1em;border-color:var(--border-color);color:var(--foreground-secondary-color)}.tag-container{margin:0 auto 40px;border-bottom:1px solid var(--border-color);padding-bottom:1em;display:flex;flex-direction:column;gap:.5em}.tag-caption{font-size:.8em;display:flex;gap:.5em;align-items:center}.tag-title{font-size:2em;font-weight:500}.tag-count{font-size:.8em;color:var(--foreground-secondary-color)}.tags-container{font-size:.8em;display:flex;flex-wrap:wrap;gap:1em;color:var(--foreground-secondary-color);align-items:center}.tags{flex:1;display:flex;gap:.5em;flex-wrap:wrap}.tag-cloud{column-count:3;column-rule:1px solid var(--border-color);column-gap:20px;line-height:2}.tag-cloud-item{display:block;font-size:1em}.tag-cloud-item-count{display:inline-block;background-color:var(--border-color);font-size:.75em;color:var(--background-color);padding:1px 4px;border-radius:20px;line-height:1;vertical-align:middle;margin-left:.5em}.tag-item{display:inline-block;padding:.2em .5em;border-radius:4px;border:1px solid var(--border-color)}.tag-item:hover{text-decoration:none;border-color:var(--link-color);box-shadow:0 1px 2px var(--border-color)}.archive-container{margin:0 auto 40px;border-bottom:1px solid var(--border-color);padding-bottom:1em;display:flex;flex-direction:column;gap:.5em}.archive-title{font-size:2em;font-weight:500}.archive-count{font-size:.8em;color:var(--foreground-secondary-color)}.archive-list{column-count:3;column-rule:1px solid var(--border-color);column-gap:20px;line-height:1.2}.archive-list-item{display:block;font-size:1em;display:flex;align-items:center;gap:.5em;margin-bottom:10px}.archive-list-header{display:block;break-after:avoid;font-size:1.1em;font-weight:500;margin-bottom:10px;margin-top:20px;color:var(--foreground-secondary-color)}.archive-list-header:first-child{margin-top:0}.archive-list-item a{line-break:initial}#\31 {border-top:1px solid var(--border-color)}.footnotes{border-top:1px solid var(--border-color)}.footnote-definition{padding-top:1rem;font-size:.9rem;color:var(--foreground-secondary-color);line-height:1;display:flex;align-items:flex-start;gap:.5rem}.footnote-definition-label{font-weight:500;color:var(--foreground-color);flex-shrink:0}.footnote-definition p{margin:0;flex:1}.footnote-definition a{color:var(--link-color);text-decoration:none}.footnote-definition a:hover{text-decoration:underline}.theme-toggle{display:inline-flex;align-items:center;cursor:pointer}.theme-toggle .theme-icon-sun,.theme-toggle .theme-icon-moon{display:inline-flex;align-items:center}.theme-toggle .theme-icon-sun{display:inline-flex}.theme-toggle .theme-icon-moon{display:none}.breadcrumb-inner .theme-toggle{margin-left:auto}.breadcrumb-inner .theme-toggle svg{width:1.25em;height:1.25em;vertical-align:middle}[data-theme=dark] .theme-toggle .theme-icon-sun{display:none}[data-theme=dark] .theme-toggle .theme-icon-moon{display:inline-flex}[data-theme=light] .theme-toggle .theme-icon-sun{display:inline-flex}[data-theme=light] .theme-toggle .theme-icon-moon{display:none}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-toggle .theme-icon-sun{display:none}:root:not([data-theme=light]) .theme-toggle .theme-icon-moon{display:inline-flex}}.chroma .err{color:#f6f8fa;background-color:#82071e}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#dedede}.chroma .lnt,.chroma .ln{white-space:pre;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .line{display:flex}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr,.chroma .kt{color:#cf222e}.chroma .na,.chroma .nc,.chroma .nx,.chroma .p{color:#1f2328}.chroma .no,.chroma .nd,.chroma .nt,.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo,.chroma .o,.chroma .ow,.chroma .or{color:#0550ae}.chroma .ni,.chroma .nb,.chroma .nf,.chroma .fm{color:#6639ba}.chroma .nl{color:#900;font-weight:700}.chroma .nn{color:#24292e}.chroma .bp{color:#6a737d}.chroma .nv,.chroma .vc,.chroma .vg,.chroma .vi,.chroma .vm{color:#953800}.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .se,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .s1{color:#0a3069}.chroma .ss{color:#032f62}.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1,.chroma .cs,.chroma .cp,.chroma .cpf{color:#57606a}.chroma .gd{color:#82071e;background-color:#ffebe9}.chroma .ge{color:#1f2328}.chroma .gi{color:#116329;background-color:#dafbe1}.chroma .go{color:#1f2328}.chroma .gl{text-decoration:underline}[data-theme=dark] .chroma .k,[data-theme=dark] .chroma .kd,[data-theme=dark] .chroma .kn,[data-theme=dark] .chroma .kp,[data-theme=dark] .chroma .kr{color:#c678dd}[data-theme=dark] .chroma .kc,[data-theme=dark] .chroma .kt,[data-theme=dark] .chroma .nc,[data-theme=dark] .chroma .nb,[data-theme=dark] .chroma .bp{color:#e5c07b}[data-theme=dark] .chroma .n,[data-theme=dark] .chroma .na,[data-theme=dark] .chroma .no,[data-theme=dark] .chroma .ni,[data-theme=dark] .chroma .ne,[data-theme=dark] .chroma .nl,[data-theme=dark] .chroma .nn,[data-theme=dark] .chroma .nx,[data-theme=dark] .chroma .py,[data-theme=dark] .chroma .nt,[data-theme=dark] .chroma .nv,[data-theme=dark] .chroma .vc,[data-theme=dark] .chroma .vg,[data-theme=dark] .chroma .vi,[data-theme=dark] .chroma .vm{color:#e06c75}[data-theme=dark] .chroma .nd{color:#61afef}[data-theme=dark] .chroma .nf{color:#61afef;font-weight:700}[data-theme=dark] .chroma .fm{color:#56b6c2;font-weight:700}[data-theme=dark] .chroma .s,[data-theme=dark] .chroma .sa,[data-theme=dark] .chroma .sb,[data-theme=dark] .chroma .sc,[data-theme=dark] .chroma .dl,[data-theme=dark] .chroma .sd,[data-theme=dark] .chroma .s2,[data-theme=dark] .chroma .se,[data-theme=dark] .chroma .sh,[data-theme=dark] .chroma .si,[data-theme=dark] .chroma .sx,[data-theme=dark] .chroma .sr,[data-theme=dark] .chroma .s1,[data-theme=dark] .chroma .ss{color:#98c379}[data-theme=dark] .chroma .m,[data-theme=dark] .chroma .mb,[data-theme=dark] .chroma .mf,[data-theme=dark] .chroma .mh,[data-theme=dark] .chroma .mi,[data-theme=dark] .chroma .il,[data-theme=dark] .chroma .mo{color:#d19a66}[data-theme=dark] .chroma .o,[data-theme=dark] .chroma .ow,[data-theme=dark] .chroma .or{color:#56b6c2}[data-theme=dark] .chroma .p{color:#abb2bf}[data-theme=dark] .chroma .c,[data-theme=dark] .chroma .ch,[data-theme=dark] .chroma .cm,[data-theme=dark] .chroma .c1,[data-theme=dark] .chroma .cs,[data-theme=dark] .chroma .cp,[data-theme=dark] .chroma .cpf{color:#7f848e}[data-theme=dark] .chroma .gd{color:#e06c75}[data-theme=dark] .chroma .gi{color:#98c379;font-weight:700}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .chroma .k,:root:not([data-theme=light]) .chroma .kd,:root:not([data-theme=light]) .chroma .kn,:root:not([data-theme=light]) .chroma .kp,:root:not([data-theme=light]) .chroma .kr{color:#c678dd}:root:not([data-theme=light]) .chroma .kc,:root:not([data-theme=light]) .chroma .kt,:root:not([data-theme=light]) .chroma .nc,:root:not([data-theme=light]) .chroma .nb,:root:not([data-theme=light]) .chroma .bp{color:#e5c07b}:root:not([data-theme=light]) .chroma .n,:root:not([data-theme=light]) .chroma .na,:root:not([data-theme=light]) .chroma .no,:root:not([data-theme=light]) .chroma .ni,:root:not([data-theme=light]) .chroma .ne,:root:not([data-theme=light]) .chroma .nl,:root:not([data-theme=light]) .chroma .nn,:root:not([data-theme=light]) .chroma .nx,:root:not([data-theme=light]) .chroma .py,:root:not([data-theme=light]) .chroma .nt,:root:not([data-theme=light]) .chroma .nv,:root:not([data-theme=light]) .chroma .vc,:root:not([data-theme=light]) .chroma .vg,:root:not([data-theme=light]) .chroma .vi,:root:not([data-theme=light]) .chroma .vm{color:#e06c75}:root:not([data-theme=light]) .chroma .nd{color:#61afef}:root:not([data-theme=light]) .chroma .nf{color:#61afef;font-weight:700}:root:not([data-theme=light]) .chroma .fm{color:#56b6c2;font-weight:700}:root:not([data-theme=light]) .chroma .s,:root:not([data-theme=light]) .chroma .sa,:root:not([data-theme=light]) .chroma .sb,:root:not([data-theme=light]) .chroma .sc,:root:not([data-theme=light]) .chroma .dl,:root:not([data-theme=light]) .chroma .sd,:root:not([data-theme=light]) .chroma .s2,:root:not([data-theme=light]) .chroma .se,:root:not([data-theme=light]) .chroma .sh,:root:not([data-theme=light]) .chroma .si,:root:not([data-theme=light]) .chroma .sx,:root:not([data-theme=light]) .chroma .sr,:root:not([data-theme=light]) .chroma .s1,:root:not([data-theme=light]) .chroma .ss{color:#98c379}:root:not([data-theme=light]) .chroma .m,:root:not([data-theme=light]) .chroma .mb,:root:not([data-theme=light]) .chroma .mf,:root:not([data-theme=light]) .chroma .mh,:root:not([data-theme=light]) .chroma .mi,:root:not([data-theme=light]) .chroma .il,:root:not([data-theme=light]) .chroma .mo{color:#d19a66}:root:not([data-theme=light]) .chroma .o,:root:not([data-theme=light]) .chroma .ow,:root:not([data-theme=light]) .chroma .or{color:#56b6c2}:root:not([data-theme=light]) .chroma .p{color:#abb2bf}:root:not([data-theme=light]) .chroma .c,:root:not([data-theme=light]) .chroma .ch,:root:not([data-theme=light]) .chroma .cm,:root:not([data-theme=light]) .chroma .c1,:root:not([data-theme=light]) .chroma .cs,:root:not([data-theme=light]) .chroma .cp,:root:not([data-theme=light]) .chroma .cpf{color:#7f848e}:root:not([data-theme=light]) .chroma .gd{color:#e06c75}:root:not([data-theme=light]) .chroma .gi{color:#98c379;font-weight:700}}