body{--deep-green:#017d63;--deep-green-darker:#235656;--spermidine-green:#1d4950;--spermidine-green-darker:#0c1f22;--fresh-blue:#6440fa;--surftheweb-pantone:#203c7f;--greenish-blue:#053245;--dark-contrast-blue:#1d3464;--pantone-illuminating:#f5df4d;--illuminating-higher-contrast:#fef300;--light-yellowish:#fffcf0;--white-wheat-butter:#f7ebcf;--trendy-beige:#f3db6d;--nougat-beige:#c97d43;--orange-tag:#df814b;--dirty-orange:#cf7626;--interior-rose:#f6b692;--omega-purple:#623144;--omage-purple-darker:#360518;--palo-rose:#fedbbd;--merino-lighter:#ebeff2;--merino-slightly-lighter:#d1d4d6;--merino-light:#bbbfc2;--merino-dark:#83878a;--primary-foreground:var(--merino-lighter);--secondary-foreground:#000;--primary-heading:var(--merino-lighter);--gradient-heading-bright-side:var(--light-yellowish);--gradient-heading:var(--merino-light);--gradient-heading-dark-side:var(--merino-dark);--secondary-heading:var(--greenish-blue);--link-hover-background:var(--pantone-illuminating);--primary-background:var(--spermidine-green);--secondary-background:var(--merino-light);--secondary-lighter-background:var(--merino-slightly-lighter);--cta-light-background:var(--white-wheat-butter);--cta-button-light-background:var(--pantone-illuminating);--nav-menu-background:var(--greenish-blue);--peel-gradient:var(--greenish-blue);--peel-gradient-semitrans:rgba(5,50,69,.5);--hashtag-default:var(--surftheweb-pantone);--hashtag-green:var(--spermidine-green);--hashtag-blue:var(--fresh-blue);--brand-yellow-js:#f5df4d;--brand-yellow-js-neon:color(display-p3 0.96 0.87 0.30);--brand-yellow-miro:#f0c140;--brand-yellow-miro-neon:color(display-p3 0.94 0.76 0.25);--brand-orange-html:#ba5002;--brand-orange-html-neon:color(display-p3 0.72 0.35 0.08);--brand-orange-mysql:#f0931a;--brand-brown-composer:#8a5428;--brand-red-express-post-apache:#dd3808;--brand-red-express-post-apache-neon:color(display-p3 0.81 0.22 0.05);--brand-red-oracle-soap-npm:#cb3837;--brand-red-oracle-soap-npm-neon:color(display-p3 0.80 0.22 0.22);--brand-reddish-dark:#7e000d;--brand-purple-scss:#bf4080;--brand-purple-scss-neon:color(display-p3 0.75 0.25 0.50);--brand-rebeccapurple:#639;--brand-blue-tailwind-react:#55d0f4;--brand-blue-tailwind-react-neon:color(display-p3 0.33 0.82 0.96);--brand-blue-light:#c0f1ff;--brand-blue-shopware6:#5c60e1;--brand-blue-shopware5:#3a9bf8;--brand-blue-liquid:#237caa;--brand-blue-liquid-neon:color(display-p3 0.15 0.44 0.58);--brand-blue-typescript:#3178c6;--brand-blue-typescript-neon:color(display-p3 0.19 0.47 0.78);--brand-blue-php7:#57659f;--brand-blue-php8:#282368;--brand-blue-less:#0769ad;--brand-blue-less-neon:color(display-p3 0.03 0.41 0.68);--brand-green-twig-bg:#d6e9a1;--brand-green-twig-fg:#000;--brand-green-css-mongo:#017d63;--brand-green-css-mongo-neon:color(display-p3 0.00 0.49 0.39);--brand-gray-mongoose:#58646d;--brand-gray-eleventy:#1d4950;--brand-gray-gimp:#514b3a;--brand-black-inkscape:#24273c;--brand-vanilla:#fffaf0;--textmarker-blue:var(--brand-blue-tailwind-react);--textmarker-blue-semitransparent:rgba(85,208,244,.5);--textmarker-blue-verytransparent:rgba(85,208,244,.125);--slightly-neon-blue:color(display-p3 0.39 0.922 1);--slightly-neon-blue-semitransparent:color(display-p3 0.39 0.922 1/0.5);--extreme-neon-blue:color(display-p3 0 0.922 1);--skills-tile-container-bg:rgba(98,49,68,.75);--effect-box-shadow-dropshadow:0.5rem 0.5rem 0.5rem rgba(0,0,0,.125);--effect-box-shadow-dropshadow-darker:0.5rem 0.5rem 0.5rem rgba(0,0,0,.25);--radius:100%;--primary-animation-color:var(--deep-green-darker);--secondary-animation-color:var(--omega-purple);--body-font-family:"Montserrat","Helvetica",sans-serif;--body-font-weight:400;--body-line-height:1.75;--heading-font-family:"DorivalUI",serif;--heading-font-weight:700;--sans-font-family:"Montserrat","Helvetica",sans-serif;--project-tile-min-height:448px}body.high-contrast{--primary-foreground:#fff;--secondary-foreground:#000;--primary-heading:#fff;--gradient-heading-bright-side:#fff;--gradient-heading:var(--merino-lighter);--gradient-heading-dark-side:var(--merino-light);--secondary-heading:var(--greenish-blue);--link-hover-background:var(--illuminating-higher-contrast);--primary-background:var(--spermidine-green-darker);--secondary-background:var(--merino-lighter);--secondary-lighter-background:#fff;--cta-light-background:#fff;--cta-button-light-background:var(--illuminating-higher-contrast);--nav-menu-background:var(--greenish-blue);--peel-gradient:var(--spermidine-green-darker);--peel-gradient-semitrans:var(--greenish-blue);--hashtag-default:var(--dark-contrast-blue);--hashtag-green:var(--spermidine-green);--hashtag-blue:var(--greenish-blue);--brand-yellow-js:var(--illuminating-higher-contrast);--brand-yellow-js-neon:var(--illuminating-higher-contrast);--brand-yellow-miro:var(--illuminating-higher-contrast);--brand-yellow-miro-neon:color(display-p3 0.94 0.76 0.25);--brand-orange-html:var(--omega-purple);--brand-orange-html-neon:var(--omega-purple);--brand-orange-mysql:var(--omega-purple);--brand-brown-composer:var(--omega-purple);--brand-red-express-post-apache:var(--brand-reddish-dark);--brand-red-express-post-apache-neon:var(--brand-reddish-dark);--brand-red-oracle-soap-npm:var(--brand-reddish-dark);--brand-red-oracle-soap-npm-neon:var(--brand-reddish-dark);--brand-purple-scss:var(--omega-purple);--brand-purple-scss-neon:var(--omega-purple);--brand-purple-dark-preact:#673ab8;--brand-blue-tailwind-react:var(--brand-blue-light);--brand-blue-tailwind-react-neon:var(--brand-blue-light);--brand-blue-shopware6:var(--brand-purple-dark-preact);--brand-blue-shopware5:var(--dark-contrast-blue);--brand-blue-liquid:var(--dark-contrast-blue);--brand-blue-liquid-neon:var(--dark-contrast-blue);--brand-blue-typescript:var(--dark-contrast-blue);--brand-blue-typescript-neon:var(--dark-contrast-blue);--brand-blue-php7:var(--dark-contrast-blue);--brand-blue-php8:var(--brand-purple-dark-preact);--brand-blue-less:var(--dark-contrast-blue);--brand-blue-less-neon:color(display-p3 0.03 0.41 0.68);--brand-green-twig-bg:#f8ffcf;--brand-green-css-mongo:var(--spermidine-green);--brand-green-css-mongo-neon:var(--spermidine-green);--interior-rose:#ffe0cf;--brand-vanilla:#fff;--textmarker-blue:#b7efff;--skills-tile-container-bg:var(--omage-purple-darker);--primary-animation-color:#000}body{voice-family:male;voice-pitch:high}img{border:none;border-radius:.25rem}figure.content-image{display:block;margin:0;padding:0}figure.content-image img{height:auto;max-width:calc(100vw - 24px);width:800px}figure.content-image figcaption{font-size:.8125em;padding-top:.25em}.pl0,.pl0.pl0{padding-left:0}.pl1{padding-left:1em}.center{margin:0 auto;text-align:center}a,a:active,a:focus,a:hover,a:link,a:visited{color:var(--primary-foreground);-webkit-text-decoration-color:var(--primary-foreground);text-decoration-color:var(--primary-foreground);-webkit-text-decoration-line:underline;text-decoration-line:underline;-webkit-text-decoration-style:solid;text-decoration-style:solid;text-decoration-thickness:from-font;text-underline-offset:4px}a:focus,a:hover{-webkit-text-decoration-color:var(--link-hover-background);text-decoration-color:var(--link-hover-background);-webkit-text-decoration-style:dotted;text-decoration-style:dotted;text-decoration-thickness:.1em}.main-menu a{display:block;padding:.75em 15px;text-decoration:none}.social-links a{padding:1em}.social-links a:focus,.social-links a:hover{border-radius:.25em;color:var(--primary-background);max-height:4em}.font-sans{font-family:var(--sans-font-family);font-weight:var(--body-font-weight)}@media screen and (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}::-moz-selection{background-color:var(--textmarker-blue);background-color:var(--slightly-neon-blue);color:var(--secondary-foreground)}::selection{background-color:var(--textmarker-blue);background-color:var(--slightly-neon-blue);color:var(--secondary-foreground)}a::-moz-selection,h1::-moz-selection{background-color:var(--textmarker-blue-semitransparent);background-color:var(--slightly-neon-blue-semitransparent);color:var(--secondary-foreground)}a::selection,h1::selection{background-color:var(--textmarker-blue-semitransparent);background-color:var(--slightly-neon-blue-semitransparent);color:var(--secondary-foreground)}img::-moz-selection{background-color:var(--textmarker-blue-verytransparent)}img::selection{background-color:var(--textmarker-blue-verytransparent)}.alternating-div-color>div:nth-child(2n-1):not(.no-alternating-color){background-color:var(--cta-light-background);color:var(--secondary-foreground)}body.high-contrast .alternating-div-color>div:nth-child(2n-1):not(.no-alternating-color){border-bottom:thin solid var(--secondary-heading);border-top:thin solid var(--secondary-heading)}.text-content-color a,.text-content-color a:active,.text-content-color a:link,.text-content-color a:visited{color:var(--secondary-foreground);-webkit-text-decoration-color:var(--secondary-foreground);text-decoration-color:var(--secondary-foreground)}.text-content-color a:focus,.text-content-color a:hover{-webkit-text-decoration-color:var(--link-hover-background);text-decoration-color:var(--link-hover-background)}.main-menu a:focus,.main-menu a:hover{background:var(--nav-menu-background)}.breakable{max-width:100%;text-overflow:ellipsis;word-wrap:break-word}.page-footer a:active,.page-footer a:focus,.page-footer a:hover,.page-footer a:link,.page-footer a:visited,.transparent a:active,.transparent a:focus,.transparent a:hover,.transparent a:link,.transparent a:visited,.vcard-block-visual-background a:active,.vcard-block-visual-background a:focus,.vcard-block-visual-background a:hover,.vcard-block-visual-background a:link,.vcard-block-visual-background a:visited,a.menu-toggle:active,a.menu-toggle:focus,a.menu-toggle:hover,a.menu-toggle:link,a.menu-toggle:visited{background-image:linear-gradient(var(--primary-background),var(--primary-background)),linear-gradient(var(--primary-background),var(--primary-background)),linear-gradient(var(--link-hover-background),var(--link-hover-background));background-position:0 0,100% 0,0 0;background-size:70% 100%,50% 100%,99% 100%;margin-bottom:-8px}.vcard-block-visual-background a:active,.vcard-block-visual-background a:focus,.vcard-block-visual-background a:hover,.vcard-block-visual-background a:link,.vcard-block-visual-background a:visited{background-image:linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(var(--link-hover-background),var(--link-hover-background));color:var(--secondary-foreground);-webkit-text-decoration-color:var(--secondary-foreground);text-decoration-color:var(--secondary-foreground)}.page-footer a:nth-child(2),.page-footer a:nth-child(3){margin-left:1rem}.page-footer a:focus,.page-footer a:hover,.transparent a:focus,.transparent a:hover,.vcard-block-visual-background a:focus,.vcard-block-visual-background a:hover,a.menu-toggle:focus,a.menu-toggle:hover{background-size:0 100%,0 100%,100% 100%;color:#000;outline:none}@supports (background-image:linear-gradient(#222b40,#222b40)) and (transition:all 2s linear){a,a:active,a:focus,a:hover,a:link,a:visited{background-image:linear-gradient(var(--primary-background),var(--primary-background)),linear-gradient(var(--primary-background),var(--primary-background)),linear-gradient(var(--link-hover-background),var(--link-hover-background));background-position:0 0,100% 0,0 0;background-repeat:no-repeat;background-size:100% 100%,50% 100%,100% 100%;transition:background-size .25s ease-in,color .25s ease-in}a:focus,a:hover{background-size:0 100%,0 100%,100% 100%}.text-content-color a,.text-content-color a:active,.text-content-color a:focus,.text-content-color a:hover,.text-content-color a:link,.text-content-color a:visited{background-image:linear-gradient(var(--secondary-lighter-background),var(--secondary-lighter-background)),linear-gradient(var(--secondary-lighter-background),var(--secondary-lighter-background)),linear-gradient(var(--link-hover-background),var(--link-hover-background))}}.alternating-div-color>div:nth-child(2n-1):not(.no-alternating-color) a,.alternating-div-color>div:nth-child(2n-1):not(.no-alternating-color) a:link,.alternating-div-color>div:nth-child(2n-1):not(.no-alternating-color) a:visited{background-image:linear-gradient(var(--cta-light-background),var(--cta-light-background)),linear-gradient(var(--cta-light-background),var(--cta-light-background)),linear-gradient(var(--link-hover-background),var(--link-hover-background))}.hashtag{background-color:var(--hashtag-default);border-radius:10%;color:#fff;display:inline-block;font-size:.75rem;margin-bottom:.5em;margin-right:.125em;padding:.25em .5em;white-space:nowrap}.page-footer{color:var(--primary-foreground);line-height:1;margin:0 auto;padding:0 0 1vh;text-align:center}.flex-reverse{display:flex;flex-direction:row-reverse;flex-wrap:wrap}.flex-column-bigger{flex-basis:66%}.flex-column-smaller{flex-basis:33%}.tile{padding:0;position:relative}.grid-container.services h3{margin-left:.5rem}.grid-container--projects .tile h3{margin:1rem 0 0}.tile .timestamp{position:absolute;right:1.5em;top:1em}.tile .flex{display:flex;flex-direction:column;justify-content:space-between}.tile-content{padding:0 1em}.code-link{max-width:99%;overflow-x:clip;text-overflow:ellipsis}.code-link,.code-link:not(.only-print){display:inline-block;white-space:nowrap}.bg-peel{background:linear-gradient(259deg,var(--primary-background) 0,var(--peel-gradient-semitrans) 20%,var(--peel-gradient) 60%);height:100%;width:100%}body.high-contrast .bg-peel{background:var(--primary-background);opacity:1}@media (prefers-reduced-transparency){.bg-peel{background:var(--primary-background);opacity:1}}.hashtags{display:flex;flex-wrap:wrap}.vcard{margin:1em auto 0;max-width:490px;position:relative}.vcard-block{padding:1em;text-align:left}.vcard-block-visual-background{background-color:#fff;color:#000}.vcard-block-fiscal{padding-left:3rem;padding-top:0}@media (max-width:768px){.vcard-block-fiscal{font-size:1.125rem}.vcard-digital-wrapper{margin-top:0}}.vcard .adr{display:block;margin-bottom:.75em}#contact contactform-wrapper.initially-hidden{display:none}#contact:target contactform-wrapper.initially-hidden{display:block}.contactform fieldset{border:none;margin:0 0 0 -.25rem;padding:0}.contactform-row,.contactform-title{display:block}.contactform-title{font-weight:700;margin:.5em 0 1em}.contactform-row{display:flex;margin:.5rem 0 0}.contactform-row.initially-hidden{display:none}.contactform-row label{flex:0 0 6rem;max-width:100%;padding-left:.25rem}.contactform-field-message,.contactform-row input{-moz-appearance:none;appearance:none;-webkit-appearance:none;border:thin solid silver;box-shadow:none;color:#000;font-family:var(--body-font-family);font-size:1rem;margin:0;padding:0 0 0 .25rem}.contactform-row input{flex:1 0 6em;max-width:100%}.contactform-field-message::-moz-placeholder,.contactform-row input::-moz-placeholder{color:#000}.contactform-field-message::placeholder,.contactform-row input::placeholder{color:#000}.contactform-field-message{flex:1 0 100%;margin-top:.5rem;max-width:100%;min-height:4rem;padding-top:.25rem}.contactform-button-submit{cursor:pointer;font-family:var(--body-font-family);font-size:1rem;margin-top:.25rem;padding:.25rem 1rem;width:100%}.contactform-message{margin-right:-1rem;padding-top:1rem}.contactform-message-sent:before{content:"✅";margin-right:.25rem}.contactform-message-error:before{content:"❌";margin-right:.25rem}.contactform-field-captcha,.contactform-field-homepage,.contactform.status-error .contactform-button-submit .send-first,.contactform.status-error .contactform-button-submit .send-retry,.contactform.status-initial .contactform-message-error,.contactform.status-initial .contactform-message-sending,.contactform.status-initial .contactform-message-sent,.contactform.status-initial .initially-hidden,.contactform.status-sending .contactform-button-submit .send-retry,.contactform.status-sending .contactform-row-submit,.contactform.status-sent .contactform-button-submit .send-retry,.contactform.status-sent .contactform-row-submit{display:none}.contactform.status-error .contactform-message-error,.contactform.status-sending .contactform-message-sending,.contactform.status-sent .contactform-message-sent{display:block}.contactform.status-error .contactform-button-submit .send-retry{display:inline}@media only screen and (max-width:490px){.vcard{font-size:1.25em}#contact,.vcard,main>section{max-width:100%;max-width:100vw}.copyright-details{display:block;margin-top:.5em}}.vcard h2{text-align:center}.vcard h2,.vcard h3{color:#000;font-size:2em;margin:0}.vcard-digital-wrapper{margin:3rem auto 1rem;padding:0;pointer-events:none;text-align:right;-moz-user-select:none;-webkit-user-select:none;user-select:none;width:100%}.vcard-digital-qr{background:transparent;display:inline-block;margin:1rem 0 0 auto;text-align:center}a.vcard-digital-qr:active,a.vcard-digital-qr:hover,a.vcard-digital-qr:link,a.vcard-digital-qr:visited{background:none;background-image:none}.vcard-digital-qr-image{display:block;height:auto;width:90%}@media (min-width:360px){.vcard-digital-teaser-text{margin-left:20%}}@media (min-width:490px){.vcard-digital-wrapper{height:-moz-min-content;height:min-content;margin:0;padding:6rem 1rem 0 0;position:absolute;right:0;top:0}.vcard-digital-qr{margin:0 0 0 auto;text-align:right}.vcard-digital-qr-image{max-width:40vw;width:8rem}}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0}.price{white-space:nowrap}.visually-spaced+.visually-spaced:before{content:" ";letter-spacing:.25rem}.menu-toggle{display:inline-block;padding:6px 8px 0 4px}.nav-wrapper .contrast-toggle,.nav-wrapper .menu-toggle{margin-right:0;padding-left:0;padding-right:0}@media only screen and (min-width:410px){.menu-toggle{margin-right:.5rem}}.main-menu{display:none;height:auto;max-height:100vh;overflow-x:visible;overflow-y:auto;position:absolute;right:-200px;top:0;transition:left .3s ease,box-shadow .3s ease;z-index:999}.main-menu ul{background:var(--primary-background);box-shadow:-8px 0 8px rgba(0,0,0,.75);list-style:none;margin:0;min-height:100%;padding:2.5em 0 0;width:200px}.main-menu .menuClose{position:absolute;right:0;top:0}.main-menu:target,.main-menu[aria-expanded=true]{box-shadow:3px 0 12px rgba(0,0,0,.75);display:block;outline:none;right:0}.main-menu:target .menuClose,.main-menu[aria-expanded=true] .menuClose{background:transparent;border:none;text-decoration:none;z-index:1001}.main-menu:target ul,.main-menu[aria-expanded=true] ul{position:relative;z-index:1000}.main-menu:target+.backdrop,.main-menu[aria-expanded=true]+.backdrop{background-color:var(--primary-background);cursor:default;display:block;height:100%;position:absolute;right:0;top:0;width:100%;z-index:998}@media screen and (min-width:320px) and (max-width:949.999px){.extra-nav-link,.extra-nav-link.initially-hidden{display:inline-block;margin-right:1rem;padding:.375rem .5rem 0;text-decoration:none}a.extra-nav-link:active,a.extra-nav-link:focus,a.extra-nav-link:hover{color:#000}}@media (min-width:950px){.main-menu .menuClose,.menu-toggle{display:none}.main-menu{display:block;height:auto;left:0;margin:0 0 -4px;overflow-y:hidden;position:relative;top:auto}.main-menu ul{background:none;box-shadow:none;display:flex;height:auto;padding:0;width:auto}.main-menu ul li,.sticky-header>.wrapper>.raised-layer{display:inline-block;float:left}.main-menu a{white-space:nowrap}.page-navigation a:active,.page-navigation a:focus,.page-navigation a:hover,.page-navigation a:link,.page-navigation a:visited,.sticky-header a:active,.sticky-header a:focus,.sticky-header a:hover,.sticky-header a:link,.sticky-header a:visited{background-image:linear-gradient(var(--primary-background),var(--primary-background)),linear-gradient(var(--primary-background),var(--primary-background)),linear-gradient(var(--link-hover-background),var(--link-hover-background));background-position:0 0,100% 0,0 0;background-repeat:no-repeat;background-size:70% 100%,50% 100%,99% 100%;line-height:1;margin-bottom:-8px}.page-navigation a:focus,.page-navigation a:hover{background-size:0 100%,0 100%,100% 100%;color:#000;outline:none}}@media (min-width:1340px){.services-wrapper{padding-left:0;padding-right:0}}.grid-container .tile a:active,.grid-container .tile a:link,.grid-container .tile a:visited{color:var(--primary-foreground);font-size:1em}.grid-container .tile a:focus,.grid-container .tile a:hover{color:#000}.grid-container .tile a:active,.grid-container .tile a:focus,.grid-container .tile a:hover,.grid-container .tile a:link,.grid-container .tile a:visited{background-image:linear-gradient(var(--peel-gradient),var(--peel-gradient)),linear-gradient(var(--peel-gradient),var(--peel-gradient)),linear-gradient(var(--link-hover-background),var(--link-hover-background))}.social-links{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;list-style:none;margin-left:auto;margin-right:auto;max-width:490px;padding:0 3em}.social-links svg{height:2rem;width:auto}.social-links a:not(.only-print){display:block;min-height:2.5em;min-width:2.5em}.social-links a:not(a:hover):not(a:focus){background:none}.landingpage--links,.legal--copyright{margin-bottom:2em}.rounded-rectangle{border:0 solid transparent;border-radius:1em/.75em}.page-footer .transparent a:link:not(a:focus):not(a:hover),.page-footer .transparent a:not(a:focus):not(a:hover),.page-footer .transparent a:visited:not(a:focus):not(a:hover),.transparent,.transparent a:link:not(a:focus):not(a:hover),.transparent a:not(a:focus):not(a:hover),.transparent a:visited:not(a:focus):not(a:hover),a.transparent,a:link.transparent,a:visited.transparent{background-color:transparent;background-image:none}a.transparent:focus .rounded-rectangle,a.transparent:hover .rounded-rectangle{border:2px solid var(--link-hover-background)}#sticky-headline a{background:none;text-decoration:none}#sticky-headline a:focus,#sticky-headline a:hover,a.menu-toggle:hover{background-color:var(--link-hover-background);color:#000;outline:none}.nav-wrapper .contrast-toggle{-moz-appearance:none;-webkit-appearance:none;appearance:none;background-color:transparent;border:none;cursor:pointer;text-decoration:none}.contrast-toggle svg{color:#fff;margin:.35rem .5rem -.35rem}.jumbotronHeader .overline,.jumbotronHeader h1{background:-webkit-linear-gradient(var(--gradient-heading-dark-side),var(--gradient-heading),var(--primary-heading),var(--gradient-heading-bright-side));background-clip:unset;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:AnimateTextGradient 7s ease infinite;animation-delay:1s;background-size:100% 150%}@keyframes AnimateTextGradient{0%{background-position:50% 0}50%{background-position:50% 100%}to{background-position:50% 0}}ul.code-links{max-width:100%;overflow-x:hidden;text-overflow:ellipsis}@media only screen and (max-width:490px){ul.code-links{padding-left:1.25rem}}ul.grid-container.skills{margin-bottom:2em}.sitemap li{margin-top:.5rem}.sitemap ul:last-child{margin-bottom:1rem}@media (max-width:768px){.sitemap ul{padding-left:.5rem}}.sitemap h2{margin-bottom:0}.skills h3,.skills h4{color:#fff;font-size:1.25em}.skills>.tile{background-color:var(--skills-tile-container-bg);color:#000;padding-left:1em}.skills>.tile ul{list-style-type:none;padding:0 1em 0 0}.skills>.tile li{background:#fff;margin-bottom:1em;min-height:5.5em;padding:.75em 1em}.skills .tile .hashtag{border-radius:0;font-size:.8125em;margin-right:3px}.grid-container.services{display:flex;grid-gap:0;gap:0}.grid-container.services>li{align-items:flex-start;background-color:var(--cta-light-background);color:var(--secondary-foreground);display:flex;flex-basis:32%;flex-direction:column;padding:0 0 2rem}@media only screen and (max-width:840px){.grid-container.services>li{flex-basis:100%}}.grid-container.services>li>h3{padding-left:1rem}.grid-container.services>li ul{flex-grow:1;list-style-type:disc;padding:0 .5rem 0 2.75rem}.grid-container.services>li ul li{padding:0}.grid-container.services a.buttonlike,.grid-container.services a.buttonlike:active,.grid-container.services a.buttonlike:focus,.grid-container.services a.buttonlike:hover,.grid-container.services a.buttonlike:link,.grid-container.services a.buttonlike:visited,a.buttonlike,a.buttonlike:active,a.buttonlike:focus,a.buttonlike:hover,a.buttonlike:link,a.buttonlike:visited,button.buttonlike{align-items:center;align-self:center;background:var(--cta-button-light-background);background-color:var(--cta-button-light-background);background-image:none;border:thin solid var(--cta-button-light-background);border-radius:.25rem;color:var(--secondary-foreground);display:inline-block;display:flex;justify-content:center;margin-top:1.5rem;min-height:3rem;min-width:11rem;padding:0;text-align:center;text-decoration:none;transition:box-shadow .125s ease-out,font-size .125s ease-out,padding .125s ease-out}.cta-container{display:flex;justify-content:center;min-height:6rem;padding-bottom:1rem}.text-content-layout-children+.cta-container{margin-bottom:3rem}.text-content-layout-children+.cta-container:after{content:" ";display:block;height:3rem}main>section:last-child>.cta-container:last-child{min-height:10rem}.cta-container a.buttonlike,.cta-container a.buttonlike:active,.cta-container a.buttonlike:focus,.cta-container a.buttonlike:hover,.cta-container a.buttonlike:link,.cta-container a.buttonlike:visited{max-width:100%;min-width:20rem}.grid-container.services a.buttonlike:active,.grid-container.services a.buttonlike:link,.grid-container.services a.buttonlike:visited,a.buttonlike:active,a.buttonlike:link,a.buttonlike:visited,button.buttonlike{box-shadow:var(--effect-box-shadow-dropshadow)}.grid-container.services a.buttonlike:focus,.grid-container.services a.buttonlike:hover,a.buttonlike:focus,a.buttonlike:hover,button.buttonlike:focus,button.buttonlike:hover{box-shadow:var(--effect-box-shadow-dropshadow-darker);font-size:1.125rem}body.high-contrast a.buttonlike,body.high-contrast button.buttonlike{background-color:#fff;border:thin solid #000}ul.aside-heading>li{margin-bottom:1rem}ul.aside-heading>li:last-child{margin-bottom:2rem}.brand-coral{background-color:var(--interior-rose);color:#000}.brand-beige{background-color:var(--palo-rose);color:#000}.brand-yellow{background-color:var(--brand-yellow-js);background-color:var(--brand-yellow-js-neon);color:#000}.brand-yellow-dark{background-color:var(--brand-yellow-miro);background-color:var(--brand-yellow-miro-neon);color:#000}.brand-orange{background-color:orange;background-color:var(--brand-orange-html);background-color:var(--brand-orange-html-neon);color:#fff}.brand-orange-light{background-color:var(--brand-orange-mysql);color:#fff}.brand-red-dark{background-color:var(--brand-red-oracle-soap-npm);background-color:var(--brand-red-oracle-soap-npm-neon);color:#fff}.brand-red-light{background-color:var(--brand-red-express-post-apache);background-color:var(--brand-red-express-post-apache-neon);color:#fff}.brand-purple{background-color:var(--brand-purple-scss);background-color:var(--brand-purple-scss-neon);color:#fff}.brand-purple-dark{background-color:var(--brand-purple-dark-preact);color:#fff}.brand-rebeccapurple{background-color:var(--brand-rebeccapurple);background-color:#639;color:#fff}.brand-blue{background-color:var(--brand-blue-typescript);background-color:var(--brand-blue-typescript-neon);color:#fff}.brand-blue-less{background-color:var(--brand-blue-less);background-color:var(--brand-blue-less-neon);color:#fff}.brand-blue-light{background-color:var(--brand-blue-tailwind-react);background-color:var(--brand-blue-tailwind-react-neon);color:#000}.brand-blue-liquid{background-color:var(--brand-blue-liquid);background-color:var(--brand-blue-liquid-neon);color:#fff}.brand-blue-purplish{background-color:var(--brand-blue-shopware6);color:#fff}.brand-blue-shopware{background-color:var(--brand-blue-shopware5);color:#fff}.brand-blue-php{background-color:var(--brand-blue-php7);color:#fff}.brand-blue-php8{background-color:var(--brand-blue-php8);color:#fff}.brand-green{background-color:var(--brand-green-css-mongo);background-color:var(--brand-green-css-mongo-neon);color:#fff}.brand-green-twig{background-color:var(--brand-green-twig-bg);color:var(--brand-green-twig-fg)}.brand-gray-light{background-color:var(--brand-gray-mongoose);color:#fff}.brand-gray{background-color:var(--brand-gray-eleventy);color:#fff}.brand-gray-dark{background-color:var(--brand-black-inkscape);color:#fff}.brand-brown-light{background-color:var(--brand-brown-composer);color:#fff}.brand-brown-dark{background-color:var(--brand-gray-gimp);color:#fff}.brand-vanilla{background-color:var(--brand-vanilla);border:thin solid var(--merino-slightly-lighter);color:#000}.testimonials{margin-bottom:2rem}.testimonial,.testimonials+a{margin:0 0 2em .5em;max-width:1080px}.testimonial blockquote{position:relative}.testimonial blockquote:before{color:var(--gradient-heading-dark-side);content:"”";display:block;font-family:var(--heading-font-family);font-size:3rem;height:3rem;left:-2rem;position:absolute;top:-1rem;width:3rem}.testimonial .stars:after{content:"⭐⭐⭐⭐⭐";display:inline-block;margin-left:.5rem;text-shadow:var(--effect-box-shadow-dropshadow);width:auto}figure.testimonial figcaption{font-weight:400}@media (min-width:950px){.testimonial,.testimonials+a{margin:0 2em 2em}}.badge--greenweb a:hover{background-image:none}.badge--greenweb a:hover img{background:var(--link-hover-background);border:2px solid var(--link-hover-background);border-radius:.5em;margin:-2px 0}#top #wcb #wcb_a,#wcb #wcb_g{--b2:#017d63}#top #wcb #wcb_g{color:#000}#top #wcb #wcb_2{color:#ebeff2;font-family:Montserrat,Helvetica,sans-serif;font-size:1rem;line-height:1;padding:.25rem 0}#top #wcb #wcb_a:focus,#top #wcb #wcb_a:hover{background-color:var(--link-hover-background);color:#000;-webkit-text-decoration-color:var(--link-hover-background);text-decoration-color:var(--link-hover-background);-webkit-text-decoration-style:dotted;text-decoration-style:dotted;text-decoration-thickness:.1em}@media (max-width:340px){#sticky-headline{display:inline-block;padding:.25rem 0 0 .5rem}.avatar{display:none}}body.high-contrast .sticky-header>.wrapper{box-shadow:none}body.high-contrast .skills .tile li>span:first-child{display:inline-block;font-weight:700;margin-bottom:.5em}body.high-contrast .skills .tile .hashtag{font-weight:700}.grid-container.grid-container--projects{background-position:0 0;background-repeat:no-repeat;background-size:auto;grid-auto-rows:var(--project-tile-min-height);grid-auto-rows:minmax(min-content,max-content);grid-template-columns:repeat(auto-fit,minmax(100%,1fr));overflow:visible;position:relative;z-index:2;grid-column-gap:1em;grid-row-gap:1.5em}.grid-container--projects .tile{border:thin dashed;line-height:2;margin-left:auto;margin-right:auto;max-width:calc(100% - 2px);overflow:hidden;text-overflow:ellipsis}@media only screen and (min-width:768px){.grid-container.grid-container--projects{grid-template-columns:repeat(auto-fit,minmax(480px,1fr))}.grid-container--projects .tile{max-width:100%}}.grid-container--projects .tile:not(.has-icons) .description-group,.grid-container--projects .tile:not(.has-icons) .project-link-wrapper{padding-top:1em}.grid-container--projects .tile:not(.has-icons) .project-link-wrapper+.project-link-wrapper{padding-top:.5em}.grid-container--projects .tile:not(.has-icons) .flex-push{flex-basis:100%}.grid-container.grid-container--projects.flip-box-container{grid-auto-rows:var(--project-tile-min-height);grid-auto-rows:minmax(min-content,max-content)}.grid-container--projects .hashtag{background-color:var(--hashtag-default);border-radius:0;color:#fff;font-size:.95em}.flip-box-row{background-color:transparent;border:none;flex-basis:100%;flex-grow:1;flex-shrink:0;height:auto;height:-moz-max-content;height:max-content;margin-bottom:-24px;margin-top:-24px;outline:none;padding-bottom:24px;padding-top:24px;width:100%}.flip-box-back,.flip-box-column,.flip-box-decoration,.flip-box-front,.tile-content{min-height:var(--project-tile-min-height)}.flip-box-column{height:100%;height:-moz-max-content;height:max-content;position:relative;width:100%}.flip-box-column .flip-height-placeholder,.flip-box-column .flip-height-placeholder.poster-image,.flip-height-placeholder{display:none;visibility:hidden}.flip-box-back,.flip-box-front{height:100%;margin:0 auto 2em;max-width:unset;width:100%}.flip-box-back{align-items:center;display:flex;padding:0}.flip-box-decoration{align-items:center;display:flex;mix-blend-mode:soft-light;opacity:.25;position:absolute;top:0}.flip-box-front.tile{background-color:#fff;position:relative}.flip-box-column .tile-content{position:absolute}.flip-box-column .poster-image{display:block;height:auto;position:relative;width:100%}@media (max-width:1307px){.flip-box-column .poster-image{max-width:98vw}.flip-box-front.tile{max-width:calc(100% - 4px)}.flip-box-back{aspect-ratio:65/58}}@media (min-width:856px) and (prefers-reduced-motion:no-preference){.flip-box-row{height:100%;perspective:5000px;width:100%}.flip-box-column{transform-style:preserve-3d;transition:transform .8s}.flip-box-column .flip-height-placeholder,.flip-box-column .flip-height-placeholder.poster-image,.flip-height-placeholder{display:block}.flip-box-column .flip-box-back,.flip-box-column .flip-box-front{backface-visibility:hidden;margin:0;position:absolute;top:0;-webkit-transform:translateZ(0)}.flip-box-column .flip-box-back,.flip-box-row.active .flip-box-column,.flip-box-row:hover .flip-box-column,.flip-box-row:not(.active):focus .flip-box-column,.flip-box-row:not(.active)[focus-within] .flip-box-column{transform:rotateY(180deg)}.flip-box-row.active .flip-box-column,.flip-box-row:hover .flip-box-column,.flip-box-row:not(.active):focus .flip-box-column,.flip-box-row:not(.active):focus-within .flip-box-column{transform:rotateY(180deg)}}#project-kleiderordnung .flip-box-front{background-color:#f5f1ed}#project-twistedconnection .flip-box-front{background-color:#f2f1ed}body.high-contrast .flip-box-decoration{opacity:0}@media (prefers-reduced-transparency){.flip-box-decoration{opacity:1}}.logo-inline{height:1.125rem;margin-bottom:-.125rem;margin-right:.25rem;width:auto}