code[class*="language-"],pre[class*="language-"]{color:var(--color-code-white);font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*="language-"]{padding:1rem;margin:0 0;overflow:auto}.token.punctuation{color:var(--color-code-light-grey)}.token.comment,.token.doctype{color:var(--color-code-comment)}.token.tag,.token.markup,.token.variable,.token.this,.token.selector,.token.key,.token.kirbytag-bracket,.token.prolog,.token.delimiter{color:var(--color-code-red)}.token.constant,.token.number,.token.boolean,.token.boolean.important,.token.attr-name,.token.kirbytag-attr,.token.kirbytag-name,.token.entity,.token.bold,.token.bold>.punctuation{color:var(--color-code-orange)}.token.keyword,.token.italic,.token.italic>.punctuation{color:var(--color-code-purple)}.token.function{color:var(--color-code-blue)}.token.operator,.token.title{color:var(--color-code-aqua)}.token.string,.token.attr-value,.token.attr-value .punctuation,.token.list.punctuation{color:var(--color-code-green)}.token.scope,.token.class-name,.token.property,.token.url{color:var(--color-code-yellow)}.token.title,.token.kirbytag-bracket,.token.list.punctuation{font-weight:700}.token.title .punctuation{color:inherit}.token.bold{font-weight:bold}.token.italic{font-style:italic}.codeblock{background:var(--color-black)}.codeblock figcaption{color:var(--color-code-white);padding:.5rem 1rem;font-family: var(--font-family-mono);border-bottom:1px solid #333}.basicLightbox{position:fixed;display:flex;justify-content:center;align-items:center;top:0;left:0;width:100%;height:100vh;background:rgba(0,0,0,.8);opacity:.01;transition:opacity .4s ease;z-index:1000;will-change:opacity}.basicLightbox--visible{opacity:1}.basicLightbox__placeholder{max-width:100%;-webkit-transform:scale(.9);transform:scale(.9);transition:-webkit-transform .4s ease;transition:transform .4s ease;transition:transform .4s ease , -webkit-transform .4s ease;z-index:1;will-change:transform}.basicLightbox__placeholder>iframe:first-child:last-child,.basicLightbox__placeholder>img:first-child:last-child,.basicLightbox__placeholder>video:first-child:last-child{display:block;position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;max-width:95%;max-height:95%}.basicLightbox__placeholder>iframe:first-child:last-child,.basicLightbox__placeholder>video:first-child:last-child{pointer-events:auto}.basicLightbox__placeholder>img:first-child:last-child,.basicLightbox__placeholder>video:first-child:last-child{width:auto;height:auto}.basicLightbox--iframe .basicLightbox__placeholder,.basicLightbox--img .basicLightbox__placeholder,.basicLightbox--video .basicLightbox__placeholder{width:100%;height:100%;pointer-events:none}.basicLightbox--visible .basicLightbox__placeholder{-webkit-transform:scale(1);transform:scale(1)}*{margin:0;padding:0}:root{--padding:1.5rem;--color-black:#000;--color-white:#fff;--color-grey:#777;--color-light:#efefef;--color-text:var(--color-black);--color-text-grey:var(--color-grey);--color-background:var(--color-white);--color-code-light-grey:#cacbd1;--color-code-comment:#a9aaad;--color-code-white:#c5c9c6;--color-code-red:#d16464;--color-code-orange:#de935f;--color-code-yellow:#f0c674;--color-code-green:#a7bd68;--color-code-aqua:#8abeb7;--color-code-blue:#7e9abf;--color-code-purple:#b294bb;--font-family-sans:-apple-system , BlinkMacSystemFont , "Segoe UI" , Roboto , Helvetica , Arial , sans-serif , "Apple Color Emoji" , "Segoe UI Emoji" , "Segoe UI Symbol";--font-family-mono:"SFMono-Regular" , Consolas , "Liberation Mono" , Menlo , Courier , monospace}html{font-family: var(--font-family-sans);color:var(--color-text);background:var(--color-background)}img{width:100%}body{padding:var(--padding);max-width:70rem;margin:0 auto}li{list-style:none}a{color:currentColor;text-decoration:none}button{font:inherit;background:none;border:0;color:currentColor;cursor:pointer}strong,b{font-weight:600}small{font-size:inherit;color:var(--color-text-grey)}.bg-light{background-color:var(--color-light)}.color-grey{color:var(--color-text-grey)}.header{position:relative;display:flex;flex-wrap:wrap;justify-content:space-between;margin-right:-1rem;margin-left:-1rem;margin-bottom:6rem}.logo{padding:1rem;display:flex;align-items:center;font-weight:600;cursor:pointer}.menu{display:flex}.menu a{padding:1rem;display:block}.menu a[aria-current]{text-decoration:underline}.social{display:flex;padding:0 .5rem}.social a{padding:1rem .5rem}.section{padding:3rem 0}.grid{--columns:12;--gutter:3rem;display:grid;grid-gap:var(--gutter);grid-template-columns:1fr}.grid>.column{margin-bottom:var(--gutter)}.autogrid{--gutter:3rem;--min:10rem;display:grid;grid-gap:var(--gutter);grid-template-columns:repeat(auto-fit,minmax(var(--min),1fr));grid-auto-flow:dense}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit;line-height:inherit}.text{line-height:1.5em}.text a{text-decoration:underline}.text :first-child{margin-top:0}.text :last-child{margin-bottom:0}.text p,.text ul,.text ol{margin-bottom:1.5rem}.text ul,.text ol{margin-left:1rem}.text ul p,.text ol p{margin-bottom:0}.text ul>li{list-style:disc}.text ol>li{list-style:decimal}.text ul ol,.text ul ul,.text ol ul,.text ol ol{margin-bottom:0}.text h1,.h1,.intro{font-size:2rem;margin-bottom:3rem;line-height:1.25em}.text h2,.h2{font-size:1.25rem;font-weight:600;margin-bottom:1.25rem}.text h3,.h3{font-weight:600}.text .codeblock{display:grid}.text code{font-family: var(--font-family-mono);font-size:1em;background:var(--color-light);padding:0 .5rem;display:inline-block;color:var(--color-black)}.text pre{margin:3rem 0;background:var(--color-black);color:var(--color-white);padding:1.5rem;overflow-x:scroll;overflow-y:hidden;line-height:1.5rem}.text pre code{padding:0;background:none;color:inherit}.text hr{margin:6rem 0}.text dt{font-weight:600}.text blockquote{font-size:1.25rem;line-height:1.325em;border-left:2px solid var(--color-black);padding-left:1rem;margin:3rem 0;max-width:25rem}.text blockquote footer{font-size:.875rem;font-style:italic}.text figure{margin:3rem 0}.text figcaption{padding-top:.75rem;color:var(--color-text-grey)}hr{border:0;background:currentColor;height:2px;width:1.5rem;margin:3rem auto}.align-center{text-align:center}.intro{max-width:40rem}.intro *:not(:last-child) {margin-bottom:1em}.cta{background:var(--color-black);color:var(--color-white);display:inline-flex;justify-content:center;padding:.75rem 1.5rem;border:4px solid var(--color-white);outline:2px solid var(--color-black)}.box{background:var(--color-light);padding:1.5rem;border:4px solid var(--color-white);outline:2px solid var(--color-light)}.video,.img{position:relative;display:block;--w:1;--h:1;padding-bottom: calc(100% / var(--w) * var(--h));background:var(--color-black)}.img img,.video iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;border:0}.img[data-contain] img{object-fit:contain}.img-caption,.video-caption{padding-top:.75rem;line-height:1.5em}.footer{padding:9rem 0 6rem;line-height:1.5em}.footer:before{content:"";display:block;width:1.5rem;height:2px;background:var(--color-black);margin-bottom:1.5rem}.footer h2{font-weight:600;margin-bottom:.75rem}.footer ul,.footer p{color:var(--color-text-grey)}.footer p{max-width:15rem}.footer a:hover{color:var(--color-text)}.map{--w:2;--h:1;padding-bottom: calc(100% / var(--w) * var(--h));position:relative;overflow:hidden;background:var(--color-black)}.map iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.margin-s{margin-bottom:.75rem}.margin-m{margin-bottom:1.5rem}.margin-l{margin-bottom:3rem}.margin-xl{margin-bottom:4.5rem}.margin-xxl{margin-bottom:6rem}@media screen and (min-width:60rem){body{--padding:3rem}.grid{grid-template-columns:repeat(12,1fr)}.grid>.column{grid-column:span var(--columns)}}.pagination{display:flex;padding-top:6rem}.pagination>span{color:var(--color-text-grey)}.pagination>*{padding:.5rem;width:3rem;text-align:center;border:2px solid currentColor;margin-right:1.5rem}.pagination>a:hover{background:var(--color-black);color:var(--color-white);border-color:var(--color-black)}.note-excerpt{line-height:1.5em}.note-excerpt header{margin-bottom:1.5rem}.note-excerpt figure{margin-bottom:.5rem}.note-excerpt-title{font-weight:600}.note-excerpt-date{color:var(--color-text-grey)}.contact{padding:3rem;border:2px solid #000}.contact .h1{margin-bottom:1.5rem}