:root{--bg-color-white:#fff;--bg-color-whitish:#e6e6e6;--bg-color-whitish-alpha:#c2c2c2c2;--bg-color-dark:#0b0b0b;--bg-color-dark-alpha:#222222b3;--text-color-white:#fff;--text-color-gray:#444;--text-color-light-gray:#666;--color-accent:#d60;--breakpoint-tablet:1050px;--text-gradient:linear-gradient(45deg,var(--text-color-white) 30%,var(--color-accent))}*{box-sizing:border-box;cursor:none;margin:0;padding:0;scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#0b0b0b;background-color:var(--bg-color-dark);font-family:Jost,sans-serif;font-optical-sizing:auto;font-style:normal;letter-spacing:1px;overflow:hidden}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}a:visited{color:inherit}button{cursor:pointer}h1{font-size:5rem}h1,h2{width:100%}h2{font-size:3rem}@keyframes LoadingScreen_spin__3mWLN{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}#logo-canvas-container{height:350px;width:350px}.LoadingScreen_loadingScreen__UimSo{align-items:center;background-color:var(--bg-color-dark);color:var(--text-color-white);display:flex;flex-direction:column;font-size:1.5em;height:100vh;justify-content:space-around;left:0;overflow:hidden;position:fixed;top:0;transition:transform .6s linear,opacity .6s linear;width:100%;z-index:10}.LoadingScreen_circles__Tg7ZQ{animation:LoadingScreen_spin__3mWLN 6s linear infinite;filter:blur(.8px);height:250px;position:absolute;width:250px;z-index:-1}.LoadingScreen_circles__Tg7ZQ>*{animation:LoadingScreen_spin__3mWLN 5s linear infinite;aspect-ratio:1;background-color:#0000;border:1px solid var(--color-accent);border-left:0 solid #0000;border-radius:50%;border-top:0 solid #0000;box-sizing:border-box;position:absolute}.LoadingScreen_circles__Tg7ZQ+.LoadingScreen_circles__Tg7ZQ,.LoadingScreen_circles__Tg7ZQ+.LoadingScreen_circles__Tg7ZQ>*{animation:LoadingScreen_spin__3mWLN 10s linear infinite reverse backwards;transform:rotateY(180deg)}section{align-items:center;animation-play-state:inherit;background-color:var(--bg-color-dark);display:flex;flex-grow:1;font-size:1.5em;justify-content:center;min-height:110vh;padding:5vw;scroll-snap-align:center;transition:opacity .25s linear;will-change:opacity}@keyframes ProjectTile_fade-in__FAfh0{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes ProjectTile_tiles-fade-in__mFzCO{0%{opacity:0}to{opacity:1}}.ProjectTile_project_tile__zCJmE{animation:ProjectTile_tiles-fade-in__mFzCO 1s ease-in forwards;animation-play-state:inherit;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text-color-white);opacity:0;transition:filter,transform,opacity,box-shadow;transition-delay:.1s;transition-duration:.3s;transition-timing-function:linear}.ProjectTile_project_tile__zCJmE:not(:last-child){margin-bottom:15px}.ProjectTile_project_tile__zCJmE:hover{box-shadow:0 0 15px 3px var(--color-accent)}.ProjectTile_project_tile__zCJmE:has(~.ProjectTile_project_tile__zCJmE:hover),.ProjectTile_project_tile__zCJmE:hover~*{filter:grayscale(1) opacity(.3)}.ProjectTile_project_tile__zCJmE .ProjectTile_project_data_wrapper__\+mfez{display:flex;flex-direction:column;height:100%;justify-content:flex-start;overflow:hidden;position:relative}.ProjectTile_project_tile__zCJmE .ProjectTile_project_image_wrapper__0HDgp{min-height:43%;overflow:hidden}.ProjectTile_project_tile__zCJmE .ProjectTile_project_image__XKfWD{display:block;width:100%}.ProjectTile_project_tile__zCJmE .ProjectTile_project_info__Lj0SW{background-image:linear-gradient(0deg,#000 5%,#0000 40%);display:flex;flex-direction:column;flex-grow:1;font-size:.5em;gap:8px;padding:0 10px 10px}.ProjectTile_project_tile__zCJmE .ProjectTile_project_name__JmePg{font-size:1.6rem}.ProjectTile_project_tile__zCJmE .ProjectTile_project_link__\+\+LsS{color:var(--color-accent)}.ProjectTile_project_tile__zCJmE .ProjectTile_project_type__7kn-W{align-self:center;color:var(--color-accent)}.ProjectTile_project_tile__zCJmE .ProjectTile_project_text__q4W0n{overflow:hidden;padding:10px 0}.ProjectTile_project_tile__zCJmE .ProjectTile_project_stack__nkhJJ{align-self:self-end;display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:0 auto;max-width:100%}.ProjectTile_project_tile__zCJmE .ProjectTile_project_stack__nkhJJ svg{height:20px;width:20px}@media(max-width:1050px){.ProjectTile_project_tile__zCJmE{flex-basis:45%;padding:0;transform:none!important}.ProjectTile_project_tile__zCJmE .ProjectTile_project_data_wrapper__\+mfez{flex-direction:column;gap:0}.ProjectTile_project_tile__zCJmE .ProjectTile_project_image_wrapper__0HDgp,.ProjectTile_project_tile__zCJmE .ProjectTile_project_info__Lj0SW{width:100%}.ProjectTile_project_tile__zCJmE .ProjectTile_project_info__Lj0SW{align-items:baseline;display:flex;flex-direction:column;flex-wrap:nowrap;gap:10px;justify-content:flex-start;padding:20px}.ProjectTile_project_tile__zCJmE .ProjectTile_project_name__JmePg{font-size:1.3em}.ProjectTile_project_tile__zCJmE .ProjectTile_project_type__7kn-W{align-self:auto}.ProjectTile_project_tile__zCJmE .ProjectTile_project_text__q4W0n{padding:0}}@media(max-width:600px){.ProjectTile_project_tile__zCJmE{animation:none;-webkit-backdrop-filter:none;backdrop-filter:none;opacity:1;transition:none}.ProjectTile_project_tile__zCJmE:not(:last-child){margin-bottom:30px}.ProjectTile_project_tile__zCJmE:hover{box-shadow:none;transform:none;z-index:auto}.ProjectTile_project_tile__zCJmE:has(~.ProjectTile_project_tile__zCJmE:hover),.ProjectTile_project_tile__zCJmE:hover~*{filter:none}.ProjectTile_project_tile__zCJmE .ProjectTile_project_data_wrapper__\+mfez{height:auto;min-height:100%}.ProjectTile_project_tile__zCJmE .ProjectTile_project_info__Lj0SW{background-image:linear-gradient(0deg,#000 30%,#0000)}.ProjectTile_project_tile__zCJmE .ProjectTile_project_link__\+\+LsS{margin-left:0}.ProjectTile_project_tile__zCJmE .ProjectTile_project_type__7kn-W{align-self:auto}}@keyframes ProjectTypeBlock_fade-in__3yh-D{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes ProjectTypeBlock_tiles-fade-in__A4wZx{0%{opacity:0}to{opacity:1}}.ProjectTypeBlock_project_type_block__ikoW5{display:flex;flex-direction:column;gap:2em}.ProjectTypeBlock_project_type_title__NkXg2{color:var(--text-color-white);font-size:1.5em;font-weight:500;text-align:center}@media screen and (max-width:1050px){.ProjectTypeBlock_project_type_title__NkXg2{padding-top:1em}}.ProjectTypeBlock_projects_wrapper__RdcRi{animation-play-state:inherit;column-count:4;gap:30px;margin-bottom:20px;transition:transform .25s ease-out}@media screen and (max-width:1050px){.ProjectTypeBlock_projects_wrapper__RdcRi{column-count:3}}@media screen and (max-width:600px){.ProjectTypeBlock_projects_wrapper__RdcRi{column-count:1;margin-bottom:0;padding:10%;transform:none}}.Icon_icon__qjIcj svg{display:block;height:50px;width:50px}@keyframes App_fade-in__XvFnO{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes App_tiles-fade-in__x8yEa{0%{opacity:0}to{opacity:1}}@keyframes App_home-bg-rotation__7o3p\+{0%{filter:blur(15px);transform:rotate(380deg) scale(.8)}to{filter:blur(0);transform:rotate(428deg) scale(1)}}header{mix-blend-mode:difference;padding:10px 0;position:fixed;top:0;transition:transform .25s linear;width:100%;z-index:3}@media(max-width:600px){header{height:100%;mix-blend-mode:normal;padding:0;transform:translateX(-100%)}}nav{align-items:center;background-image:var(--text-gradient);display:flex;font-size:20px;gap:30px;height:30px;justify-content:space-between;letter-spacing:2px;line-height:1;margin-left:auto;padding-left:15px;position:relative;width:50%}nav,nav a{-webkit-background-clip:text;background-clip:text;color:#0000}nav a{background-color:#fff;cursor:pointer;font-weight:500;padding:2px;text-align:center;-webkit-user-select:none;user-select:none;width:fit-content}nav a.App_active__L1enj{background-image:inherit}nav a.App_logo__KFImf{-webkit-backdrop-filter:none;backdrop-filter:none}nav a.App_logo__KFImf svg{filter:drop-shadow(3px 5px 2px rgba(0,0,0,.4));height:30px;width:30px}nav a.App_logo__KFImf .App_logo_text__vGZWV{font-size:2em;font-weight:600;left:100%;position:absolute;top:0}@media(max-width:1050px){nav{padding:0;width:100%}nav a{width:16%}nav a.App_logo__KFImf{display:none}}@media(max-width:600px){nav{background-clip:initial;background-color:var(--bg-color-whitish-alpha);background-image:none;flex-direction:column;font-size:2em;height:100%;justify-content:space-around;position:absolute;width:100%}nav a{-webkit-backdrop-filter:invert(70%);backdrop-filter:invert(70%);background-color:#0000;color:var(--text-color-white);padding:8px;width:40%}nav a:hover{text-decoration:none}}.App_menu_btn__rHuy1{-webkit-backdrop-filter:invert(70%);backdrop-filter:invert(70%);cursor:pointer;display:none;position:fixed;right:5%;top:5%;z-index:4}@media(max-width:600px){.App_menu_btn__rHuy1{display:block}}.App_sections_wrapper__6xNuz{align-items:stretch;display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto;position:relative}.App_floating_image_wrapper__wAVyM{font-size:2em;position:absolute;transform:translateX(25%);transition:top,transform;transition-delay:.1s;transition-duration:1s;transition-timing-function:cubic-bezier(0,.15,0,.95);z-index:20}.App_floating_image_wrapper__wAVyM .App_images__GzM5X{aspect-ratio:1;border:3px solid var(--color-accent);border-radius:50%;box-shadow:0 0 14px 3px var(--bg-color-dark);overflow:hidden;position:relative;width:100px}.App_floating_image_wrapper__wAVyM .App_floating_image__aYoi8{display:block;left:0;position:absolute;top:0;transition:opacity 1s linear;width:100%}.App_floating_image_wrapper__wAVyM .App_floating_image_logo__\+ocbG{align-items:center;display:flex;height:100%;justify-content:center}.App_floating_image_wrapper__wAVyM .App_floating_image_logo__\+ocbG svg{height:80%;width:80%}@media(max-width:1050px){.App_floating_image_wrapper__wAVyM .App_floating_image_logo__\+ocbG{display:none}}.App_floating_image_wrapper__wAVyM .App_floating_image_text__bfuG4{align-items:center;background-clip:inherit;background-image:inherit;color:inherit;display:flex;font-size:inherit;font-weight:500;height:100%;left:100%;padding:5px 12px;position:absolute;top:0}@media(max-width:1050px){.App_floating_image_wrapper__wAVyM{left:50%;transform:translateX(-50%)}.App_floating_image_wrapper__wAVyM .App_floating_image_text__bfuG4{display:none}}@media(max-width:600px){.App_floating_image_wrapper__wAVyM{display:none}}.App_home__5V9aF{color:#0000;flex-direction:column;gap:15px;min-height:100vh;overflow:hidden;padding-top:5%;position:relative;text-align:end;z-index:1}.App_home__5V9aF h1{animation-name:App_fade-in__XvFnO;opacity:0;padding-left:40%;transform:translateY(-10%)}.App_home__5V9aF ul{align-items:flex-start;align-self:flex-end;animation-name:App_fade-in__XvFnO;animation-play-state:inherit;display:flex;flex-direction:column;font-size:1em;gap:12px;list-style:none;opacity:0;transform:translateY(-10%);width:45%}.App_home__5V9aF ul li{position:relative}.App_home__5V9aF ul li:nth-child(2){left:-4%}.App_home__5V9aF ul li:nth-child(3){left:-9%}.App_home__5V9aF ul li:nth-child(4){left:-13%}.App_home__5V9aF ul li:before{background-color:var(--bg-color-whitish);content:"";display:block;height:1px;position:absolute;transform:translate(-150%,13px);width:20px}.App_home__5V9aF h1,.App_home__5V9aF ul{animation-delay:inherit;animation-duration:2s;animation-fill-mode:forwards;animation-iteration-count:1;animation-play-state:inherit;animation-timing-function:cubic-bezier(0,.15,0,.95)}.App_home__5V9aF h1,.App_home__5V9aF li{-webkit-background-clip:text;background-clip:text;background-image:var(--text-gradient);color:#0000}@media(max-width:1050px){.App_home__5V9aF{padding:5%}.App_home__5V9aF h1{padding:0}.App_home__5V9aF ul{width:auto}}@media(max-width:600px){.App_home__5V9aF h1{font-size:3.5rem}.App_home__5V9aF ul{font-size:.8em}.App_home__5V9aF ul li{position:static;text-align:right}}.App_about__YdnxP{align-items:stretch;background-attachment:fixed;background-image:linear-gradient(90deg,var(--color-accent) 0,#0000 10%),url(/static/media/abstract-timekeeper_2.317832af0da17f5f8497.jpg);background-position:50%;background-repeat:no-repeat;background-size:cover;gap:30px}.App_about__YdnxP .App_about_image__KpJ-k,.App_about__YdnxP .App_about_text_wrapper__fQ6OH{animation-delay:inherit;animation-duration:2s;animation-fill-mode:forwards;animation-iteration-count:1;animation-name:App_fade-in__XvFnO;animation-play-state:inherit;animation-timing-function:cubic-bezier(0,.15,0,.95);display:flex;flex-basis:50%;flex-direction:column;justify-content:center}.App_about__YdnxP .App_about_image__KpJ-k{align-items:center;flex-direction:row}.App_about__YdnxP .App_about_image__KpJ-k img{width:clamp(300px,50%,50%)}.App_about__YdnxP .App_about_text_wrapper__fQ6OH{gap:20px}.App_about__YdnxP p{font-size:1.1rem}@media screen and (max-width:1050px){.App_about__YdnxP h2{font-size:2em}.App_about__YdnxP p{max-width:none}}@media screen and (max-width:600px){.App_about__YdnxP{background-attachment:scroll;background-image:url(/static/media/abstract-timekeeper_2.317832af0da17f5f8497.jpg);flex-direction:column}.App_about__YdnxP .App_about_image__KpJ-k{justify-content:flex-start}.App_about__YdnxP p{font-size:.8em;max-width:none;text-align:left;text-align:initial}}.App_projects__a7TUU{background-attachment:fixed;background-image:linear-gradient(90deg,var(--color-accent) 0,#0000 10%),url(/static/media/abstract-timekeeper_1.7bd85c145b8d2d06de0c.jpg);background-position:50%;background-repeat:no-repeat;background-size:cover;flex-direction:column;gap:2em}@media screen and (max-width:600px){.App_projects__a7TUU{background-attachment:local;background-image:linear-gradient(100deg,var(--color-accent),#0000 40%),linear-gradient(280deg,var(--color-accent),#0000 40%);padding:inherit}}.App_contact__0nzkd{align-items:stretch;background-attachment:fixed;background-image:linear-gradient(90deg,var(--color-accent) 0,#0000 10%),url(/static/media/abstract-timekeeper_1.7bd85c145b8d2d06de0c.jpg);background-position:50%;background-repeat:no-repeat;background-size:cover;color:var(--text-color-white);gap:30px;min-height:100vh;padding:0}.App_contact__0nzkd .App_contact_section_cv__3gL1S,.App_contact__0nzkd .App_contact_section_form__tzOKZ{width:50%}.App_contact__0nzkd .App_contact_section_form__tzOKZ{display:flex;flex-direction:column;gap:40px;padding:5% 5vw 20px 0;width:50%}.App_contact__0nzkd .App_contact_section_form__tzOKZ h2{text-align:right}@media(max-width:1050px){.App_contact__0nzkd .App_contact_section_form__tzOKZ{padding-top:20%}.App_contact__0nzkd .App_contact_section_form__tzOKZ h2{text-align:left}}.App_contact__0nzkd .App_contact_section_cv__3gL1S{align-items:center;animation-play-state:inherit;background-image:url(/static/media/city.21ef3ebafe238ad299a8.jpg);background-size:cover;display:flex;flex-direction:column;gap:10%;justify-content:center;transition:background-position-y .25s ease-out}.App_contact__0nzkd .App_contact_options_wrapper__yQyxv{display:flex;width:100%}.App_contact__0nzkd .App_contact_form__bkRJA button,.App_contact__0nzkd .App_contact_form__bkRJA input,.App_contact__0nzkd .App_contact_form__bkRJA textarea{background-color:var(--bg-color-dark-alpha);border:1px solid var(--color-accent);border-radius:10px;color:var(--text-color-white);display:block;font-size:1em;outline:none;padding:.5em;width:100%}.App_contact__0nzkd .App_contact_form__bkRJA input,.App_contact__0nzkd .App_contact_form__bkRJA textarea{margin-bottom:20px}.App_contact__0nzkd .App_contact_form__bkRJA textarea{height:220px;resize:none}.App_contact__0nzkd .App_contact_form__bkRJA .App_contact_form_label__4FzXC{display:block;font-size:.9em;margin-bottom:10px}.App_contact__0nzkd .App_contact_form__bkRJA .App_send_button__SKb7R{width:fit-content}.App_contact__0nzkd .App_contact_form__bkRJA .App_email_sent__8jmm1{margin-top:5%}.App_contact__0nzkd .App_footer__e\+Tfn{align-self:center;font-size:.6em;margin-top:auto}.App_contact__0nzkd .App_cv_download_button__uvlQm{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0000;border:2px solid var(--color-accent);border-radius:10px;box-shadow:2px 3px 12px 1px #000;color:inherit;font-size:1.5em;padding:.5em}.App_contact__0nzkd .App_cv_download_button__uvlQm:hover{text-decoration:none}.App_contact__0nzkd .App_contact_links_wrapper__mmZkS{display:flex;justify-content:space-between;list-style:none;width:50%}.App_contact__0nzkd .App_contact_links_wrapper__mmZkS,.App_contact__0nzkd .App_cv_download_button__uvlQm{animation-delay:inherit;animation-duration:2s;animation-fill-mode:forwards;animation-iteration-count:1;animation-name:App_fade-in__XvFnO;animation-play-state:inherit;animation-timing-function:cubic-bezier(0,.15,0,.95)}.App_contact__0nzkd .App_me__3EAAM{border:3px solid var(--color-accent);border-radius:50%;box-shadow:0 0 14px 3px var(--bg-color-dark);width:30%}@media(max-width:600px){.App_contact__0nzkd{background:none;flex-direction:column;flex-flow:column-reverse;gap:0;height:auto;padding:0}.App_contact__0nzkd .App_contact_section_form__tzOKZ{background-image:url(/static/media/abstract-timekeeper_1.7bd85c145b8d2d06de0c.jpg);background-position:50%;background-size:cover;padding:10% 5%}.App_contact__0nzkd .App_contact_section_cv__3gL1S,.App_contact__0nzkd .App_contact_section_form__tzOKZ{background-attachment:scroll;height:100vh;width:100%}.App_contact__0nzkd .App_contact_section_cv__3gL1S{justify-content:space-evenly;padding:10% 5%}.App_contact__0nzkd .App_contact_links_wrapper__mmZkS{justify-content:space-around;width:100%}}.App_highlight__LDJnm{color:var(--color-accent)}#hero-canvas{height:100%;left:4%;mix-blend-mode:screen;overflow:hidden;position:absolute;top:0;width:clamp(300px,30%,50%);z-index:1}