@font-face{font-family:lora;font-style:italic;font-weight:400 700;font-display:swap;src:url(/fonts/lora-italic-latin-ext.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:lora;font-style:italic;font-weight:400 700;font-display:swap;src:url(/fonts/lora-italic-latin.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:lora;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/lora-normal-latin-ext.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:lora;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/lora-normal-latin.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'source sans 3';font-style:italic;font-weight:200 900;font-display:swap;src:url(/fonts/source-sans-3-italic-latin-ext.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'source sans 3';font-style:italic;font-weight:200 900;font-display:swap;src:url(/fonts/source-sans-3-italic-latin.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'source sans 3';font-style:normal;font-weight:200 900;font-display:swap;src:url(/fonts/source-sans-3-normal-latin-ext.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'source sans 3';font-style:normal;font-weight:200 900;font-display:swap;src:url(/fonts/source-sans-3-normal-latin.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--text:#222;--title:#2b2b2b;--link:#2a5b94;--link-underline:color-mix(in srgb, var(--link) 30%, transparent);--highlight:color-mix(in srgb, var(--link) 14%, transparent);--selection:color-mix(in srgb, var(--link) 20%, transparent);--list-link:#252525;--meta:#767676;--muted:#818285;--rule:#e8e8e8;--border:#b1b1b1;--quote-border:#ccc;--toc-title:#3d3d3d;--bg:transparent;--input-border:#d8d8d8;--input-text:#666;--input-bg:#fefefe;--placeholder:#aaa;--surface:#fff;--popover-bg:#fff;--popover-border:#e2e2e2;--popover-shadow:0 4px 18px rgba(0, 0, 0, .07);color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{font-size:62.5%}body{font-family:'source sans 3',sans-serif;font-size:1.75rem;line-height:1.6;color:var(--text);background:var(--bg);width:100%;margin:0 auto;padding:0 16px;overflow-wrap:break-word}a{transition:color .15s ease,border-color .15s ease,text-decoration-color .15s ease,opacity .15s ease}@media(hover:none){a{-webkit-tap-highlight-color:transparent}a:active{opacity:.55;transition:none}main#content a:active{text-decoration-color:initial}}::selection{background:var(--selection)}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}@view-transition{navigation: auto;
    }header#banner{view-transition-name:banner}::view-transition-old(root),::view-transition-new(root){animation-duration:.25s}::view-transition-group(*.post-title){animation-duration:.35s;animation-timing-function:cubic-bezier(.2,.7,.2,1)}::view-transition-old(*.post-title),::view-transition-new(*.post-title){height:100%}::view-transition-group(lightbox-image){animation-duration:.3s;animation-timing-function:cubic-bezier(.2,.7,.2,1)}}:target{scroll-margin-top:1.5em}@media(prefers-reduced-motion:reduce){*,*::before,*::after,::backdrop{transition-duration:0s!important;animation-duration:0s!important;animation-delay:0s!important}}h2{font-size:2.1rem;padding-top:5px}strong,b{font-weight:500}::placeholder{color:var(--placeholder)}:focus-visible{outline:2px solid var(--link);outline-offset:2px}.skip-link{position:absolute;left:-9999px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link:focus{left:16px;top:8px;z-index:1;padding:4px 10px;color:var(--link);background:var(--surface)}header#banner{margin:25px 0 30px}header#banner h1,header#banner h2{padding-top:5px;font-family:lora,serif;font-weight:500;font-size:1.9rem;display:inline;margin:0 8px 0 0}header#banner a{color:var(--title);text-decoration:none;border-bottom:.5px solid var(--muted)}header#banner a:hover{border-bottom-color:var(--link)}main#content a{color:var(--link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;text-decoration-color:var(--link-underline)}main#content a:hover{text-decoration-color:initial}main#content h1,main#content h2,main#content h3,main#content h4,main#content h5,main#content h6{font-family:lora,serif;font-weight:500;margin-bottom:10px;line-height:1.4}main#content h3{font-size:1.85rem}main#content p,main#content li{text-wrap:pretty}main#content h1,main#content h2,main#content h3{text-wrap:balance}main#content article h2{margin-top:1.6em}main#content article h3{margin-top:1.4em}main#content h1+p,main#content h2+p,main#content h3+p,main#content h4+p,main#content h5+p,main#content h6+p{margin-top:10px}main#content p{margin:1em 0;hyphens:auto}main#content hr{height:1px;border:0;background:var(--rule)}main#content abbr{cursor:help}main#content ul{list-style-type:none;padding-left:1.35em}main#content ul li:before{content:'•';margin-left:-1em;position:absolute;opacity:.7}main#content ul li,main#content ol li{margin-bottom:.25em}main#content ol{padding-left:2.35rem}main#content img{max-width:100%;height:auto;margin:0 auto}main#content img:is([src$=".jpg"],[src$=".jpeg"]){background-color:var(--rule)}main#content img.img-reveal{animation:img-reveal .45s ease-out}@keyframes img-reveal{from{opacity:.3}}main#content figure{margin:16px 0}main#content figure img{display:block}main#content figure figcaption{font-size:.92em;font-style:italic;line-height:21px;text-align:center;margin-top:6.5px;padding:0 10px}main#content figure figcaption h4{font-style:normal;display:inline;margin:0}main#content figure figcaption p{display:inline;margin:0;padding-left:8px}main#content blockquote{margin:10px 40px 10px 8px;padding-left:16px;border-left:1px solid var(--quote-border)}main#content code,main#content pre{font-family:menlo,monospace}main#content code{font-size:.96em;padding:0 5px}main#content pre{display:block;overflow-x:auto;font-size:1.4rem;white-space:pre;margin:20px 0;padding:1.5rem;line-height:1.4}main#content pre code{padding:0}main#content .footnotes{font-size:.9em}main#content .footnotes p{margin:10px 0}main#content .footnotes li:target,main#content sup:target{border-radius:2px;animation:target-fade 2s ease-out .3s backwards}@keyframes target-fade{from{background-color:var(--highlight)}to{background-color:transparent}}main#content a.anchor{margin-left:.3em;color:var(--muted);text-decoration:none;opacity:0}main#content :hover>a.anchor{opacity:.6}main#content a.anchor:hover,main#content a.anchor:focus-visible{color:var(--link);opacity:1}@media(hover:none){main#content a.anchor{display:none}}.page-desc{opacity:.8}dialog.lightbox{padding:0;border:0;background:0 0;max-width:95vw;max-height:95vh;cursor:zoom-out}dialog.lightbox::backdrop{background:rgba(0,0,0,.85)}dialog.lightbox,dialog.lightbox::backdrop{opacity:0;transition:opacity .2s ease,overlay .2s allow-discrete,display .2s allow-discrete}dialog.lightbox[open],dialog.lightbox[open]::backdrop{opacity:1}@starting-style{dialog.lightbox[open],
    dialog.lightbox[open]::backdrop {
        opacity: 0;
    }
}dialog.lightbox img{display:block;max-width:95vw;max-height:95vh;scale:.97;transition:scale .2s ease}dialog.lightbox[open] img{scale:1}@starting-style{dialog.lightbox[open] img {
        scale: .97;
    }
}a.image-link{cursor:zoom-in}dialog.lightbox.vt,dialog.lightbox.vt::backdrop,dialog.lightbox.vt img{transition:none;scale:1}.note-popover{position:absolute;z-index:10;max-width:min(380px,calc(100vw - 32px));max-height:min(45vh,320px);overflow-y:auto;overscroll-behavior:contain;padding:10px 14px;font-size:.88em;line-height:1.5;color:var(--text);background:var(--popover-bg);border:1px solid var(--popover-border);border-radius:4px;box-shadow:var(--popover-shadow);opacity:0;translate:0 4px;transition:opacity .15s ease,translate .15s ease;pointer-events:none}.note-popover.visible{opacity:1;translate:0 0;pointer-events:auto}.note-popover p{margin:0}.note-popover p+p{margin-top:.5em}.note-popover a{color:var(--link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;text-decoration-color:var(--link-underline)}main#content .articles-list{font-size:1.9rem;line-height:1.55;margin-top:1em;padding-top:0}.lang-select{font-style:italic}main#content ul#posts{margin-top:0;padding:0}main#content .visually-hidden+ul#posts{padding-top:.3em}main#content ul#posts li{margin:9.5px 0;padding:0;line-height:1.45}main#content ul#posts li:before{content:''}main#content ul#posts li a,main#content .lang-select,main#content #toc a,main#content a.footnote-ref,main#content a.footnote-backref{text-decoration-color:transparent}main#content ul#posts li a{color:var(--list-link)}main#content ul#posts li a:hover{color:var(--link)}main#content ul#posts li a:hover,main#content .lang-select:hover,main#content #toc a:hover,main#content a.footnote-ref:hover,main#content a.footnote-backref:hover{text-decoration-color:initial}main#content header#post-header h1{display:block;width:fit-content;font-size:2.6rem;line-height:1.35;padding-top:15px;padding-bottom:2.5px}main#content header#post-header>div{display:block;font-size:.93em;color:var(--meta)}.info{margin-top:-5px;line-height:1.45}main#content #toc{border:1px solid var(--border);border-radius:1px;line-height:26px;margin:16px 0;padding:9px 14px}main#content #toc h4{font-size:1.06em;color:var(--toc-title);margin:0}main#content #toc nav#TableOfContents{margin-top:4px}main#content #toc nav#TableOfContents>ul,main#content #toc nav#TableOfContents>ol{margin-left:-40px}main#content #toc ul,main#content #toc ol{font-size:.98em;margin:0;padding:0 0 0 40px}main#content #toc ol{counter-reset:item}main#content #toc ol li{display:block}main#content #toc ol li:before{content:counters(item,".")". ";counter-increment:item}aside{display:block;margin:-.35rem 1.25rem 1.95rem;opacity:.85;font-family:lora,serif;font-size:1.15em;font-style:italic;line-height:1.3;letter-spacing:.3px}span.pull{font-size:1.35em;opacity:.4;margin-right:-5px}.separator{text-align:center;opacity:.5;margin-top:-.5em;margin-bottom:-.5em}.span-sep{padding-left:.25em;padding-right:.25em;font-size:1.5em}main#content{padding-bottom:5em}.text-404 h1,.text-404 p{opacity:.6}.ddg{display:flex;gap:6px;max-width:340px;margin-top:10px}.ddg-search,.ddg button{font:inherit;font-size:.95em;padding:8.5px;border:1px solid var(--input-border);color:var(--input-text);background-color:var(--input-bg)}.ddg-search{flex:1;min-width:0}.ddg button{padding:8.5px 14px;cursor:pointer}.ddg button:hover{color:var(--link)}.ddg-search:focus-visible{outline:1px solid var(--link);outline-offset:-1px;border-color:var(--link)}.ddg input[type=search]{-webkit-appearance:none;appearance:none}.ddg input[type=search]::-webkit-search-cancel-button{display:none}.ddg input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.cta{font-weight:500}@media(min-width:640px){body{font-size:1.8rem;width:600px;line-height:1.6}header#banner{margin:33px 0 30px}header#banner h1,header#banner h2{font-size:2rem}h2{font-size:2.2rem}main#content h3{font-size:1.9rem}main#content p{hyphens:manual}main#content article h2,main#content article h3{position:relative}main#content a.anchor{position:absolute;left:-1em;margin-left:0}main#content ul#posts li{margin:8.5px 0}main#content header#post-header h1{font-size:2.8rem}main#content pre{width:108%;margin-left:-3.8%;padding:1.5rem 2.2rem}}@media(prefers-color-scheme:dark){:root{--text:#e8e8e8;--title:#e0e0e0;--link:#86acd8;--list-link:#e4e4e4;--meta:#a7a7a7;--rule:#2c2c2c;--quote-border:#888;--toc-title:#d4d4d4;--bg:#121212;--input-border:#333;--input-text:#eee;--input-bg:#111;--placeholder:#555;--surface:#121212;--popover-bg:#1b1b1b;--popover-border:#333;--popover-shadow:0 4px 18px rgba(0, 0, 0, .5);color-scheme:dark}html{scrollbar-color:#6c6c6c #2e2e2e}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{filter:brightness(.8)contrast(1.2);transition:filter .3s ease}img:hover{filter:none}}.chroma{color:#f8f8f2;background-color:#272822}.chroma .err{color:#960050;background-color:#1e0010}.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;color:#7f7f7f}.chroma .ln{margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .k{color:#66d9ef}.chroma .kc{color:#66d9ef}.chroma .kd{color:#66d9ef}.chroma .kn{color:#f92672}.chroma .kp{color:#66d9ef}.chroma .kr{color:#66d9ef}.chroma .kt{color:#66d9ef}.chroma .na{color:#a6e22e}.chroma .nc{color:#a6e22e}.chroma .no{color:#66d9ef}.chroma .nd{color:#a6e22e}.chroma .ne{color:#a6e22e}.chroma .nf{color:#a6e22e}.chroma .nx{color:#a6e22e}.chroma .nt{color:#f92672}.chroma .l{color:#ae81ff}.chroma .ld{color:#e6db74}.chroma .s{color:#e6db74}.chroma .sa{color:#e6db74}.chroma .sb{color:#e6db74}.chroma .sc{color:#e6db74}.chroma .dl{color:#e6db74}.chroma .sd{color:#e6db74}.chroma .s2{color:#e6db74}.chroma .se{color:#ae81ff}.chroma .sh{color:#e6db74}.chroma .si{color:#e6db74}.chroma .sx{color:#e6db74}.chroma .sr{color:#e6db74}.chroma .s1{color:#e6db74}.chroma .ss{color:#e6db74}.chroma .m{color:#ae81ff}.chroma .mb{color:#ae81ff}.chroma .mf{color:#ae81ff}.chroma .mh{color:#ae81ff}.chroma .mi{color:#ae81ff}.chroma .il{color:#ae81ff}.chroma .mo{color:#ae81ff}.chroma .o{color:#f92672}.chroma .ow{color:#f92672}.chroma .c{color:#75715e}.chroma .ch{color:#75715e}.chroma .cm{color:#75715e}.chroma .c1{color:#75715e}.chroma .cs{color:#75715e}.chroma .cp{color:#75715e}.chroma .cpf{color:#75715e}.chroma .gd{color:#f92672}.chroma .ge{font-style:italic}.chroma .gi{color:#a6e22e}.chroma .gs{font-weight:700}.chroma .gu{color:#75715e}@media print{html{background-color:#fff!important;color:#000!important}body{font-family:Georgia,times new roman,serif!important;font-size:11pt!important;line-height:1.45!important}@page{size:A4;margin:1cm}*,*::before,*::after{box-sizing:border-box!important;word-wrap:break-word!important;overflow-wrap:break-word!important}main#content{width:100%!important;max-width:100%!important;margin:0!important;box-sizing:border-box!important}p{margin-bottom:0!important}aside{margin-top:12px!important}header#banner h1,header#banner h2{font-size:12pt!important}h1{font-size:18pt!important;margin-top:35px!important}h2{font-size:14pt!important;margin-top:25px!important}h3{font-size:12pt!important;margin-top:18px!important}h4{font-size:11pt!important;margin-top:8px!important}.articles-list{font-size:12pt!important;margin-top:18px!important}h1,h2,h3,h4{page-break-after:avoid!important}table,figure,blockquote{page-break-inside:avoid!important;max-width:100%!important}.note-popover{display:none!important}img,table{max-width:100%!important;height:auto!important}}