article{--line-height:1.58em}article>*{margin:0}article>:not(:first-child):not(.comments-hr):not(#hn-comments){margin-block-start:calc(var(--line-height) * .7)}article>h1:not(:first-child),article>h2:not(:first-child),article>h3:not(:first-child),article>h4:not(:first-child),article>h5:not(:first-child),article>h6:not(:first-child){margin-block-start:2em}article h1.blog-heading{font-size:2em;border-bottom:1px solid var(--color-divider);margin:0}article h1.blog-heading>.flex-spacer{min-width:1em}article h1.blog-heading>time{text-align:right;display:block;font-size:.6em;color:var(--color-text-secondary);margin-top:.2em}article h2{font-size:1.6em}article .header-anchor{transition:opacity .2s ease-out}article .header-anchor:not(:hover){opacity:.3}article li,article p{line-height:var(--line-height)}article aside{padding:1em;border-radius:5px;border:1px solid var(--color-accent);background-color:var(--color-background-alt);font-size:.9rem}article aside::before{content:'Note:';display:block;color:var(--color-accent);margin-bottom:.5em}article blockquote,article img,article pre>code{display:block;margin-left:auto;margin-right:auto;max-width:100%}article code{font:.8rem Consolas,'Lucida Console',Monaco,'Courier New';padding:.1em .25em;border-radius:.25em;background-color:var(--color-background-alt);border:1px solid var(--color-divider)}article :not(pre)>code{color:var(--color-accent)}article pre>code{padding:1rem;overflow:auto;font-size:.8rem}article blockquote{padding:1rem;opacity:.8;background:var(--color-background-alt);border-left:3px solid var(--color-accent)}article blockquote p:first-child{margin-top:0}article blockquote p:last-child{margin-bottom:0}article img{border-radius:5px}#hn-comments{margin-top:60px}#hn-comments .comment-heading{border-top:1px solid var(--color-accent);padding-top:10px}#hn-comments .comment-heading{margin:36px 0 18px}#hn-comments>.comment-heading:first-child{margin-top:0}#hn-comments .text{color:var(--color-text-secondary)}#hn-comments .text a{word-break:break-all}#hn-comments .children{margin:30px 0}#hn-comments .children{padding-left:var(--comments-padding)}#hn-comments .me{color:var(--color-text)}#hn-comments img.me{display:inline-block;vertical-align:bottom;margin-right:5px;width:1em;height:1em;border-radius:0}*{box-sizing:border-box}html{color:var(--color-text);background-color:var(--background-color);font-size:18px}body{font-family:var(--content-font);background-color:var(--color-background);margin:0}h1,h2,h3,h4,h5,h6{font-family:var(--title-font)}h1{padding:.25em 0}hr{border-color:var(--color-divider);margin:22px 0}table{margin:0 auto;border-collapse:collapse}td,th{border:1px solid var(--color-divider);padding:.5em}.main{max-width:800px;margin:0 auto;padding:var(--section-padding);animation:fade-in .3s ease-out}@keyframes fade-in{0%{opacity:0}100%{opacity:1}}a{text-decoration:none}a[href]{color:var(--color-accent)}a:visited{color:var(--color-accent)}footer{padding:var(--section-padding)}.flex-spacer{flex-grow:1;flex-shrink:1}html{--color-text:rgba(0, 0, 0, 0.9);--color-text-secondary:rgba(0, 0, 0, 0.7);--color-background:rgb(255, 255, 255);--color-background-alt:rgb(219, 219, 219);--color-divider:rgba(0, 0, 0, 0.3);--color-accent:#009d8f;--section-padding:2rem;--comments-padding:20px;--title-font:"Trebuchet MS","Lucida Grande","Lucida Sans Unicode","Lucida Sans",Tahoma,sans-serif;--content-font:Cambria,Georgia,serif}@media (max-width:480px){html{--section-padding:1rem;--comments-padding:10px}}@media (prefers-color-scheme:dark){html{--color-text:rgba(255, 255, 255, 0.9);--color-text-secondary:rgba(255, 255, 255, 0.5);--color-background:rgb(20, 20, 20);--color-background-alt:rgb(0, 0, 0);--color-divider:rgba(255, 255, 255, 0.3);--color-accent:#03dac6}}.bio img{border-radius:5px;vertical-align:bottom}.bio a[href="/about"]{white-space:nowrap}.bio .icon-link{transition:opacity .2s ease-out}.bio .icon-link:not(:hover){opacity:.8}@media (min-width:1200px){.bio{position:fixed;right:calc(50% + 400px);top:var(--section-padding);max-width:300px;padding-left:.5rem;text-align:right}}@media (max-width:1200px){.bio{max-width:800px;margin:0 auto;padding:var(--section-padding);background-color:var(--color-background-alt);text-align:center}}.home-link{font-size:1.2rem;margin-bottom:2.4rem}svg.github,svg.home,svg.link,svg.linkedin,svg.printer,svg.rss{width:1.5em;height:1.5em;vertical-align:middle}svg.github *,svg.home *,svg.printer *,svg.rss *{fill:var(--color-text);stroke:var(--color-text)}svg.linkedin #path14{fill:var(--color-text)}svg.linkedin #path28,svg.linkedin #path30{fill:var(--color-background)}.post-preview{display:flex;align-items:center;padding:.5rem 1rem;font-family:var(--title-font);transition:background-color .1s ease-out}.post-preview:hover{background-color:var(--color-background-alt)}.post-preview{border:1px solid var(--color-divider);border-radius:5px}.post-preview>.flex-spacer{min-width:1em}.post-preview>.details{text-align:right;white-space:nowrap}.post-preview .external-site,.post-preview .read-length,.post-preview time{color:var(--color-text-secondary);flex-shrink:0}.post-preview .external-site,.post-preview .read-length{font-style:italic;font-size:.8em}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}@media (prefers-color-scheme:dark){.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.namespace{opacity:1}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.inserted{color:green}}.main>img.me{margin:0;margin-right:1rem;border-radius:5px;float:left;width:auto}article.main>h1{margin:0}ul.post-list,ul.tags{list-style-type:none;margin:0;padding:0}.tags-container{font-family:var(--title-font);line-height:1.5em}.tags-label{margin-right:1em}ul.tags{display:inline-flex;flex-wrap:wrap}ul.post-list{list-style-type:none;margin:0;padding:0}ul.post-list>li{display:block}ul.post-list>li:not(:first-of-type){margin-top:1em}