*{margin:0;padding:0}:root{--padding:1.5rem;--color-black:#000;--color-white:#f5f4f2;--color-grey:#474747;--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{background:var(--color-background);color:var(--color-text);font-family:var(--font-family-sans)}img{display:block;height:auto;width:100%}body{margin:0 auto;max-width:1352px;padding:24px var(--padding)}li{list-style:none}a{text-decoration:none}a,button{color:currentColor;cursor:pointer}button{background:none;border:0;font:inherit}b,strong{font-weight:600}small{color:var(--color-text-grey);font-size:inherit}video{display:block;width:100%}.bg-light{background-color:var(--color-light)}.color-grey{color:var(--color-text-grey)}.header{align-items:center;display:grid;gap:1.5rem;grid-template-columns:1fr repeat(2,max-content);justify-content:space-between;margin-bottom:6rem}@media (min-width:600px){.header{position:sticky;top:1.5rem}}.logo{align-items:center;display:grid;font-weight:600;gap:.5rem;grid-template-columns:repeat(2,auto);justify-self:flex-start}.logo-svg{display:block;height:32px;width:32px}@media (min-width:600px){.logo-svg{height:52px;width:50px}}.logo-bw-txt{display:none}@media (min-width:600px){.logo-bw-txt{display:block}}.header-flux:before{border-radius:.35rem;content:"";display:inline-block;height:.7rem;margin-right:.3rem;width:.7rem}.menu{display:flex}.menu a{display:block;padding:1rem}.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-auto-flow:dense;grid-template-columns:repeat(auto-fit,minmax(var(--min),1fr))}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 ol,.text p,.text ul{margin-bottom:1.5rem}.text ol,.text ul{margin-left:1rem}.text ol p,.text ul p{margin-bottom:0}.text ul>li{list-style:disc}.text ol>li{list-style:decimal}.text ol ol,.text ol ul,.text ul ol,.text ul ul{margin-bottom:0}.h1,.intro,.text h1{font-size:clamp(1rem,4vw,2rem);line-height:1.25em;margin-bottom:clamp(1.5rem,3vw,3rem)}.h2,.text h2{font-size:clamp(1rem,2vw,1.25rem);margin-bottom:clamp(1rem,2vw,1.5rem)}.h2,.h3,.text h2,.text h3{font-weight:600}.text .codeblock{display:grid}.text code{background:var(--color-light);color:var(--color-black);display:inline-block;font-family:var(--font-family-mono);font-size:1em;padding:0 .5rem}.text pre{background:var(--color-black);color:var(--color-white);line-height:1.5rem;margin:3rem 0;overflow-x:scroll;overflow-y:hidden;padding:1.5rem}.text pre code{background:none;color:inherit;padding:0}.text hr{margin:6rem 0}.text dt{font-weight:600}.text blockquote{border-left:2px solid var(--color-black);margin:3rem 0;padding-left:1rem}.text blockquote footer{font-size:.875rem;font-style:italic}.text figure{margin:3rem 0}.text figcaption{color:var(--color-text-grey);padding-top:.75rem}.text figure ul{background:var(--color-background);display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));line-height:0;margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);max-width:none;padding-left:3rem;padding-right:3rem;position:relative;z-index:9999}@media (min-width:1448px){.text figure ul{margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);max-width:none;padding-left:calc(50vw - 676px);padding-right:calc(50vw - 676px)}}.text figure ul li{list-style:none}.text figure ul li img{display:block;height:100%;object-fit:cover;object-position:center;width:100%}hr{background:currentColor;border:0;height:2px;margin:3rem auto;width:1.5rem}.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;outline:2px solid var(--color-black);padding:.75rem 1.5rem}.box,.cta{border:4px solid var(--color-white)}.box{background:var(--color-light);outline:2px solid var(--color-light);padding:1.5rem}.img,.video{display:block;position:relative;--w:1;--h:1;background:var(--color-black);padding-bottom:calc(100%/var(--w)*var(--h))}.img img,.video iframe{border:0;bottom:0;height:100%;left:0;object-fit:cover;position:absolute;right:0;top:0;width:100%}.img[data-contain] img{object-fit:contain}.img-caption,.video-caption{line-height:1.5em;padding-top:.75rem}.footer{line-height:1.5em;padding:9rem 0 6rem}.footer:before{background:var(--color-black);content:"";display:block;height:2px;margin-bottom:1.5rem;width:1.5rem}.footer h2{font-weight:600;margin-bottom:.75rem}.footer p,.footer ul{color:var(--color-text-grey)}.footer p{max-width:15rem}.footer a:hover{color:var(--color-text)}.map{--w:2;--h:1;background:var(--color-black);overflow:hidden;padding-bottom:calc(100%/var(--w)*var(--h));position:relative}.map iframe{border:0;bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.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>*{border:2px solid;margin-right:1.5rem;padding:.5rem;text-align:center;width:3rem}.pagination>a:hover{background:var(--color-black);border-color:var(--color-black);color:var(--color-white)}.note-excerpt{line-height:1.5em}.note-excerpt figure{overflow:hidden}.note-excerpt img{transition:transform .8s ease}.note-excerpt:hover img{transform:scale(1.1)}.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)}.note{margin:0 auto;max-width:35rem}.note-header{margin-bottom:3rem;padding-top:3rem}.note-footer{padding:6rem 0}.note-date{color:var(--color-text-grey)}.note-tags{display:flex;margin-bottom:1.5rem}.note-tags li{margin-right:.5rem}.note-tags a{background:var(--color-light);display:block;padding:.5rem 1rem}.note-tags a:hover{background:var(--color-black);color:var(--color-white)}@media print{*{background:transparent!important;box-shadow:none!important;color:#000!important;text-shadow:none!important}body{font-size:12pt;line-height:1.5;padding:0}.cta,.footer,.header,.menu,.note-tags,.pagination,.social{display:none!important}a{text-decoration:underline}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}img{max-width:100%!important;page-break-inside:avoid}h1,h2,h3,h4,h5,h6{page-break-after:avoid}blockquote,ol,p,ul{orphans:3;widows:3}code,pre{border:1px solid #999;page-break-inside:avoid}.note{max-width:none}}.basicLightbox{align-items:center;background:rgba(0,0,0,.8);display:flex;height:100vh;justify-content:center;left:0;opacity:.01;position:fixed;top:0;transition:opacity .4s ease;width:100%;will-change:opacity;z-index:9999}.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;will-change:transform;z-index:1}.basicLightbox__placeholder>iframe:first-child:last-child,.basicLightbox__placeholder>img:first-child:last-child,.basicLightbox__placeholder>video:first-child:last-child{bottom:0;display:block;left:0;margin:auto;max-height:95%;max-width:95%;position:absolute;right:0;top:0}.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{height:auto;width:auto}.basicLightbox--iframe .basicLightbox__placeholder,.basicLightbox--img .basicLightbox__placeholder,.basicLightbox--video .basicLightbox__placeholder{height:100%;pointer-events:none;width:100%}.basicLightbox--visible .basicLightbox__placeholder{-webkit-transform:scale(1);transform:scale(1)}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-break:normal;word-spacing:normal;word-wrap:normal;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}pre[class*=language-]{margin:0;overflow:auto;padding:1rem}.token.punctuation{color:var(--color-code-light-grey)}.token.comment,.token.doctype{color:var(--color-code-comment)}.token.delimiter,.token.key,.token.kirbytag-bracket,.token.markup,.token.prolog,.token.selector,.token.tag,.token.this,.token.variable{color:var(--color-code-red)}.token.attr-name,.token.bold,.token.bold>.punctuation,.token.boolean,.token.boolean.important,.token.constant,.token.entity,.token.kirbytag-attr,.token.kirbytag-name,.token.number{color:var(--color-code-orange)}.token.italic,.token.italic>.punctuation,.token.keyword{color:var(--color-code-purple)}.token.function{color:var(--color-code-blue)}.token.operator,.token.title{color:var(--color-code-aqua)}.token.attr-value,.token.attr-value .punctuation,.token.list.punctuation,.token.string{color:var(--color-code-green)}.token.class-name,.token.property,.token.scope,.token.url{color:var(--color-code-yellow)}.token.kirbytag-bracket,.token.list.punctuation,.token.title{font-weight:700}.token.title .punctuation{color:inherit}.token.bold{font-weight:700}.token.italic{font-style:italic}.codeblock{background:var(--color-black)}.codeblock figcaption{border-bottom:1px solid #333;color:var(--color-code-white);font-family:var(--font-family-mono);padding:.5rem 1rem}