/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace,monospace;font-size:1em;}a{background-color:rgba(0,0,0,0)}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0;}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px;}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}footer.footer-page{margin-top:28px;text-align:center;font-size:.8em}.captioned-gist{width:54%}.captioned-gist .gist{display:inline-block}@media (max-width: 900px){.captioned-gist{width:100%}.captioned-gist .gist{display:block}.captioned-gist .margin-toggle:checked+.marginnote{width:90%;margin:1rem 7.5% 1rem 2.5%}}.outer-gist{width:54%}.outer-gist .gist{display:inline-block}@media (max-width: 900px){.outer-gist{width:100%}.outer-gist .gist{display:block}}.gist-meta a:link{text-shadow:inherit;background:none}html{font-size:15px;line-height:inherit}header{width:750px;font-size:1.2rem;display:flex;flex-direction:row;padding:1rem 0 1rem 0;border-bottom:#111;border-bottom-style:solid;border-bottom-width:1px}nav{display:flex;align-items:center;justify-content:flex-end;margin-left:auto}nav>a:not(:last-child){margin-right:1.2rem}body{width:87.5%;margin-left:auto;margin-right:auto;padding-left:12.5%;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";letter-spacing:.03em;background-color:#fffff8;color:#111;max-width:1400px;counter-reset:sidenote-counter}@media (prefers-color-scheme: dark){header{border-bottom:#ddd;border-bottom-style:solid;border-bottom-width:1px}body{background-color:#151515;color:#ddd}}h1{width:70%;font-weight:400;margin-top:3rem;margin-bottom:1rem;font-size:3.2rem;line-height:1.4}h1>code{font-size:3.2rem}h2{font-style:italic;font-weight:400;margin-top:2.1rem;margin-bottom:1.4rem;font-size:2.2rem;line-height:1.2}h2>code{font-size:2.2rem}h3{font-style:italic;font-weight:400;font-size:1.7rem;margin-top:2rem;margin-bottom:1.4rem;line-height:1.2}h3>code{font-size:1.4rem}h2.narrow,h3.narrow{width:55%}.post-title{margin-bottom:3.1rem}.post-title small{font-size:90%}.post-title .tags>*:first-child{margin-left:.25rem}.post-title .tags>*:not(:last-child){margin-right:.25rem}hr{display:block;height:1px;width:55%;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}p.subtitle{font-style:italic;margin-top:1rem;margin-bottom:1rem;font-size:1.8rem;display:block;line-height:1}.danger{color:red}article{padding:5rem 0rem}p,dl,ol,ul{font-size:1.15rem;line-height:1.9rem}p{margin-top:1.4rem;margin-bottom:1.4rem;padding-right:0;vertical-align:baseline}div.epigraph{margin:5em 0}div.epigraph>blockquote{margin-top:3em;margin-bottom:3em}div.epigraph>blockquote,div.epigraph>blockquote>p{font-style:italic}div.epigraph>blockquote>footer{font-style:normal}div.epigraph>blockquote>footer>cite{font-style:italic}blockquote{font-size:1.4rem}blockquote p{width:55%;margin-right:40px}blockquote footer{width:55%;font-size:1.1rem;text-align:right}div.main-content>p,div.main-content>details>p,div.main-content>footer,div.main-content>table,div.main-content>details>table{width:55%}div.main-content>dl,div.main-content>ol,div.main-content>ul{width:50%;-webkit-padding-start:5%}dt:not(:first-child),li:not(:first-child){margin-top:.25rem}figure{padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;max-width:55%;-webkit-margin-start:0;-webkit-margin-end:0;margin:0 0 1.5em 0}figcaption{float:right;clear:right;margin-top:0;margin-bottom:0;font-size:1.1rem;line-height:1.6;vertical-align:baseline;position:relative;max-width:40%}figure.fullwidth figcaption{margin-right:24%}a:link,a:visited{color:inherit}.no-tufte-underline:link{background:unset;text-shadow:unset}a:link,.tufte-underline,.hover-tufte-underline:hover{text-decoration:none;background:-webkit-linear-gradient(#fffff8, #fffff8),-webkit-linear-gradient(#fffff8, #fffff8),-webkit-linear-gradient(currentColor, currentColor);background:linear-gradient(#fffff8, #fffff8),linear-gradient(#fffff8, #fffff8),linear-gradient(currentColor, currentColor);-webkit-background-size:.05em 1px,.05em 1px,1px 1px;-moz-background-size:.05em 1px,.05em 1px,1px 1px;background-size:.05em 1px,.05em 1px,1px 1px;background-repeat:no-repeat,no-repeat,repeat-x;text-shadow:.03em 0 #fffff8,-.03em 0 #fffff8,0 .03em #fffff8,0 -.03em #fffff8,.06em 0 #fffff8,-.06em 0 #fffff8,.09em 0 #fffff8,-.09em 0 #fffff8,.12em 0 #fffff8,-.12em 0 #fffff8,.15em 0 #fffff8,-.15em 0 #fffff8;background-position:0% 93%,100% 93%,0% 93%}table{border-collapse:collapse}th{padding:.5rem}td{padding:.5rem;text-align:center}@media (prefers-color-scheme: dark){a:link,.tufte-underline,.hover-tufte-underline:hover{text-shadow:.03em 0 #151515,-.03em 0 #151515,0 .03em #151515,0 -.03em #151515,.06em 0 #151515,-.06em 0 #151515,.09em 0 #151515,-.09em 0 #151515,.12em 0 #151515,-.12em 0 #151515,.15em 0 #151515,-.15em 0 #151515}}a:link::selection,a:link::-moz-selection{text-shadow:.03em 0 #b4d5fe,-.03em 0 #b4d5fe,0 .03em #b4d5fe,0 -.03em #b4d5fe,.06em 0 #b4d5fe,-.06em 0 #b4d5fe,.09em 0 #b4d5fe,-.09em 0 #b4d5fe,.12em 0 #b4d5fe,-.12em 0 #b4d5fe,.15em 0 #b4d5fe,-.15em 0 #b4d5fe;background:#b4d5fe}img{max-width:100%}.sidenote,.marginnote{float:right;clear:right;margin-right:-60%;width:50%;margin-top:.7rem;margin-bottom:0;font-size:.95rem;line-height:1.5;vertical-align:baseline;position:relative}.sidenote-number{counter-increment:sidenote-counter}.sidenote-number:after,.sidenote:before{position:relative;vertical-align:baseline}.sidenote-number:after{content:counter(sidenote-counter);font-size:1rem;top:-.5rem;left:.1rem}.sidenote:before{content:counter(sidenote-counter) " ";font-size:1rem;top:-.5rem}blockquote .sidenote,blockquote .marginnote{margin-right:-82%;min-width:59%;text-align:left}div.fullwidth,table.fullwidth{width:100%}div.table-wrapper{overflow-x:auto}.nobr{white-space:nowrap}code,pre>code{font-family:Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:1.15rem;line-height:1.42;-webkit-text-size-adjust:100%;}p>code{white-space:nowrap}.marginnote>code,.sidenote>code,.marginnote>.nobr>code,.sidenote>.nobr>code,.marginnote>a>code,.sidenote>a>code,td>a>code,td>code{font-size:.95rem}pre{width:54%}pre>code{margin-left:2%;padding-top:.5rem;padding-bottom:.5rem;overflow-x:auto;display:block}pre.fullwidth{width:90%}.fullwidth{max-width:90%;clear:both}span.newthought{font-variant:small-caps;font-size:1.2em}input.margin-toggle{display:none}label.sidenote-number{display:inline-block;max-height:2rem;}label.margin-toggle:not(.sidenote-number){display:none}.iframe-wrapper{position:relative;padding-bottom:56.25%;padding-top:25px;height:0}.iframe-wrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%}.yt-video{aspect-ratio:16/9;width:55%}@media (max-width: 1200px){body{width:90%;padding-left:5%}div.main-content>p,div.main-content>details>p,div.main-content>footer,div.main-content>table,div.main-content>details>table{width:64%}div.main-content>dl,div.main-content>ol,div.main-content>ul{width:60%;-webkit-padding-start:4%}blockquote p{width:64%}blockquote footer{width:64%}pre{width:64%}figure{max-width:64%}h2.narrow,h3.narrow{width:64%}.yt-video{width:64%}.sidenote,.marginnote{margin-right:-60%;width:50%}}@media (max-width: 1050px){body{padding-left:0%}div.main-content>p,div.main-content>details>p,div.main-content>footer,div.main-content>table,div.main-content>details>table{width:68%}div.main-content>dl,div.main-content>ol,div.main-content>ul{width:65%;-webkit-padding-start:3%}blockquote p{width:68%}blockquote footer{width:68%}pre{width:68%}pre>code{font-size:1rem}figure{max-width:68%}h2.narrow,h3.narrow{width:68%}.yt-video{width:68%}.sidenote,.marginnote{margin-right:-50%;width:40%}}@media (max-width: 900px){header{width:100%}h1{width:100%}body{width:90%;padding-left:5%;padding-right:5%}hr,div.main-content>p,div.main-content>details>p,div.main-content>footer,div.main-content>table,div.main-content>details>table{width:100%}.yt-video{width:100%}pre{width:97%}pre>code{font-size:.95rem}div.main-content>dl,div.main-content>ol,div.main-content>ul{width:90%}figure{max-width:90%}figcaption,figure.fullwidth figcaption{margin-right:0%;max-width:none}blockquote{margin-left:1.5em;margin-right:0em}blockquote p,blockquote footer{width:100%}label.margin-toggle:not(.sidenote-number){display:inline;font-size:1.15rem}.sidenote,.marginnote{display:none}.margin-toggle:checked+.sidenote{display:block;float:left;left:1rem;clear:both;width:95%;margin:1rem 2.5%;position:relative}.margin-toggle:checked+.marginnote::not(.figcaption){display:block;float:left;left:1rem;clear:both;width:95%;margin:1rem 2.5%;position:relative}.margin-toggle:checked+.marginnote.figcaption{display:block;width:95%;margin:1rem 2.5%;float:unset;clear:unset}label{cursor:pointer}div.table-wrapper,table{width:85%}img{width:100%}}@media (max-width: 475px){header{font-size:1rem}h1{width:100%}nav>a:not(:last-child){margin-right:.6rem}pre>code{font-size:.95rem}.yt-video{width:100%}}