:root{--font-family:"Fira Sans", -apple-system, system-ui, sans-serif;--font-family-monospace:Consolas, Menlo, Monaco, Andale Mono WT, Andale Mono,
    Lucida Console, Lucida Sans Typewriter, DejaVu Sans Mono,
    Bitstream Vera Sans Mono, Liberation Mono, Nimbus Mono L, Courier New,
    Courier, monospace}:root{--color-gray-10:#f5f5f5;--color-gray-20:#e0e0e0;--color-gray-50:#c0c0c0;--color-gray-70:#8c8c8c;--color-gray-90:#333;--background-color:rgb(248, 248, 248);--foreground-color:var(--color-gray-90);--text-color:var(--foreground-color);--text-color-link:var(--text-color);--text-color-link-active:#136e32;--text-color-link-visited:#05180a;--syntax-tab-size:2;--entry-meta--font-size:0.8125em;--global--spacing-unit:20px}@media(prefers-color-scheme:dark){:root{--color-gray-10:#2c2c2c;--color-gray-20:#434343;--color-gray-50:#979797;--color-gray-70:#cacaca;--color-gray-90:#dad8d8;--text-color-link-active:#3cbd67;--text-color-link-visited:var(--text-color-link);--background-color:#181818}}.screen-reader-text{border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.screen-reader-text:focus{background-color:var(--color-gray-90);clip-path:none;color:var(--color-gray-50);display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}*{box-sizing:border-box}@view-transition{navigation: auto;
}html,body{padding:0;margin:0 auto;font-family:var(--font-family);color:var(--text-color);background-color:var(--background-color);font-size:18px;font-weight:400;line-height:1.5}html{overflow-y:scroll}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}h1,h2,h3,h4,h5,h6{font-family:roboto condensed,sans-serif;font-weight:700;line-height:1.25}h2{margin:1.6em 0 .8em}img{max-width:100%}img[width][height]{height:auto}img[src$=".svg"]{width:100%;height:auto;max-width:none}.icon-24,.icon-24[src$=".svg"]{width:24px;height:24px}.icon-16,.icon-16[src$=".svg"]{width:16px;height:16px}video,iframe{width:100%;height:auto}iframe{aspect-ratio:16/9}p:last-child{margin-bottom:0}p{line-height:1.5}li{line-height:1.5}a[href]{color:var(--text-color-link)}a[href]:visited{color:var(--text-color-link-visited)}a[href]:hover,a[href]:active{color:var(--text-color-link-active)}a.show-icon::before{content:"🔗";margin-right:5px}:root{--space-xxs:0.25rem;--space-xs:0.5rem;--space-s:1rem;--space-m:1.5rem;--space-l:2rem;--space-xl:3rem;--space-xxl:4rem}.m-xxs{margin:var(--space-xxs)}.m-xs{margin:var(--space-xs)}.m-s{margin:var(--space-s)}.m-m{margin:var(--space-m)}.m-l{margin:var(--space-l)}.m-xl{margin:var(--space-xl)}.m-xxl{margin:var(--space-xxl)}.mt-xxs{margin-top:var(--space-xxs)}.mt-xs{margin-top:var(--space-xs)}.mt-s{margin-top:var(--space-s)}.mt-m{margin-top:var(--space-m)}.mt-l{margin-top:var(--space-l)}.mt-xl{margin-top:var(--space-xl)}.mt-xxl{margin-top:var(--space-xxl)}.mr-xxs{margin-right:var(--space-xxs)}.mr-xs{margin-right:var(--space-xs)}.mr-s{margin-right:var(--space-s)}.mr-m{margin-right:var(--space-m)}.mr-l{margin-right:var(--space-l)}.mr-xl{margin-right:var(--space-xl)}.mr-xxl{margin-right:var(--space-xxl)}.mb-xxs{margin-bottom:var(--space-xxs)}.mb-xs{margin-bottom:var(--space-xs)}.mb-s{margin-bottom:var(--space-s)}.mb-m{margin-bottom:var(--space-m)}.mb-l{margin-bottom:var(--space-l)}.mb-xl{margin-bottom:var(--space-xl)}.mb-xxl{margin-bottom:var(--space-xxl)}.ml-xxs{margin-left:var(--space-xxs)}.ml-xs{margin-left:var(--space-xs)}.ml-s{margin-left:var(--space-s)}.ml-m{margin-left:var(--space-m)}.ml-l{margin-left:var(--space-l)}.ml-xl{margin-left:var(--space-xl)}.ml-xxl{margin-left:var(--space-xxl)}.pl-0{padding-left:0!important}.pr-0{padding-right:0!important}.pb-0{padding-bottom:0!important}.pl-0{padding-left:0!important}.w-5{width:5%}.w-10{width:10%}.w-15{width:15%}.w-20{width:20%}.w-25{width:25%}.w-30{width:30%}.w-40{width:40%}.w-50{width:50%}.w-60{width:60%}.w-70{width:70%}.w-75{width:75%}.w-80{width:80%}.w-85{width:85%}.w-90{width:90%}.w-100{width:100%}main{padding:0 .5rem}footer,header{padding:.5rem}.container{max-width:650px;width:100%;margin:0 auto;box-sizing:border-box}.container-wide{max-width:1e3px;width:100%;margin:0 auto;box-sizing:border-box}.full-width-section{width:100vw;margin-left:calc(-50vw + 50%)}.wide-image-container{max-width:900px;width:100%;margin-left:50%;transform:translateX(-50%)}.text-small{font-size:.8125em}.text-subtle{color:var(--color-gray-70)}.side-by-side{display:flex;gap:1em;align-items:center;flex-direction:row;justify-content:space-between}.link-button{display:flex;align-items:center;padding:.5em 1em;border:1px solid #ddd;color:#333;border-radius:5px;text-decoration:none}.link-plain{color:#333;text-decoration:none}.links-nextprev{display:flex;justify-content:space-between;gap:.5em 1em;list-style:"";border-top:1px dashed var(--color-gray-20);padding:1em 0}.links-nextprev>*{flex-grow:1}.links-nextprev-next{text-align:right}.button-label{background-color:var(--color-gray-20);color:var(--color-gray-70)!important;display:inline-block;padding:6px 12px;line-height:.9em;font-size:17px;border-radius:5px;text-decoration:none}.button-label:hover,.button-label:active{background-color:var(--color-gray-10);color:var(--color-gray-90)!important}.list-inline{list-style:none;padding:0;margin:0}.list-inline li{display:inline;margin-right:6px}table{margin:1em 0}table td,table th{padding-right:1em}pre,code{font-family:var(--font-family-monospace);font-size:16px}pre:not([class*=language-]){margin:.5em 0;line-height:1.375;-moz-tab-size:var(--syntax-tab-size);-o-tab-size:var(--syntax-tab-size);tab-size:var(--syntax-tab-size);-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;overflow-x:auto}code{word-break:break-all}.highlight pre{padding:.5rem}.home-link{font-size:1em;font-weight:700;margin-right:2em}.home-link:link:not(:hover){text-decoration:none}.nav{display:flex;padding:0;margin:0;list-style:none}.nav-item{display:inline-block;margin-right:1rem}.nav-item:last-child{margin-right:0}.nav-item a[href]:not(:hover){text-decoration:none}.nav a[href][aria-current=page]{text-decoration:underline}.postlist{list-style:none;padding:0;padding-left:0}.postlist-item{display:flex;flex-wrap:wrap;align-items:baseline;margin-bottom:1.1rem}.postlist-item-compact .postlist-date{width:5rem}.postlist-date,.postlist-item:before{font-size:.8125em;color:var(--color-gray-90)}.postlist-date{word-spacing:-.5px}.postlist-link{font-weight:500;flex-basis:calc(100% - 1.5rem);text-underline-position:from-font;text-underline-offset:0;text-decoration-thickness:1px}.postlist-item-active .postlist-link{font-weight:700}.post-tag{display:inline-flex;align-items:center;justify-content:center;text-transform:capitalize;font-style:italic}.postlist-item>.post-tag{align-self:center}hr{width:20%;margin:2em auto;border-style:dotted none none;border-width:7px;border-color:var(--color-gray-20)}.post-metadata{padding:1rem 0 0;color:var(--color-gray-90);display:flex;flex-direction:column;gap:.3rem}@media screen and (min-width:768px){.post-metadata{flex-direction:row;justify-content:center;align-items:center;gap:1.1rem}}.post-metadata>span{display:flex;align-items:center}.post-metadata>span>img{display:block;position:relative;top:-1px}.post-metadata{font-size:var(--entry-meta--font-size)}.post-metadata a,.post-metadata a:visited{text-decoration:none;color:var(--color-gray-90)}.post-metadata a:hover{color:var(--text-color-link-active)}.page-header .container{display:flex;justify-content:space-between;align-items:center}.page-header nav{display:inline-block}.page-header{display:flex;justify-content:space-between;padding:2rem 1rem 1rem;font-size:15px}nav a{display:inline-block;position:relative;text-decoration:none}nav a:hover{text-decoration:none;color:var(--text-color-link-active)}nav a::after{content:"";position:absolute;width:100%;transform:scaleX(0);height:2px;bottom:-2px;left:0;background-color:var(--text-color-link-active);transition:transform .25s ease-out;transform-origin:bottom right}nav a:hover::after{transform:scaleX(1)}nav a:hover::after{transform-origin:bottom left}.page-footer{padding-top:1em;margin-top:1em;font-size:.8125em;color:var(--color-gray-70);text-align:center}.page-footer a,.page-footer a:visited{color:var(--color-gray-70)}.page-footer a:hover{color:var(--color-gray-90)}.table-lines,.page-main table{width:100%;border-collapse:collapse}.table-lines th,.table-lines td,.page-main table th,.page-main table td{padding:10px;text-align:left}.table-lines tr,.page-main table tr{border-bottom:1px solid var(--foreground-color)}.table-lines tr:last-child,.page-main table tr:last-child{border-bottom:none}.table-lines thead th,.page-main table thead th{border-bottom:1px solid var(--foreground-color)}.projects-container{max-width:1200px;margin:0 auto}.project{display:flex;flex-direction:column;justify-content:space-between;gap:40px;margin-bottom:60px;align-items:center}@media(min-width:768px){.project{flex-direction:row}}.project>*{flex:1}.project-image img{width:100%;height:auto;display:block;object-fit:cover}.info-box{display:flex;margin:20px 0}.info-box-image{flex:1;max-width:33.333%}.info-box-image img{width:100%;height:auto;display:block}.info-box-content{flex:2;background-color:var(--color-gray-10);padding:24px}@media(max-width:768px){.info-box{flex-direction:column;width:75%;margin:0 auto}.info-box-image{max-width:100%}}.home-teaser{font-size:22px}.home-teaser p{line-height:1.6}.text-underline{position:relative;z-index:2}.text-underline::after{content:"";position:absolute;bottom:-.2rem;height:.5rem;left:-.25rem;right:-.25rem;z-index:1;background-image:url(../underline-green.svg);background-repeat:no-repeat;background-size:cover}.gallery-item{padding:.5rem 1rem}.gallery-list-item{margin:2rem 0}.gallery-header{padding:0 1rem}@media(min-width:768px){.gallery-list-item:first-child{margin-top:3rem}.gallery-list-item{margin-bottom:6rem}}@media(min-width:768px){.gallery-grid{display:flex;flex-wrap:wrap;gap:16px;width:100%;padding:.5em 0}.gallery-grid .gallery-item{width:100%;position:relative;aspect-ratio:1/1;overflow:hidden}.gallery-grid .gallery-item img{position:absolute;width:100%;height:100%;object-fit:contain;padding:.5rem;display:block}.gallery-grid .gallery-item{width:calc((100% - 32px)/2)}}.gallery-plain{display:flex;flex-direction:column;gap:.5rem}@media(min-width:768px){.gallery-plain .gallery-item.portrait{padding:1rem 5rem}.gallery-plain .gallery-item.landscape{padding:1rem 0}}.gallery-header{color:var(--color-gray-70);margin-top:3rem}.gallery-header a[href],.gallery-header a[href]:visited{text-decoration:none;color:var(--color-gray-70)}.gallery-header a[href]:hover{color:var(--text-color-link-active)}.text-icon-center{display:flex;align-items:center}.text-icon-center svg{margin-right:.25rem}@media(min-width:768px){.gallery-header{padding:.5rem 0}}.gallery-header-title{display:flex;justify-content:center}.gallery-header-title .icon{width:20px;height:20px;color:var(--color-gray-70)}.lightbox-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:var(--background-color);display:flex;justify-content:center;align-items:center;z-index:1000;opacity:0;pointer-events:none;transition:opacity .3s ease}.lightbox-overlay.active{opacity:1;pointer-events:auto}.lightbox-container{max-width:90%;max-height:90%;position:relative}.lightbox-image{max-width:100%;max-height:90vh;display:block}.lightbox-close{position:absolute;top:-40px;right:0;color:var(--foreground-color);font-size:30px;cursor:pointer;background:0 0;border:none;outline:none}.lightbox-prev,.lightbox-next{position:absolute;top:50%;transform:translateY(-50%);color:#fff;font-size:30px;background:0 0;border:none;outline:none;cursor:pointer;padding:10px;opacity:.7;transition:opacity .2s ease}.lightbox-prev:hover,.lightbox-next:hover{opacity:1}.lightbox-prev{left:20px}.lightbox-next{right:20px}@media(prefers-color-scheme:dark){}.book-entry{display:flex;flex-direction:row;justify-content:space-between;gap:.5rem;margin-bottom:1.5rem}.book-entry-left{flex:.7}.book-entry-right{flex:.3;text-align:right}.book-entry-title{font-size:1em;font-weight:500;margin:0 0 .1rem}.book-entry-author{font-size:.8em;margin-bottom:.2rem}.book-entry-meta{font-size:.8em;color:var(--color-gray-70)}.book-tag{display:inline-block;margin-right:.5rem;color:var(--color-gray-70);border-radius:.5rem}.book-entry-rating{font-size:1rem}