@font-face{font-family:Iowan Old Style;src:local("Iowan Old Style"),local("IowanOldStyle-Roman"),url(/fonts/IowanOldStyle/iowan-old-style_regular.woff2) format("woff2"),url(/fonts/IowanOldStyle/iowan-old-style_regular.woff) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Iowan Old Style;src:local("Iowan Old Style Italic"),local("IowanOldStyle-Italic"),url(/fonts/IowanOldStyle/iowan-old-style_italic.woff2) format("woff2"),url(/fonts/IowanOldStyle/iowan-old-style_italic.woff) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Iowan Old Style;src:local("Iowan Old Style Bold"),local("IowanOldStyle-Bold"),url(/fonts/IowanOldStyle/iowan-old-style_bold.woff2) format("woff2"),url(/fonts/IowanOldStyle/iowan-old-style_bold.woff) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Iowan Old Style;src:local("Iowan Old Style Bold Italic"),local("IowanOldStyle-BoldItalic"),url(/fonts/IowanOldStyle/iowan-old-style_bold-italic.woff2) format("woff2"),url(/fonts/IowanOldStyle/iowan-old-style_bold-italic.woff) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:IBM Plex Mono;src:local("IBM Plex Mono"),local("IBMPlexMono"),url(/fonts/IBMPlexMono/IBMPlexMono-Regular.ttf),format("truetype");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:IBM Plex Mono;src:local("IBM Plex Mono Italic"),local("IBMPlexMono-Italic"),url(/fonts/IBMPlexMono/IBMPlexMono-Italic.ttf) format("truetype");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:IBM Plex Mono;src:local("IBM Plex Mono Bold"),local("IBMPlexMono-Bold"),url(/fonts/IBMPlexMono/IBMPlexMono-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:IBM Plex Mono;src:local("IBM Plex Mono Bold Italic"),local("IBMPlexMono-BoldItalic"),url(/fonts/IBMPlexMono/IBMPlexMono-BoldItalic.ttf) format("truetype");font-weight:700;font-style:italic;font-display:block}:root{--background-color-dark:rgb(31,30,29);--background-color-light:#f8f3f3;--text-color-light:#081b06;--text-color-dark:#d1cfc5;--border-color-light:#ada7a7;--border-color-dark:#413f35;--link-color-light:#473481;--link-color-dark:#d3bca8;--code-background-light:#fffefe;--code-border-light:#ababab;--code-background-dark:#181713;--code-border-dark:#2e2a26;--code-color:var(--text-color);--code-color-dark:#fff6ea;--background-color:var(--background-color-light);--text-color:var(--text-color-light);--link-color:var(--link-color-light);--code-background:var(--code-background-light);--code-border:var(--code-border-light);--border-color:var(--border-color-light)}.light-only{display:initial}.dark-only{display:none}@media (prefers-color-scheme:dark){:root{--background-color:var(--background-color-dark);--text-color:var(--text-color-dark);--link-color:var(--link-color-dark);--code-background:var(--code-background-dark);--code-border:var(--code-border-dark);--border-color:var(--border-color-dark);--code-color:var(--code-color-dark)}.light-only{display:none}.dark-only{display:initial}}html{font-family:Iowan Old Style,"PT Serif",Garamond,Georgia,serif;background-color:var(--background-color);color:var(--text-color);font-size:18px}body{max-width:1200px;margin:auto;padding:1em 1em 4em}main{max-width:1024px}td.date{font-style:italic;white-space:nowrap}td{vertical-align:baseline}.homepage{position:fixed;left:0;right:0;top:0;bottom:0;padding:2em;overflow-y:scroll;a{color:var(--text-color);text-decoration:none}a:hover{text-decoration:underline}}nav{width:240px;height:320px;position:relative;margin-top:1.5em}nav>a{position:absolute}main header{height:12em;box-shadow:0 0 6px 0 rgba(0,0,0,.2);cursor:pointer}main header:active{box-shadow:0 0 8px 0 rgba(0,0,0,.3)}h1{font-weight:400;font-size:32px}.meta{margin:4em 1em 1em}.meta h1{margin:.5em 0;font-size:32px!important}.meta h1 a{color:var(--text-color);text-decoration:none}.meta h1 a:hover{text-decoration:underline}.post{margin:4em 1em 0;max-width:720px}.post h1{font-size:48px}h2{font-size:24px;padding-bottom:.25em;border-bottom:1px solid var(--border-color);margin-top:1.5em}h2,h3{font-weight:400;font-style:italic;letter-spacing:.02em}h3{font-size:22px;margin-bottom:0}h2>a,h3>a{text-decoration:none;color:var(--text-color)}span.anchor{display:inline-block;position:absolute;margin-left:-1em;visibility:hidden}h2#table-of-contents+ul li>a{color:var(--text-color);text-decoration:none}h2#table-of-contents+ul li>a:hover{text-decoration:underline}a:hover>span.anchor{visibility:visible}a{color:var(--link-color)}p{line-height:1.4em}.meta img,.post img{max-width:100%;display:inline-block;margin:auto;box-shadow:0 0 5px 0 rgba(0,0,0,.2)}hr{border-style:solid;border-width:.5px;color:var(--border-color)}code{font-size:14px;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace}li code,p code{background-color:var(--code-background);border:1px solid var(--code-border);border-radius:2px;padding:2px;margin:0 1px;color:var(--code-color)}li{line-height:1.4em}pre{background-color:var(--code-background);border:1px solid var(--code-border);border-radius:1px;overflow-x:auto;-moz-tab-size:2;tab-size:2}pre>code{display:block;width:max-content;padding:12px;line-height:20px}blockquote{border-left:.25em solid var(--border-color);margin-left:0;padding-left:1em}blockquote p{white-space:pre-line}em{letter-spacing:.025em}@media (max-width:600px){#wallpaper{display:none}}@media (max-width:800px){body{padding:0;margin-bottom:2em;-webkit-text-size-adjust:none}.meta,.post{margin:2em .5em}}@media print{:root{--background-color:#ffffff;--text-color:#000000}header{height:0;display:none}}pre{.tok-link{color:#af3a03}.tok-heading,.tok-link{text-decoration:underline}.tok-heading{font-weight:700;color:#b57614}.tok-emphasis{font-style:italic;color:#076678}.tok-strong{font-weight:700;color:#9d0006}.tok-strikethrough{text-decoration:line-through;color:#928374}.tok-keyword{color:#9d0006}.tok-atom,.tok-bool,.tok-labelName,.tok-url{color:#8f3f71}.tok-deleted,.tok-inserted,.tok-literal,.tok-string{color:#79740e}.tok-string2{color:#b57614}.tok-variableName.tok-definition,.tok-variableName.tok-local{color:#076678}.tok-macroName,.tok-variableName2{color:#427b58}.tok-className,.tok-namespace,.tok-typeName{color:#b57614}.tok-propertyName.tok-definition{color:#076678}.tok-comment,.tok-meta{color:#928374}.tok-invalid{color:#9d0006}.tok-blockComment,.tok-lineComment{color:#928374}.tok-docComment{color:#928374;font-style:italic}.tok-character,.tok-float,.tok-integer,.tok-number{color:#8f3f71}.tok-escape,.tok-regexp{color:#427b58}.tok-null,.tok-self{color:#8f3f71}.tok-operator{color:#af3a03}.tok-controlKeyword,.tok-definitionKeyword,.tok-moduleKeyword{color:#9d0006}.tok-brace,.tok-bracket,.tok-paren,.tok-punctuation,.tok-separator{color:#3c3836}.tok-tagName{color:#076678}.tok-attributeName{color:#af3a03}.tok-attributeValue{color:#79740e}.tok-function{color:#79740e;font-weight:700}.tok-constant{color:#8f3f71}.tok-special{color:#af3a03}.tok-changed,.tok-monospace{color:#427b58}}@media (prefers-color-scheme:dark){pre{.tok-link{color:#fe8019}.tok-heading,.tok-link{text-decoration:underline}.tok-heading{font-weight:700;color:#fabd2f}.tok-emphasis{font-style:italic;color:#83a598}.tok-strong{font-weight:700;color:#fb4934}.tok-strikethrough{text-decoration:line-through;color:#928374}.tok-keyword{color:#fb4934}.tok-atom,.tok-bool,.tok-labelName,.tok-url{color:#d3869b}.tok-deleted,.tok-inserted,.tok-literal,.tok-string{color:#b8bb26}.tok-string2{color:#fabd2f}.tok-variableName.tok-definition,.tok-variableName.tok-local{color:#83a598}.tok-macroName,.tok-variableName2{color:#8ec07c}.tok-className,.tok-namespace,.tok-typeName{color:#fabd2f}.tok-propertyName.tok-definition{color:#83a598}.tok-comment,.tok-meta{color:#928374}.tok-invalid{color:#fb4934}.tok-blockComment,.tok-lineComment{color:#928374}.tok-docComment{color:#928374;font-style:italic}.tok-character,.tok-float,.tok-integer,.tok-number{color:#d3869b}.tok-escape,.tok-regexp{color:#8ec07c}.tok-null,.tok-self{color:#d3869b}.tok-operator{color:#fe8019}.tok-controlKeyword,.tok-definitionKeyword,.tok-moduleKeyword{color:#fb4934}.tok-brace,.tok-bracket,.tok-paren,.tok-punctuation,.tok-separator{color:#ebdbb2}.tok-tagName{color:#83a598}.tok-attributeName{color:#fe8019}.tok-attributeValue{color:#b8bb26}.tok-function{color:#b8bb26;font-weight:700}.tok-constant{color:#d3869b}.tok-special{color:#fe8019}.tok-changed,.tok-monospace{color:#8ec07c}}}