.back-to-top[data-astro-cid-wlspcwf4]{display:none;position:fixed;bottom:20px;right:20px;background-color:var(--bg-color-header);font-family:Source Sans Pro,sans-serif;color:#fff;padding:10px 15px;border:none;border-radius:5px;cursor:pointer;opacity:.8;z-index:1}/*!
* Source Sans Pro https://fonts.adobe.com/fonts/source-sans
* Copyright 2010, 2012, 2014 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name ‘Source’.
* This Font Software is licensed under the SIL Open Font License, Version 1.1  (http://scripts.sil.org/OFL).
*/@font-face{font-family:Source Sans Pro;font-style:italic;font-weight:200;font-display:swap;src:url(/font/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSds18S0xR41.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Source Sans Pro;font-style:italic;font-weight:300;font-display:swap;src:url(/font/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkids18S0xR41.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:300;font-display:swap;src:url(/font/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu3cOWxw.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/font/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7lujVj9w.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}/*!
 *  Hack typeface https://github.com/source-foundry/Hack
 *  License: https://github.com/source-foundry/Hack/blob/master/LICENSE.md
 */@font-face{font-family:Hack;src:url(/font/hack-regular-subset.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{font-size:62.5%;color-scheme:dark light;--paragraph-width: 700px;--spacing-left: calc(50% - 350px) ;--white: rgb(251, 251, 251);--off-white: rgb(233, 233, 233);--lighter-grey: rgb(215, 215, 215);--light-grey: rgb(198, 198, 198);--grey: rgb(135, 135, 135);--grey-transparent: rgb(82, 82, 82, .5);--dark-grey: rgb(38, 38, 38);--darker-grey: rgb(27, 27, 30);--black: rgb(21, 20, 25);--really-black: #000;--orange: #f68a22;--code-font: Hack, monospace;--code-weight: 200;--code-size: 1.8rem}:root,html.dark{--bg-color: var(--darker-grey);--bg-color-header: var(--black);--bg-color-code: var(--really-black);--font-color: var(--white);--font-color-soft: var(--off-white);--scroll-thumb-color: var(--grey);--blockquote-border-color: var(--grey);--blockquote-box-shadow-color: 6px 6px var(--dark-grey);--signature-image: url(/img/signature-white.svg);--invert: 1}@media (prefers-color-scheme: light){:root{--bg-color: var(--white);--bg-color-header: var(--dark-grey);--bg-color-code: var(--really-black);--font-color: var(--dark-grey);--font-color-soft: var(--grey);--scroll-thumb-color: var(--light-grey);--blockquote-border-color: var(--grey);--blockquote-box-shadow-color: 13px 3px var(--off-white);--signature-image: url(/img/signature-black.svg);--invert: 0}}html.light{--bg-color: var(--white);--bg-color-header: var(--dark-grey);--bg-color-code: var(--really-black);--font-color: var(--dark-grey);--font-color-soft: var(--grey);--scroll-thumb-color: var(--light-grey);--blockquote-border-color: var(--light-grey);--blockquote-box-shadow-color: 13px 3px var(--lighter-grey);--signature-image: url(/img/signature-black.svg);--invert: 0}*{box-sizing:border-box}html,body{margin:0}body{background-color:var(--bg-color);color:var(--font-color);font-family:Source Sans Pro,sans-serif;font-weight:300;font-size:24px;line-height:36px;padding-bottom:92px}body>header{padding:16px;display:flex;justify-content:space-between;gap:1rem;background-color:var(--bg-color-header);align-items:center;color:var(--white);border-bottom:1px solid var(--orange)}.light body>header{border-bottom:3px solid var(--orange)}a{color:var(--font-color);text-decoration-thickness:from-font;text-underline-position:from-font;transition-property:color;transition-duration:.3s}a:hover{color:var(--orange)}body>header a{color:var(--white)}input{color:var(--font-color)}.logo{flex-grow:1}.logo a{display:block}.logo img{width:32px;display:block}main{display:flex;flex-direction:column;margin-top:32px;gap:32px}main>header{display:flex;flex-direction:column;gap:32px;margin:0 8px}.meta{grid-area:meta;font-weight:200;font-style:italic;font-size:16px;line-height:16px;text-align:center}header img{grid-area:image;display:block;border:none}h1{text-align:center;font-weight:400;font-size:40px;line-height:48px}@media (min-width: 600px){h1{font-size:64px;line-height:80px}}h1,h2,h3,h4,h5,h6,blockquote{white-space:unset;text-wrap:balance}h1,h2,h3,h4,h5,h6,p,table{margin:0}main>p:first-child{margin-top:32px}h2{font-weight:600;font-size:32px}h3{font-weight:600;font-size:28px}code,pre{font-family:var(--code-font);font-weight:var(--code-weight);font-size:var(--code-size)}h2 code{font-size:26px}h3 code{font-size:24px}img{max-width:100%;height:auto}main>figure{margin-top:0;text-align:center}main>figure img{width:100%;height:auto;aspect-ratio:2 / 1}main>figure>figcaption{font-size:18px;line-height:16px;font-style:italic}main>figure>figcaption a{text-decoration:none}main>figure>figcaption a:hover{text-decoration:underline}ul,ol{margin:0}ul.index{margin-top:32px;display:flex;flex-direction:column;gap:16px;padding:0;list-style:none}ul.index li{margin:0 8px 0 0;display:flex;justify-content:space-between;align-content:flex-start;flex-direction:column}ul.index li a{text-decoration:none;text-underline-position:under}ul.index li a:hover{text-decoration:underline}ul.index li time{flex-shrink:0;font-style:italic;font-weight:200;font-size:16px}blockquote{text-align:center;margin:8px}blockquote p{border:1px solid var(--blockquote-border-color);box-shadow:0 0 var(--blockquote-box-shadow-color);padding:2rem;margin:0;font-style:italic;font-weight:200}@media (min-width: 900px){blockquote p{display:inline-block;width:fit-content;min-width:700px}}footer{margin-top:128px;text-align:center;display:flex;flex-direction:column;gap:16px}.signature{height:256px;background-image:var(--signature-image);background-repeat:no-repeat;background-position:center center;background-size:auto 100px}h2,h3,p,ul,ol,section,table,figure{margin-left:8px;margin-right:8px}@media (min-width: 900px){main h2,main h3,main h4,main>p,main section,main table,main ul,main ol,main .expressive-code,main figure{max-width:var(--paragraph-width);margin-left:var(--spacing-left);margin-right:0}pre{padding-left:var(--spacing-left)}}h1 a,h2 a,h3 a,h4 a{text-decoration:none}.home-links ul{padding:0;list-style:none;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;row-gap:24px}.home-links li{flex:1 1 50%;min-width:350px}.home-links ul li>a[title]{display:flex;align-items:center;gap:24px}.home-links ul li>a[title] svg{display:block;height:4rem;width:4rem;fill:var(--font-color);transition-property:fill;transition-duration:.3s}.home-links ul li>a[title]:hover svg{fill:var(--orange)}footer .row{display:flex;flex-direction:row;justify-content:center;align-items:center;gap:4rem;font-style:italic}footer .row>*{height:3rem;width:3rem}footer .row a svg{display:block;width:100%;height:100%;fill:var(--font-color-soft);transition:ease-out .5s}footer .row a svg:hover{fill:var(--orange)}footer h2{font-size:1.8rem}.light img[alt=clean-code],.light img[alt=value-of-abstractions]{filter:invert(68%)}main a[href*="//"]:not([href*="webpro.nl"]):not([rel=me]):after{position:relative;content:"";opacity:.5;display:inline-block;margin-left:.25em;width:.8em;height:.8em;transform:translateY(.1em);background-image:url(/img/external-link.svg);transition:opacity .2s;filter:brightness(0) invert(var(--invert))}main a[href*="//"]:not([href*="webpro.nl"]):not([rel=me]):hover:after{opacity:.9}:root{--red: rgb(255, 89, 82);--yellow: rgb(230, 192, 41);--green: rgb(83, 194, 43)}pre{margin-top:0;padding-right:10px;overflow-x:auto;overflow-y:hidden}pre.non-terminal{padding-top:16px;padding-bottom:16px}pre{scrollbar-color:transparent}pre::-webkit-scrollbar{background-color:transparent}pre::-webkit-scrollbar-thumb{background:var(--scroll-thumb-color);height:6px;border-radius:6px}pre::-webkit-scrollbar-track{background-color:transparent}code>pre{line-height:16px}:where(p,ul) code,pre{color:var(--font-color)}pre{padding-top:16px;padding-bottom:16px}.terminal pre{line-height:1.3;padding-left:16px;padding-right:16px}.terminal code .user,.terminal code .branch{color:var(--green)}.terminal code .dir,.terminal code .prompt{color:var(--yellow)}.terminal .header{display:flex;justify-content:space-between;align-items:center;height:28px;background-color:var(--dark-grey);border-top-right-radius:6px;border-top-left-radius:6px}.terminal .title{font-family:var(--code-font);font-size:14px;color:#ddd}.terminal .buttons{display:flex}.terminal .buttons~.buttons{visibility:hidden}.terminal .button{height:11px;width:11px;margin-left:8px;border-radius:50%;background-color:var(--red)}.terminal .minimize{background-color:var(--yellow)}.terminal .zoom{background-color:var(--green)}.terminal pre{background-color:var(--bg-color-code);color:#fff;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.blink{background:#444;animation:blink 1s infinite}@keyframes blink{0%{opacity:0}40%{opacity:0}50%{opacity:1}90%{opacity:1}to{opacity:0}}#search-results{background-color:var(--bg-color-header);position:absolute;top:64px;right:0;font-size:1em;padding:1em;text-align:right;border-bottom:1px solid var(--lighter-grey);width:100%}#search-results ol{list-style:none}#search-results ol li{margin:.3em}input[data-astro-cid-otpdt6jm]{width:12ch;font-size:.8em;background-color:var(--bg-color);border:none;border-radius:20px;box-shadow:0 0 4px var(--font-color);position:relative;padding:4px 3px 4px 1em;transition:width .3s}input[data-astro-cid-otpdt6jm]:focus{width:20ch}.js .theme-switch{display:initial}label[data-astro-cid-g6q3pnbr]{display:none;width:53px;height:30px;background-color:var(--bg-color);border-radius:20px;position:relative;cursor:pointer;box-shadow:0 0 4px var(--font-color)}button[data-astro-cid-g6q3pnbr]{pointer-events:none;display:inline-block;width:24px;height:24px;background-color:var(--font-color);position:absolute;border:none;border-radius:14px;top:3px;left:3px;transition:.5s;transition-property:left}label[data-astro-cid-g6q3pnbr] button[data-astro-cid-g6q3pnbr][aria-checked=true]{left:50%}
