*,:before,:after{box-sizing:border-box}html{text-size-adjust:none}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin-block-end:0}ul[role=list],ol[role=list]{list-style:none}body{min-height:100vh;line-height:1.5}h1,h2,h3,h4,button,input,label{line-height:1.1}h1,h2,h3,h4{text-wrap:balance}a{text-decoration-skip-ink:auto;text-decoration:none}a:hover{text-decoration:underline}img,picture{max-width:100%;display:block}input,button,textarea,select{font:inherit}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}@font-face{font-family:open sans;src:url(../fonts/OpenSans-Light.woff2?v=1.101)format("woff2");font-weight:300;font-style:normal}@font-face{font-family:open sans;src:url(../fonts/OpenSans-LightItalic.woff2?v=1.101)format("woff2");font-weight:300;font-style:italic}@font-face{font-family:open sans;src:url(../fonts/OpenSans-Regular.woff2?v=1.101)format("woff2");font-weight:400;font-style:normal}@font-face{font-family:open sans;src:url(../fonts/OpenSans-Italic.woff2?v=1.101)format("woff2");font-weight:400;font-style:italic}@font-face{font-family:open sans;src:url(../fonts/OpenSans-SemiBold.woff2?v=1.101)format("woff2");font-weight:600;font-style:normal}@font-face{font-family:open sans;src:url(../fonts/OpenSans-SemiBoldItalic.woff2?v=1.101)format("woff2");font-weight:600;font-style:italic}@font-face{font-family:open sans;src:url(../fonts/OpenSans-Bold.woff2?v=1.101)format("woff2");font-weight:700;font-style:normal}@font-face{font-family:open sans;src:url(../fonts/OpenSans-BoldItalic.woff2?v=1.101)format("woff2");font-weight:700;font-style:italic}@font-face{font-family:open sans;src:url(../fonts/OpenSans-ExtraBold.woff2?v=1.101)format("woff2");font-weight:800;font-style:normal}@font-face{font-family:open sans;src:url(../fonts/OpenSans-ExtraBoldItalic.woff2?v=1.101)format("woff2");font-weight:800;font-style:italic}body>header{color:#f5f5f5;background:#5e81ac;height:200px}body>header .container{text-align:center;max-width:1000px;margin:0 auto}body>header #top-row{justify-content:space-between;display:flex}body>header #top-row nav li{margin:0 10px;display:inline-block}body>header #top-row img{width:50px;height:50px}body>header #middle-row{height:70px}body>header a{color:#fff}body>header nav a{padding:5px 9px}body>header nav a:hover{background:#00000021;text-decoration:none}body>header h1{text-shadow:0 0 6px #466891;margin-bottom:12px}body>header .separator{background:#ca2f3e;width:50px;height:3px;margin:0 10px;display:inline-block}body>header .tags{float:right;margin-top:15px;padding-right:20px;font-size:12px;font-style:italic}body>header .tags svg{fill:#fff;vertical-align:middle;margin-right:5px;line-height:14px}body>header .tags ul{margin:0;padding:0;list-style-type:none;display:inline-block}body>header .tags li{display:inline-block}body>header .tags li:not(:last-child):after{content:", "}#home{background-color:#fff;border:1px solid #0000001a;margin:3em 0;padding:40px;display:inline-block}.post code{color:#4c566a;background:#eceff4;border-radius:4px;padding:2px 4px;font-family:courier,monospace}.post .qcode{background:#f9fafb;border:1px solid #d8dee9;border-radius:5px;margin:2em -20px;padding:0;font-size:13px;overflow-x:auto}.post .qcode header{background:#f1f3f6;border-bottom:1px solid #d8dee9;padding:10px 20px;font-size:1.1em}.post .qcode header img{vertical-align:middle;height:2em;margin-right:20px;display:inline-block}.post .qcode>pre{padding:3px 6px}.post .qcode code{background:0 0;border-radius:0;padding:0;line-height:19.5px}.post .qcode table{width:100%;margin:10px 0}.post .qcode .lnt{color:#b0b7c6;font-family:open sans,sans-serif;font-size:13px;line-height:19.5px;display:block}.post .qcode pre{margin:0}.post .qcode .lnt{border-left:2px solid #f9fafb}.post .qcode .hl>.lnt{border-left:2px solid #5596e6}.post .qcode .hl>.lnt,.post .qcode .line.hl{background:#dde9f6}.post .qcode .chroma .lnt{margin-right:0}.post figure{margin:2em auto;display:table}.post figure img{box-shadow:0 0 20px #e5e9f0}.post figure figcaption{text-align:center;color:#8793ab;margin-top:5px}.post .footnotes{counter-reset:counter-footnotes;border-top:1px solid #d8dee9;margin:40px -40px 0;padding:40px 40px 0;list-style-type:none}.post .footnotes li{margin-bottom:2px}.post .footnotes li:before{content:"Footnote " counter(counter-footnotes,decimal)": ";counter-increment:counter-footnotes;color:#3b566a;font-size:12px}.post .footnotes li:target{background-color:#ffc}.post p+h2,.post ul+h2,.post ol+h2,.post figure+h2,.post pre+h2,.post div+h2{margin-top:2em}.post p+h3,.post ul+h3,.post ol+h3,.post figure+h3,.post pre+h3,.post div+h3{margin-top:1.2em}.post table:not(.lntable){border-collapse:collapse;text-align:left;margin:.2em auto}.post table:not(.lntable) tr{border-bottom:1px solid}.post table:not(.lntable) th,.post table:not(.lntable) td{border:1px solid #d3d3d3;padding:.25rem .75rem}.post table:not(.lntable) thead{background:#f5f5f5;border-bottom:2px solid #a2a6af}.post .last-modified{color:#67778b;margin-top:-1em;margin-bottom:2em;font-style:italic}@media (width>=1500px){#TableOfContents{position:sticky;top:1em}#TableOfContents ul{margin:0;padding-left:0;list-style-type:"•";list-style-position:outside}#TableOfContents ul li{color:#5e81ac;margin-bottom:.4em;padding-left:5px}#TableOfContents>ul{background:#f4f5f7;border:1px solid #d8dee9;border-left-color:#e8eef9;border-top-right-radius:1em;border-bottom-right-radius:1em;width:230px;padding:1em;position:absolute;top:0;left:calc(100% + 40px)}#TableOfContents>ul:before{content:"Table of Contents";color:#8d919a;margin-bottom:1em;font-size:1.2em;display:block}#TableOfContents>ul ul{margin-top:.4em;padding-left:1em;font-size:.9em}}@media (width<=1500px){#TableOfContents{display:none}}.bg,.chroma{color:#272822;background-color:#fafafa}.chroma .err{color:#dd0015}.chroma .lnlinks{color:inherit;outline:none;text-decoration:none}.chroma .lntd{vertical-align:top;border:0;margin:0;padding:0}.chroma .lntable{border-spacing:0;border:0;margin:0;padding:0}.chroma .hl{background-color:#e1e1e1}.chroma .lnt,.chroma .ln{white-space:pre;user-select:none;color:#7f7f7f;margin-right:.4em;padding:0 .4em}.chroma .line{display:flex}.chroma .k,.chroma .kc,.chroma .kd{color:#0099b6}.chroma .kn{color:#ca2f3e}.chroma .kp,.chroma .kr,.chroma .kt{color:#0099b6}.chroma .n{color:#333}.chroma .na{color:#71aa00}.chroma .nb,.chroma .bp{color:#333}.chroma .nc{color:#71aa00}.chroma .no{color:#0099b6}.chroma .nd{color:#71aa00}.chroma .ni{color:#333}.chroma .ne,.chroma .nf{color:#71aa00}.chroma .fm,.chroma .nl,.chroma .nn{color:#333}.chroma .nx{color:#71aa00}.chroma .py{color:#333}.chroma .nt{color:#ca2f3e}.chroma .nv,.chroma .vc,.chroma .vg,.chroma .vi,.chroma .vm{color:#333}.chroma .l{color:#ae81ff}.chroma .ld,.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2{color:#d88200}.chroma .se{color:#8045ff}.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .s1,.chroma .ss{color:#d88200}.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo{color:#ae81ff}.chroma .o,.chroma .ow{color:#ca2f3e}.chroma .p{color:#333}.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1,.chroma .cs,.chroma .cp,.chroma .cpf{color:#75715e}.chroma .ge{font-style:italic}.chroma .gs{font-weight:700}footer{color:#d2d2d2;background:#333;height:85px;padding:10px 0}footer .container{justify-content:space-between;max-width:1000px;margin:0 auto;padding:10px 0 0;display:flex}footer p{margin:0}footer a{color:#d2d2d2;text-decoration:underline #666}footer svg{fill:#d2d2d2;vertical-align:text-bottom;margin:0 1px}footer svg.heart{fill:#e9526b}html,body{width:100%;min-height:100%;margin:0;padding:0}body{color:#333;background:#eceff4;font-family:open sans,sans-serif;font-size:14px;line-height:1.5}main{color:#4b505a;max-width:1000px;min-height:calc(100vh - 285px);margin:0 auto;position:relative}main a,main a:visited{color:#ca2f3e}main h2{margin-bottom:20px;font-size:20px;font-weight:600}main h2:after{content:"";border-bottom:3px solid #ca2f3e;width:40px;margin-top:10px;display:block}main h2 a,main h2 a:visited,main h3 a,main h3 a:visited{color:#d8dee9;margin-left:5px;transition:color .15s ease-in-out}main h2:hover a,main h2:hover a:visited,main h3:hover a,main h3:hover a:visited{color:#ca2f3e}#body{background:#fff;border-left:1px solid #d8dee9;border-right:1px solid #d8dee9;width:100%;min-height:calc(100vh - 285px);padding:40px;display:inline-block}#body>:first-child{margin-top:0}ul.posts{padding-left:0}ul.posts li{margin-bottom:5px;list-style-type:none}ul.posts time{text-align:right;width:180px;margin-right:15px;font-size:.85em;display:inline-block}ul.posts div{vertical-align:top;width:calc(100% - 200px);display:inline-block}ul.posts p{color:#707684;margin-top:0;font-size:13px}.personal-links{padding-left:0}.personal-links li{margin-right:10px;list-style-type:none;display:inline-block}.personal-links a{color:#5e81ac;border:1px solid #d8dee9;border-radius:4px;padding:5px 10px;line-height:24px;display:inline-block}.personal-links a:visited{color:#5e81ac}.personal-links a:hover{color:#fff;background-color:#5e81ac;text-decoration:none;box-shadow:0 0 10px #e5e9f0}.personal-links a:hover svg{fill:#fff}.personal-links svg{vertical-align:middle;fill:#5e81ac;margin-right:5px}kbd{color:#333;white-space:nowrap;background-color:#eee;border:1px solid #b4b4b4;border-radius:3px;padding:1px 4px;font-size:12px;font-weight:700;display:inline-block;box-shadow:0 1px 1px #0003,inset 0 2px #ffffffb3}