footer[data-astro-cid-sz7xmlte]{background-color:var(--blue-700);color:#fff;text-align:center}footer[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:inherit}footer[data-astro-cid-sz7xmlte] p[data-astro-cid-sz7xmlte]{margin-bottom:.25rem}@font-face{font-family:Ubuntu Condensed;font-style:normal;font-weight:400;font-display:swap;src:local(""),url(/fonts/ubuntu-condensed-v11-latin-regular.woff2) format("woff2"),url(/fonts/ubuntu-condensed-v11-latin-regular.woff) format("woff")}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:400;font-display:swap;src:local(""),url(/fonts/source-sans-pro-v14-latin-regular.woff2) format("woff2"),url(/fonts/source-sans-pro-v14-latin-regular.woff) format("woff")}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:900;font-display:swap;src:local(""),url(/fonts/source-sans-pro-v14-latin-900.woff2) format("woff2"),url(/fonts/source-sans-pro-v14-latin-900.woff) format("woff")}@font-face{font-family:Source Code Pro;font-style:normal;font-weight:400;font-display:swap;src:local(""),url(/fonts/source-code-pro-v13-latin-regular.woff2) format("woff2"),url(/fonts/source-code-pro-v13-latin-regular.woff) format("woff")}*,*:before,*:after{box-sizing:border-box}html,body{padding:0;margin:0}html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{font-family:var(--body-font);font-size:1.125rem;line-height:1.5;color:var(--text-color, var(--blue-600));min-height:100dvh;display:flex;flex-direction:column;--text-color: var(--blue-600);--link-color: var(--green-700);--small-spacing: 1rem;--large-spacing: 2rem;--title-size: 2.25rem;--title-size-emphasized: 3rem;--h2-size: var(--h2-size-small);--blog-list-item-spacing: 2.5rem}@media (min-width: 520px){body{--blog-list-item-spacing: 5rem}}@media (min-width: 760px){body{--small-spacing: 1.5rem;--large-spacing: 3rem;--title-size: 3rem;--title-size-emphasized: 4rem;--h2-size: 2.25rem}}@media (min-width: 1000px){body{--small-spacing: 2rem;--large-spacing: 4rem}}main{flex-grow:1}h1,h2,h3,h4,h5,h6{color:var(--green-700);font-family:var(--heading-font);font-weight:400;line-height:1.2;margin:1.5em 0 1em}h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child{margin-top:0}h2{font-size:var(--h2-size)}h3{font-size:1.5rem}@media (min-width: 760px){h3{font-size:var(--h2-size-small)}}h4{font-size:1.25rem}@media (min-width: 760px){h4{font-size:1.5rem}}p{margin:0 0 1rem}a{text-decoration:none;color:var(--link-color)}a:hover{text-decoration:underline}img{max-width:100%}input,textarea{caret-color:var(--green-600)}ul{list-style:square;padding-left:1.5rem;margin-bottom:1.5rem}li+li{margin-top:.5rem}li::marker{color:var(--green-700)}ol li::marker{font-weight:900}p+ul{margin-top:.25rem}code{font-family:var(--code-font);background-color:#efefef;font-size:1rem;hyphens:none}blockquote{font-style:italic}.padded-content{padding:var(--large-spacing) var(--small-spacing)}.text-container{max-width:var(--text-max-width)}.text-container-wide,.content-container{max-width:var(--content-max-width)}.text-container,.content-container{margin-left:auto;margin-right:auto}.vertical-spacing-small{margin-top:var(--small-spacing);margin-bottom:var(--small-spacing)}.vertical-spacing-large{margin-top:var(--large-spacing);margin-bottom:var(--large-spacing)}.fish-background{background-color:var(--grey-background);background-image:url(/images/fish-bg.svg);background-size:110px 90px}.light-grey-background{background-color:var(--grey-background)}.grid-layout>*+*{margin-top:2rem}@media (min-width: 760px){.grid-layout{display:grid}.grid-layout>*+*{margin-top:0}.grid-layout.grid-2cols{grid-template-columns:repeat(2,1fr)}.grid-layout.grid-3cols{grid-template-columns:repeat(3,1fr)}.grid-gap-1,.grid-gap-2,.grid-gap-3,.grid-gap-4{grid-gap:1rem}}@media (min-width: 1000px){.grid-gap-2{grid-gap:2rem}.grid-gap-3{grid-gap:3rem}.grid-gap-4{grid-gap:4rem}}.grid-item-end--1{grid-column-end:-1}.page-header{background-color:var(--blue-900);padding:var(--small-spacing)}.page-title{font-size:var(--title-size, 2.5rem);color:var(--green-600)}.page-description{color:var(--grey-light);margin-top:var(--small-spacing);white-space:pre-wrap}.page-header-emphasized .page-title{font-size:var(--title-size-emphasized)}.page-header-emphasized .page-description{font-size:1.25rem}.page-header-article .text-container{margin-top:var(--large-spacing)}.page-header-home .page-description{text-align:center}@media (min-width: 520px){.page-header-emphasized{text-align:center}.page-header-emphasized .page-description{max-width:450px;margin-left:auto;margin-right:auto}}.navigation{display:flex;justify-content:flex-end;align-items:center;text-transform:uppercase;height:var(--brand-logo-height)}.nav-link{color:#fff;padding:0 4px;margin:0 4px}.lang-toggle{color:#fff;padding-left:4px;margin-left:4px}.lang-toggle-separator{height:1.2rem;width:1px;background:#fff;margin:0 4px}.article-toc-wrapper{box-shadow:var(--box-shadow)}@media (min-width: 1400px){.article-toc-wrapper{position:sticky;top:32px;max-height:calc(100vh - 32px);overflow:auto;box-shadow:none;border-left:1px solid var(--grey-background)}}.article-toc{padding:1rem}.article-toc nav{margin-top:16px}.article-toc a{display:block;line-height:1.3;max-width:max-content;color:var(--blue-600)}@media (min-width: 1400px){.article-toc a{color:var(--blue-100);transition:color .25s}}.article-toc a+a{margin-top:16px}.article-toc .article-toc-header{font-weight:900}.article-toc .article-toc-header:hover{cursor:pointer}@media (min-width: 1400px){.article-toc:hover a{color:var(--blue-600)}}.contact-section-intro{font-size:1.5rem;font-weight:900;line-height:1.2}.contact-section-form{padding:2rem;max-width:var(--tile-max-width);margin-left:auto;margin-right:auto}.contact-section-svg{display:none}@media (min-width: 760px){.contact-section-text{max-width:330px;font-size:1.5rem}.contact-section-intro{font-size:2.25rem}.contact-section-form{margin:0 0 0 2rem;max-width:400px}.contact-section-content{display:flex;justify-content:space-between;align-items:flex-start}}@media (min-width: 1000px){.contact-section-svg{display:block;margin-left:auto;margin-right:auto;align-self:center}.contact-section-form{margin:0}}.contact-form input,.contact-form textarea{appearance:none;background-color:#fff;color:var(--blue-500);font-family:inherit;font-size:1rem;border:2px solid var(--blue-100);border-radius:4px;width:100%;padding:.5rem;margin-bottom:1rem;transition:var(--color-transition)}.contact-form input:hover,.contact-form textarea:hover{border-color:var(--blue-500)}.contact-form textarea{resize:none}.contact-form .inputGroup label{font-weight:900;margin-bottom:12px}.contact-form input:focus-visible,.contact-form textarea:focus-visible,.contact-form .button:focus-visible{outline:2px solid var(--green-700);outline-offset:2px}.contact-form-actions{display:flex;justify-content:flex-end}.button{appearance:none;background-color:var(--blue-500);color:#fff;font-weight:700;text-transform:uppercase;line-height:inherit;font-family:inherit;font-size:1rem;padding:.5rem 1rem;border:none;border-radius:4px;transition:var(--color-transition)}.button:hover{background-color:var(--blue-900);cursor:pointer}.button:disabled{background-color:var(--grey-dark);pointer-events:none;cursor:not-allowed}.brand-logo{margin-right:auto;color:var(--green-600);display:flex;height:var(--brand-logo-height)}.brand-logo:hover{text-decoration:none}.brand-logo .svg{height:42px;margin-right:.6rem}.brand-logo .path{fill:currentColor}.brand-logo .name{margin-top:3px;font-family:var(--heading-font);font-size:1.5rem;text-transform:none}.svg{fill:none}.svg rect{stroke:var(--green-600);stroke-linecap:square}.svg.animated rect{opacity:1;stroke-dashoffset:0}.header-anchor{color:var(--green-700);font-size:var(--h2-size);transition:color .25s}.header-anchor:after{content:" #";color:var(--grey-light);opacity:0;transition:opacity .25s}.header-anchor:hover{text-decoration:none;color:var(--green-800)}.header-anchor:hover:after{opacity:1}.postCollections{margin-top:1rem;font-size:1rem;line-height:1.25}.postCollectionsLabel{color:var(--blue-200)}@media (min-width: 520px){.blogListItemMeta{display:flex;gap:40px}.postCollections{margin-top:0}.postCollectionsLabel{display:block}}.hidden{display:none}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}:root{--body-font: "Source Sans Pro", sans-serif;--heading-font: "Ubuntu Condensed", sans-serif;--code-font: "Source Code Pro", monospace;--blue-900: #172833;--blue-800: #1a2e3a;--blue-700: #1e3442;--blue-600: #233c4d;--blue-500: #32556b;--blue-400: #326279;--blue-200: #6c777e;--blue-100: #8a97a1;--green-800: #0f8a51;--green-700: #17a964;--green-600: #1acc78;--green-500: #1dd97f;--grey-light: #d2d6d9;--grey-dark: #b2b3b2;--grey-background: #f1f2f4;--text-max-width: 670px;--content-max-width: 1000px;--article-base-width: 80vw;--article-max-width: 80ch;--tile-max-width: 500px;--brand-logo-height: 42px;--box-shadow: 0 2px 25px 5px rgba(0, 0, 0, .05);--h2-size-small: 1.875rem;--color-transition: color .15s ease-in-out, background-color .15s ease-in-out;--transform-sm-square: translateY(-13px) translateX(-32px) rotate(45deg);--transform-lg-square: translateY(-13px) translateX(5px) rotate(45deg)}:root .fishSmSquare{transform:var(--transform-sm-square)}:root .fishMdSquare{transform:var(--transform-lg-square)}:root .fishLgSquare{transform:var(--transform-lg-square)}@media (prefers-reduced-motion: no-preference){@keyframes fillGreenKeyframes{0%{fill:var(--blue-900)}50%{fill:var(--green-600)}to{fill:var(--blue-900)}}@keyframes rotateLgKeyframes{0%{transform:rotate(0)}to{transform:var(--transform-lg-square)}}@keyframes rotateSmKeyframes{0%{transform:rotate(0)}to{transform:var(--transform-sm-square)}}:root .fishSmSquare{animation:.4s ease-in-out .5s fillGreenKeyframes,.6s ease-in-out 1.1s both rotateSmKeyframes}:root .fishMdSquare{animation:.4s ease-in-out .7s fillGreenKeyframes,.6s ease-in-out 1.1s both rotateLgKeyframes}:root .fishLgSquare{animation:.4s ease-in-out .9s fillGreenKeyframes,.6s ease-in-out 1.1s both rotateLgKeyframes}}
