@font-face{font-family:Geist;src:url(/fonts/Geist-Variable.woff2) format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/GeistMono-Variable.woff2) format("woff2");font-weight:100 900;font-display:swap}:root{--color-bg: #2C2E2F;--color-surface: #343738;--color-heading: #F3F5F3;--color-text: #B8C2BF;--color-accent: #42DECA;--color-accent-hover: #6BE8D8;--color-on-accent: #202524;--color-border: #484D4C;--grid-thread-opacity: .13;--logo-filter: none;--img-arrow-right: url(/images/arrow-right.svg);--img-arrow-left: url(/images/arrow-left.svg);--img-watermark: url(/images/bg-weavs.svg);--cw: 100%}:root[data-theme=light]{--color-bg: #F6F6F4;--color-surface: #FFFFFF;--color-heading: #2C2E2F;--color-text: #58615F;--color-accent: #006F68;--color-accent-hover: #005C56;--color-on-accent: #F3F5F3;--color-border: #DADDD8;--grid-thread-opacity: .09;--logo-filter: brightness(0);--img-arrow-right: url(/images/arrow-right-light.svg);--img-arrow-left: url(/images/arrow-left-light.svg);--img-watermark: url(/images/bg-weavs-light.svg)}.only-light{display:none!important}:root[data-theme=light] .only-light{display:revert!important}:root[data-theme=light] .only-dark{display:none!important}@media(min-width:576px){:root{--cw: 540px}}@media(min-width:768px){:root{--cw: 720px}}@media(min-width:992px){:root{--cw: 960px}}@media(min-width:1200px){:root{--cw: 1140px}}html{margin:0;padding:0;max-width:100%;overflow-x:hidden;position:relative;min-height:100%;background:var(--color-bg)}body,div,a{color:var(--color-text);font-family:Geist,system-ui,sans-serif;font-weight:400}body.invert,div.invert,a.invert{color:var(--color-accent)}h1,h2,h3,h4,h5{color:var(--color-heading);font-family:Geist,system-ui,sans-serif;font-weight:600}ul{color:var(--color-text)}h5,.primary{color:var(--color-accent)}body{padding:0;margin:0 0 60px;background:transparent}.bg-grid{position:absolute;top:0;left:0;width:100vw;height:750px;overflow:hidden;pointer-events:none;z-index:-1}.bg-grid svg{position:absolute;top:0;left:calc((100% + var(--cw)) / 2 - 15px - 1100px);overflow:visible}.bg-grid path{fill:none}.bg-grid .thread-gap{stroke:var(--color-bg);stroke-width:6}.bg-grid .thread{stroke:var(--color-accent);stroke-opacity:calc(var(--f, 1) * var(--grid-thread-opacity));stroke-width:1.5}.bg-grid .flash{stroke:var(--color-accent);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.bg-grid .flash-dot{fill:var(--color-accent);transform-box:fill-box;transform-origin:center}.bg-grid--header{display:none}.bg-lightgreen{background-color:var(--color-accent)}.active,a:hover{color:var(--color-accent);text-decoration:none}.active.invert,a:hover.invert{color:var(--color-text)}hr{border-color:var(--color-border)}p{color:var(--color-text);line-height:25px;font-size:1em;font-family:Geist,system-ui,sans-serif;font-weight:400}h1{font-family:Geist,system-ui,sans-serif;font-weight:700;font-size:2em;letter-spacing:-.02em}#projects h1{margin:inherit}#projects .project-background{position:absolute;width:605px;background-color:var(--color-accent);left:100px;top:-40px;z-index:-1;height:620px}@media(min-width:992px){#projects .project-row{height:620px}}#projects .project-link{margin-bottom:70px}#projects .project-row{overflow:hidden}.hidden-text{color:var(--color-bg)}.button{display:inline-block;height:45px;color:var(--color-heading);font-family:Geist Mono,ui-monospace,monospace;font-size:16px;line-height:45px;background-color:transparent;padding:0 20px;font-weight:600;text-align:center;border:1px solid var(--color-accent);transition:background-color .15s,border-color .15s,color .15s}.button:hover{color:var(--color-accent-hover);border-color:var(--color-accent-hover)}.button.solid{color:var(--color-on-accent);background-color:var(--color-accent)}.button.solid:hover{color:var(--color-on-accent);background-color:var(--color-accent-hover)}.section{position:relative}@media(min-width:576px){.section .background-weavs{position:absolute;overflow:hidden;height:301px;width:100%;top:470px;left:117px;background:var(--img-watermark) no-repeat}.section .background-weavs.background-weavs--contact{top:auto;bottom:0;z-index:-1}}.section.middle-space{margin-top:100px}.section.large-space{padding-top:100px;margin-top:200px}@media(min-width:576px){.section.hero{margin-top:90px}}.section h4{font-family:Geist,system-ui,sans-serif;font-weight:700}.section p{max-width:700px}.section .keywords{font-family:Geist,system-ui,sans-serif;font-weight:700;font-size:16px}.section .button{margin-top:40px}.section .group-icon{margin-top:80px;margin-bottom:40px}.section .logos{margin-top:120px}.section .logos img{margin-right:30px;filter:var(--logo-filter)}.section .subtitle{font-family:Geist Mono,ui-monospace,monospace;color:var(--color-accent);letter-spacing:2px;font-size:16px;font-weight:600;text-transform:uppercase}.section .subsection .subtitle{font-size:14px}.section .subsection h1{font-size:30px;margin:0}.section .subsection blockquote h1{margin:0;font-size:20px}.switch-languages{top:20px;right:25px;position:absolute;font-family:Geist Mono,ui-monospace,monospace}.headline .logo{width:320px;height:auto;max-width:60vw}.headline nav{text-align:right}.headline nav ul li a{font-size:16px;margin-left:10px;font-family:Geist Mono,ui-monospace,monospace;font-weight:600}.headline .navbar{align-items:flex-start}.headline .navbar-brand{padding:0;margin:0;line-height:0}.headline .navbar-nav .nav-link{padding-top:0;padding-bottom:0}.headline .navbar-collapse .button{height:auto;line-height:1;padding:10px 20px}@media(min-width:992px){.headline .navbar-collapse{align-items:flex-start;margin-top:var(--nav-offset, -57px);--cw: 960px;margin-right:max(0px,100px - (100vw - var(--cw)) / 2)}.headline .navbar-nav .nav-link{white-space:nowrap;line-height:1;padding-top:11px}}@media(min-width:1200px){.headline .navbar-collapse{--cw: 1140px}}.headline .navbar-dark .navbar-nav .nav-item .nav-link{color:var(--color-text)}.headline .navbar-dark .navbar-nav .nav-item .nav-link:hover,.headline .navbar-dark .navbar-nav .nav-item .nav-link:focus{color:var(--color-accent)}@media(min-width:992px){html{scroll-padding-top:var(--header-height)}:root{--header-height: 180px}.bg-grid{position:fixed}.headline{position:sticky;top:0;z-index:100;padding:71px 0 24px}.headline:before{content:"";position:absolute;top:0;bottom:0;left:-50vw;right:-50vw;z-index:-2;background:var(--color-bg);pointer-events:none}.headline .bg-grid--header{display:block;position:absolute;left:calc(50% - 50vw);width:100vw;height:100%}.headline .navbar{margin-top:0}.switch-languages{position:fixed;z-index:101}}.footer{color:var(--color-text);font-family:Geist Mono,ui-monospace,monospace;font-weight:600;position:absolute;padding:18px 5px 0;bottom:0;width:100%;height:60px;text-align:center;border-top:1px solid var(--color-border)}.footer a{color:var(--color-text);font-family:Geist Mono,ui-monospace,monospace;font-weight:600}.footer a.invert{color:var(--color-accent)}.navbar{padding:0;margin-top:71px}.projects .project-image{height:540px;position:relative}.profile{font-size:16px;display:inline-block;margin-top:40px;margin-left:20px}.profile .avatar-cnt{position:relative;margin-bottom:30px}.profile .avatar-cnt .avatar-background{background-color:var(--color-accent);width:100px;height:100px;position:absolute;z-index:-1;top:10px;left:10px}.profile .avatar-cnt .avatar{width:100px;height:100px}.profile .name{font-family:Geist,system-ui,sans-serif;font-weight:700;font-size:18px;color:var(--color-heading)}.profile .rank{font-family:Geist,system-ui,sans-serif;font-weight:700;font-size:18px;color:var(--color-text)}.carousel-control{display:inline-block;margin-right:10px;height:50px;width:50px}.carousel-control.next{background:var(--color-accent) var(--img-arrow-right) 50% 50% no-repeat}.carousel-control.prev{background:var(--color-accent) var(--img-arrow-left) 50% 50% no-repeat}@media(min-width:576px){h1{max-width:90%;margin:47px 0 52px;font-size:5em;line-height:1.1em}.profile{margin-left:0;margin-right:50px}}@media(max-width:575px){.button{margin:10px auto;width:100%}.section h4{text-align:center;margin-bottom:25px}.section.middle-space,.section.large-space{margin-top:0;padding-top:50px}.section .group-icon{margin:26px auto;display:block}.section .logos{margin-top:30px;text-align:center}.section .logos img{margin:10px 15px;display:inline-block}.section .subtitle{font-size:14px}}.pointer{cursor:pointer}.contact-form{max-width:700px;margin-top:40px}.contact-form *,.contact-form *:before,.contact-form *:after{box-sizing:border-box}.contact-form .contact-row{display:flex;gap:0 24px}.contact-form .contact-row .field{flex:1 1 0;min-width:0}@media(max-width:575px){.contact-form .contact-row{display:block}}.contact-form .field{margin-bottom:20px}.contact-form label{display:block;margin-bottom:6px;font-family:Geist Mono,ui-monospace,monospace;font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--color-heading)}.contact-form input,.contact-form textarea{display:block;width:100%;min-width:0;padding:11px 14px;font-family:Geist,system-ui,sans-serif;font-size:16px;line-height:1.4;color:var(--color-heading);background:var(--color-surface);border:1px solid var(--color-border);border-radius:0;transition:border-color .15s}.contact-form input:hover,.contact-form textarea:hover{border-color:var(--color-text)}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent)}.contact-form textarea{resize:vertical;min-height:140px}.contact-form .contact-trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.contact-form .form-note,.contact-form .form-alt{font-size:14px;line-height:1.5;color:var(--color-text)}.contact-form .form-note a,.contact-form .form-alt a{color:var(--color-accent);text-decoration:underline}.contact-form .form-error{color:#ff8a80;line-height:1.5}.contact-form .form-success{color:var(--color-heading);line-height:1.6;padding:20px 24px;border:1px solid var(--color-accent);background:var(--color-surface)}.contact-form .button{margin-top:10px;cursor:pointer}.contact-form .button:disabled{cursor:wait;opacity:.6}.contact-form .button:focus-visible{outline:2px solid var(--color-heading);outline-offset:3px}.contact-form .form-alt{margin-top:28px}.contact-form [hidden]{display:none!important}:root[data-theme=light] .contact-form .form-error{color:#b3261e}.section.legal h4{margin-top:40px}.section.legal p{max-width:760px}.section.legal a{color:var(--color-accent)}.section.legal .legal-date{margin-top:40px;font-size:14px}
