@font-face{font-display:swap;font-family:source-sans-pro;font-stretch:normal;font-style:normal;font-weight:400;src:url(/fonts/open-sans-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:source-sans-pro;font-stretch:normal;font-style:normal;font-weight:700;src:url(/fonts/open-sans-bold.woff2) format("woff2")}@font-face{font-display:swap;font-family:"source-serif-pro";font-stretch:normal;font-style:italic;font-weight:400;src:url(/fonts/open-source-serif-italic.woff2) format("woff2")}*,:after,:before{box-sizing:border-box}blockquote,body,dd,dl,fieldset,figure,h1,h2,h3,h4,p{margin:0}fieldset{padding:0}ol[role=list],ul[role=list]{list-style:none}body{min-height:100vh;text-rendering:optimizeSpeed}a:not([class]){text-decoration-skip-ink:auto}img,picture{display:block;max-width:100%}button,input,select,textarea{font:inherit}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition:none!important;transition-duration:.01ms!important}}code[class*=language-],pre[class*=language-]{color:#d6deeb;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;text-align:left;white-space:pre;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:1em;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{background:rgba(29,59,83,.99);text-shadow:none}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{background:rgba(29,59,83,.99);text-shadow:none}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{margin:.5em 0;overflow:auto;padding:1em}:not(pre)>code[class*=language-],pre[class*=language-]{background:var(--code-background-color);border:1px solid var(--code-border-color);color:#fff}:not(pre)>code[class*=language-]{border-radius:.3em;padding:.1em;white-space:normal}.token.cdata,.token.comment,.token.prolog{color:#6d8484;font-style:italic}.token.punctuation{color:#c792ea}.namespace{color:#b2ccd6}.token.deleted{color:rgba(239,83,80,.56);font-style:italic}.token.property,.token.symbol{color:#80cbc4}.token.keyword,.token.operator,.token.tag{color:#7fdbca}.token.boolean{color:#ff5874}.token.number{color:#f78c6c}.token.builtin,.token.char,.token.constant,.token.function{color:#82aaff}.token.doctype,.token.selector{color:#c792ea;font-style:italic}.token.attr-name,.token.inserted{color:#addb67;font-style:italic}.language-css .token.string,.style .token.string,.token.entity,.token.string,.token.url{color:#addb67}.token.atrule,.token.attr-value,.token.class-name{color:#ffcb8b}.token.important,.token.regex,.token.variable{color:#d6deeb}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}pre{color-scheme:dark}pre[class*=language-]{border-radius:5px;font-size:90%}@media only screen and (max-width:660px){pre[class*=language-]{border-radius:0;margin-left:calc(var(--medium-spacing)*-1);margin-right:calc(var(--medium-spacing)*-1)}}@media only screen and (max-width:450px){pre[class*=language-]{border-radius:0;margin-left:calc(var(--spacing)*-1);margin-right:calc(var(--spacing)*-1)}}:root{--tiny-spacing:calc(var(--spacing)/8);--small-spacing:calc(var(--spacing)/2);--semi-medium-spacing:calc(var(--spacing)*1.5);--medium-spacing:calc(var(--spacing)*2);--largeish-spacing:calc(var(--spacing)*3);--large-spacing:calc(var(--spacing)*4);--max-content-width:40rem;color-scheme:light;--text-color:#121212;--background-color:#fcfcfc;--footer-text-color:#f5f3f3;--footer-background-color:#171717;--primary-color:#0074bd;--primary-background-color:#e4f6fe;--primary-background-active-color:#b3defa;--link-color:#3219bc;--inline-code-background-color:#e1e5ff;--code-background-color:#011627;--comment-background-color:#f6f6ff;--comment-border-width:2px;--header-line-height:1.1;--paragraph-line-height:1.32;--spacing:1rem;--hover-outline-width:3px;--active-outline-width:2px}::selection{background-color:hsla(0,0%,7%,.99);color:hsla(0,9%,96%,.99)}footer ::selection,pre ::selection{background-color:hsla(0,9%,96%,.99);color:hsla(0,0%,7%,.99)}html[data-theme=DARK]{color-scheme:dark;--text-color:#c7c7c4;--background-color:#141415;--footer-text-color:#c7c7c4;--footer-background-color:#09090a;--primary-color:#1a77ad;--primary-background-color:var(--footer-background-color);--primary-background-active-color:#02304b;--link-color:#94a2c7;--inline-code-background-color:#0a0a0a;--code-background-color:#0a0a0a;--code-border-color:#3e3e3e;--comment-background-color:#161616;--comment-border-width:1px;--header-line-height:1.15;--paragraph-line-height:1.4;--spacing:1.2rem;--hover-outline-width:3px;--active-outline-width:1.5px}html[data-theme=DARK] ::selection{background-color:hsla(0,0%,84%,.99);color:rgba(6,6,6,.99)}html[data-theme=DARK] svg{filter:invert(85%)}@media (prefers-color-scheme:dark){:root{color-scheme:dark;--text-color:#c7c7c4;--background-color:#141415;--footer-text-color:#c7c7c4;--footer-background-color:#09090a;--primary-color:#1a77ad;--primary-background-color:var(--footer-background-color);--primary-background-active-color:#02304b;--link-color:#94a2c7;--inline-code-background-color:#0a0a0a;--code-background-color:#0a0a0a;--code-border-color:#3e3e3e;--comment-background-color:#161616;--comment-border-width:1px;--header-line-height:1.15;--paragraph-line-height:1.4;--spacing:1.2rem;--hover-outline-width:3px;--active-outline-width:1.5px}::selection{background-color:hsla(0,0%,84%,.99);color:rgba(6,6,6,.99)}svg{filter:invert(85%)}html[data-theme=LIGHT]{color-scheme:light;--text-color:#121212;--background-color:#fcfcfc;--footer-text-color:#f5f3f3;--footer-background-color:#171717;--primary-color:#0074bd;--primary-background-color:#e4f6fe;--primary-background-active-color:#b3defa;--link-color:#3219bc;--inline-code-background-color:#e1e5ff;--code-background-color:#011627;--comment-background-color:#f6f6ff;--comment-border-width:2px;--header-line-height:1.1;--paragraph-line-height:1.32;--spacing:1rem;--hover-outline-width:3px;--active-outline-width:2px}html[data-theme=LIGHT] ::selection{background-color:hsla(0,0%,7%,.99);color:hsla(0,9%,96%,.99)}html[data-theme=LIGHT] svg{filter:none}html[data-theme=LIGHT] footer ::selection,html[data-theme=LIGHT] pre ::selection{background-color:hsla(0,9%,96%,.99);color:hsla(0,0%,7%,.99)}}html{font-family:source-sans-pro,sans-serif;font-style:normal;line-height:var(--paragraph-line-height)}cite,em{font-family:"source-serif-pro",serif;font-style:italic}b,h1,h2,h3{font-weight:700}h1,h2,h3{line-height:1.05;outline:none;word-wrap:break-word}h2,h3{margin-bottom:var(--spacing);margin-top:var(--largeish-spacing)}li.postlist-item h2{font-weight:500;margin-bottom:var(--small-spacing);margin-top:var(--spacing)}li.postlist-item p{margin-bottom:var(--tiny-spacing)}li.postlist-item h2 a{text-decoration:underline}li.postlist-item time{font-size:90%;font-style:italic}p.postlist-preamble{margin-bottom:var(--largeish-spacing)}h1{font-size:2.5rem;letter-spacing:-.6px}h2{font-size:1.5rem;letter-spacing:-.3px}h3{font-size:1.1rem}h2 span,h3 span{font-weight:700;line-height:var(--header-line-height)}html{background-color:var(--background-color);color:var(--text-color);scroll-behavior:smooth;transition:background-color .2s,color .1s}body,html{scrollbar-gutter:both}body{display:flex;flex-direction:column}main{flex-grow:1;margin:auto;width:var(--max-content-width)}p{margin-bottom:var(--spacing)}li{margin-top:var(--tiny-spacing)}button{background-color:transparent;border:1.5px solid;border-radius:2px;color:inherit;outline-offset:20px;padding:.75rem 1rem;transition:color .1s,background-color .1s,border-color .1s,outline .1s,outline-offset .1s}button:hover{background-color:var(--primary-background-active-color);border:1.5px solid var(--primary-color);color:var(--text-color);cursor:pointer}button:focus{outline:5px solid var(--primary-color)}button:focus,input:focus,textarea:focus{outline-offset:7px}button[aria-pressed=true]{background-color:var(--footer-text-color);border:1.5px solid var(--footer-background-color);color:var(--footer-background-color);cursor:auto}main:not(.tmpl-post) h1{margin-bottom:var(--medium-spacing)}code,pre{border-radius:5px;font-size:90%}.header-anchor{position:relative}.anchor{left:-1.5rem;position:absolute;top:.24rem}.overflow-max-content-width{height:auto;left:calc(var(--max-content-width)*-1*1.4/2 + 50%);margin:var(--medium-spacing) 0;position:relative;width:calc(var(--max-content-width)*1.4)}@media only screen and (max-width:1100px){.overflow-max-content-width{left:calc(var(--max-content-width)*-1*1.2/2 + 50%);width:calc(var(--max-content-width)*1.2)}}@media only screen and (max-width:900px){.overflow-max-content-width{left:0;width:100%}}@media only screen and (max-width:600px){.overflow-max-content-width{left:0;width:unset}}@media only screen and (max-width:620px){main{margin:0;max-width:unset;padding:0 var(--medium-spacing)}.post-content details,.post-content details[open],.post-content details[open] .details-content{width:auto}.anchor{left:-1.2rem}}@media only screen and (max-width:850px){:root{font-size:100%}header nav,main{margin:0;padding:0 var(--medium-spacing);width:auto}}@media only screen and (max-width:450px){header nav,main{padding:0 var(--spacing)}form input{width:100%}.anchor{display:inline-block;left:unset;margin-left:var(--small-spacing);position:relative;top:unset}}@media only screen and (max-width:400px){ul{padding-left:var(--spacing)}}.script-disabled code{text-wrap:wrap}.script-disabled .hide-script-disabled{display:none}:not(pre)>code{background-color:var(--inline-code-background-color);padding:var(--tiny-spacing)}.loader{height:1rem;position:absolute;top:50%;transform:translateY(-50%);width:1rem;fill:currentColor}header{display:flex;height:4rem;margin-bottom:var(--medium-spacing);position:relative}header ul{display:flex;gap:var(--tiny-spacing);list-style:none;margin-left:-.5rem;padding:0}header a[href]{display:inline-block;display:flex;justify-content:center;padding:.5rem}header nav{align-items:center;display:flex;margin:auto;width:var(--max-content-width)}header nav .active{cursor:default;font-weight:700;pointer-events:none}header nav .active a[href]{text-decoration:none}footer{background-color:var(--footer-background-color);margin-top:var(--large-spacing);padding:var(--medium-spacing)}footer,footer a[href]{color:var(--footer-text-color)}footer a[href]:hover{color:var(--text-color)}.footer-wrapper{display:flex;flex-direction:column;gap:var(--medium-spacing);margin:auto;max-width:var(--max-content-width)}.button-group{align-items:center;display:flex;flex-wrap:wrap;gap:var(--small-spacing)}.social-media{display:flex;margin-left:-.5rem}.social-media a[href]{display:inline-block;display:flex;justify-content:center;padding:.25rem .5rem}footer nav{margin-top:calc(var(--medium-spacing)*-1)}ul.webring li{padding:var(--small-spacing)}@media only screen and (max-width:660px){.footer-wrapper{margin:0;width:auto}}@media only screen and (max-width:570px){.button-group{align-items:start;flex-direction:column}}a[href]{color:var(--text-color);outline-offset:12px;transition:background-color .2s;transition:color .2s,background-color .2s,outline .1s,outline-offset .1s}a[href]:hover{background-color:var(--primary-background-active-color);outline:var(--hover-outline-width) solid var(--primary-color);outline-offset:0;transition:color .2s,background-color .2s,outline .1s}a[href]:focus{outline:5px solid var(--primary-color);outline-offset:0}main a[href]:not(.back-to-top):not(.header-anchor),main a[href]:visited:not(.back-to-top):not(.header-anchor){color:var(--text-color)}:target{animation:highlight .7s;scroll-margin-top:3rem}@keyframes highlight{0%{outline:8px solid var(--primary-color);outline-offset:20px}70%{outline:8px solid var(--primary-color);outline-offset:5px}to{outline:8px solid transparent}}@media (prefers-reduced-motion:reduce){:target{animation:highlight-reduced .6s!important;outline-offset:10px}@keyframes highlight-reduced{0%{outline:8px solid transparent}20%{outline:8px solid var(--primary-color)}80%{outline:8px solid var(--primary-color)}to{outline:8px solid transparent}}}.skip-link-wrapper{background-color:var(--background-color);left:-10000px;padding:1rem;position:absolute;z-index:2}.skip-link-wrapper:focus-within{left:10%;position:absolute;top:50%;transform:translateY(-50%)}a[href].back-to-top{display:inline-block;margin-top:var(--medium-spacing)}@media only screen and (max-width:660px){.skip-link-wrapper:focus-within{left:var(--spacing)}}h2 a,h2 a code,h3 a{color:inherit;line-height:var(--header-line-height);text-decoration:none}aside{border:1.5px solid var(--text-color);border-radius:2px;border-top:5px solid;margin:var(--medium-spacing) 0;padding:var(--spacing)}aside :last-child{margin-bottom:0}aside a{word-wrap:break-word}blockquote{border-left:8px solid var(--text-color);font-style:italic;margin-bottom:var(--spacing);padding-left:var(--spacing)}.tree{margin:var(--medium-spacing) 0}.tree,.tree ul{list-style:none;padding-left:0;padding-top:0;position:relative}.tree ul{margin-left:var(--large-spacing)}.tree ul:before{border-left:1.5px solid var(--text-color);bottom:0;content:" ";height:calc(100% + var(--tiny-spacing));left:0;position:absolute;width:1px}.tree ul li{padding-top:var(--small-spacing)}.tree span{display:inline-block;padding:5px;text-align:center;width:7rem}.ax-node,.tree span{border:1.5px solid var(--text-color);border-radius:2px}.ax-node{margin:var(--spacing) 0}.ax-node p{border-bottom:1.5px solid var(--text-color);margin-bottom:0}.ax-node dl,.ax-node p{padding:var(--small-spacing) var(--spacing)}table{border-collapse:collapse;border-spacing:0;margin:var(--spacing) 0}td,th{border:1.5px solid var(--text-color);padding:var(--small-spacing)}caption{font-weight:700;margin-bottom:var(--small-spacing);text-align:left}.tags{display:flex;flex-wrap:wrap;font-size:90%;gap:var(--small-spacing);list-style:none;padding-left:0}.tags a[href]{background-color:var(--footer-background-color);border-radius:20px;color:var(--footer-text-color);outline-offset:16px;padding:0 var(--small-spacing);text-decoration:none}.tags a[href]:hover{color:var(--text-color)}.tags a[href]:focus{outline-offset:2px}html[data-theme=DARK] .tags a[href]{border:1.5px solid}html[data-theme=DARK] .tags a[href]:hover{border-color:transparent}@media (prefers-color-scheme:dark){.tags a[href]{border:1.5px solid}.tags a[href]:hover{border-color:transparent}html[data-theme=LIGHT] .tags a[href]{border:none}}.post-content details{margin:var(--medium-spacing) 0;transition:border-color .2s,width .1s}.post-content details summary{border:1.5px solid var(--text-color);border-radius:2px;border-top:5px solid;outline-offset:32px;padding:var(--spacing);transition:background-color .2s,border-color .2s,color .1s,outline .1s,outline-offset .1s}.post-content details[open]{border:1.5px solid var(--text-color);border-top:0}.post-content details[open] summary{border-left:none;border-right:none}.post-content details{width:55ch}.post-content .details-grouper{list-style:none;margin:var(--medium-spacing) 0;padding:0}.post-content .details-grouper details{margin:var(--spacing) 0}.post-content details[open]{width:70ch}.post-content details[open] .details-content{margin:var(--small-spacing) 0;padding:var(--small-spacing) var(--spacing);width:70ch}.post-content details[open] .details-content :last-child{margin-bottom:0}.post-content summary:hover{background-color:var(--primary-background-active-color);cursor:pointer}@media only screen and (max-width:620px){.post-content details,.post-content details[open],.post-content details[open] .details-content{width:auto}}pre[class*=language-]{margin-bottom:var(--semi-medium-spacing);margin-top:var(--semi-medium-spacing);outline-offset:30px;transition:background-color .2s,color .1s,outline .1s,outline-offset .1s}.post-content summary:focus,pre:focus-visible{outline:5px solid var(--primary-color);outline-offset:5px}dt{font-weight:700;margin-top:var(--tiny-spacing)}dd{padding-left:var(--spacing)}hr{margin:var(--largeish-spacing) 0}.postlist{list-style:none;padding:0}.postlist li{border-left:3px solid var(--text-color);display:flex;flex-direction:column;margin-bottom:var(--spacing);padding-left:var(--spacing);position:relative}.postlist li a[href]{font-size:100%}.postlist li a[href]:after{bottom:0;content:"";display:block;left:0;position:absolute;right:0;top:0}.post-header{margin-bottom:var(--medium-spacing)}img{border:2px solid var(--text-color);border-radius:5px}ul.comments{list-style:none;padding-left:0}.blog-comment-wrapper{border-left-width:0;font-style:inherit;padding-left:0}.blog-comment{background-color:var(--comment-background-color);border:var(--comment-border-width) solid var(--text-color);border-radius:5px;padding:var(--spacing)}ul.comments li.comment-list-item:not(:first-child){margin-top:var(--semi-medium-spacing)}ul.comments .comment-header{display:flex;flex-wrap:wrap;gap:var(--small-spacing);justify-content:flex-start;margin-bottom:var(--spacing)}.comments p:last-child{margin-bottom:0}.comments cite{font-family:inherit;font-style:normal;font-weight:700}.comments ul.subcomments{list-style:none;margin-left:var(--semi-medium-spacing)}.comments ul.subcomments li{margin-top:var(--spacing)}.comments .reply-container{display:inline-block;margin-top:var(--spacing)}.comments details[open]{width:100%}.comments summary{background-color:var(--inline-code-background-color);border:2px solid var(--text-color);font-size:90%;outline-offset:12px;padding:var(--small-spacing);transition:background-color .1s,outline .1s,outline-offset .1s}.comments summary:focus{outline:5px solid var(--primary-color);outline-offset:5px}.comments summary:hover{background-color:var(--primary-background-active-color);cursor:pointer}.comments form{padding:var(--spacing)}input{width:20rem}input,textarea{border:1.5px solid var(--text-color);border-radius:2px;display:block;margin-bottom:var(--spacing);outline-offset:15px;padding:var(--small-spacing);transition:color .1s,background-color .1s,border-color .1s,outline .1s,outline-offset .1s}input:focus,textarea:focus{outline:5px solid var(--primary-color);outline-offset:4px}form.comment-form textarea{height:10rem;width:100%}form.comment-form button{margin-top:var(--spacing)}dialog{background-color:var(--comment-background-color);border:1px solid var(--text-color);border-radius:5px;color:var(--text-color);width:var(--max-content-width)}dialog h1{border-radius:1px;font-size:1.5rem;margin-bottom:var(--spacing);outline-offset:15px;transition:outline .15s,outline-offset .15s}dialog h1:focus{outline:5px solid var(--primary-color);outline-offset:5px}dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}button[data-dialog]{position:relative}.CtxtMenu_Menu{background-color:var(--background-color)!important;box-shadow:0 2px 5px grey!important;color:var(--text-color)!important}math{font-style:inherit;font-weight:inherit}.qed{float:right}sup.footnote{font-size:75%;line-height:0;padding-left:.2em}#LinkContainer{overflow-wrap:break-word}#LinkContainer,sup.footnote{display:none}#LinkContainer ol{margin-bottom:0;padding-left:2em}#LinkContainer h2{margin-top:0}@media print{:root{--website-side-padding:0rem;--website-content-padding:1rem}*{background-color:#fff;color:#000}h1{margin-top:var(--large-spacing)}body{contain:size}dd,dt,h1,h2,h3,h4,h5,h6,li,p{break-inside:avoid}a[href="#Skip"],footer,header{display:none}main a[href]:not(.header-anchor,.back-to-top):after{content:" [" attr(href) "]"}#LinkContainer{display:block;margin-bottom:0}sup.footnote{display:inline}.linklist main a[href]:after{content:""}pre[class*=language-]{border:1px solid #000}pre[class*=language-] code{text-wrap:wrap}.tags a{border:1px solid #000}}@media (prefers-contrast:more){.theme-picker{display:none}a[href]:hover{outline-offset:2px;outline-width:4px}summary:hover{outline:4px solid currentColor;outline-offset:6px;transition:background-color .2s,outline .1s}}