.hamburger{background:var(--primary-color);border:none;border-radius:20px;cursor:pointer;display:flex;height:40px;left:20px;position:fixed;top:20px;user-select:none;width:40px;z-index:1000}.hamburger:hover{background:color-mix(in srgb,#007bff,transparent 25%)}.hamburger svg{position:relative;top:-1px;transition:transform .5s cubic-bezier(.4,0,.2,1)}.hamburger .active svg{transform:rotate(90deg)}path{transition:transform .5s cubic-bezier(.4,0,.2,1),stroke-dasharray .5s cubic-bezier(.4,0,.2,1),stroke-dashoffset .5s cubic-bezier(.4,0,.2,1)}path:first-child{transform-origin:36% 40%}path:nth-child(2){stroke-dasharray:29 299}path:nth-child(3){transform-origin:35% 63%}path:nth-child(4){stroke-dasharray:29 299}path:nth-child(5){transform-origin:61% 52%}path:nth-child(6){transform-origin:62% 52%}.active path:first-child{transform:translateX(9px) translateY(1px) rotate(45deg)}.active path:nth-child(2){stroke-dasharray:225 299;stroke-dashoffset:-72px}.active path:nth-child(3){transform:translateX(9px) translateY(1px) rotate(-45deg)}.active path:nth-child(4){stroke-dasharray:225 299;stroke-dashoffset:-72px}.active path:nth-child(5){transform:translateX(9px) translateY(1px) rotate(-45deg)}.active path:nth-child(6){transform:translateX(9px) translateY(1px) rotate(45deg)}.scroll-to-top{align-content:center;background:var(--primary-color);border-radius:50%;bottom:20px;color:#fff;cursor:pointer;display:grid;font-size:24px;height:40px;justify-content:center;line-height:40px;opacity:.7;position:fixed;right:20px;text-align:center;transition:opacity .4s;width:40px;z-index:1000}.scroll-to-top:hover{opacity:1}.menu-container{position:fixed;right:0;top:0;z-index:1000}.menu-toggle{background:none;border:none;cursor:pointer;position:absolute;right:20px;top:20px;z-index:1001}.menu{background:#fff;box-shadow:-2px 0 5px rgba(0,0,0,.1);height:100vh;padding:80px 20px 20px;position:fixed;right:-300px;top:0;transition:right .3s ease;width:300px}.menu.open{right:0}.side-menu{background:var(--primary-background-color);color:#fff;display:flex;flex-direction:column;height:100%;left:-250px;padding-top:60px;position:fixed;top:0;transition:left .3s ease,visibility .3s ease;visibility:hidden;width:250px;z-index:999}.side-menu.open{transition:left .3s ease;visibility:visible}.side-menu a{color:#fff}.side-menu .theme-switch{border-radius:25px;height:40px;padding:0;position:absolute;right:20px;top:20px;width:40px}.side-menu .theme-switch>svg{height:var(--icon-size);width:var(--icon-size)}.side-menu .menu-links,.side-menu .page-controls{border-top:1px solid #575757;margin:30px 10px 0}.side-menu .page-controls{bottom:0;padding:30px 0;position:absolute;width:calc(100% - 20px)}.side-menu .menu-links{display:flex;flex:1;flex-direction:column;height:100vh;margin-bottom:20px;overflow-y:auto}.side-menu .menu-links ul{list-style:none;margin:0;padding:0}.side-menu .menu-links li,.side-menu .menu-links_item{background:transparent;border:none;color:#fff;display:inline-block;font-size:18px;padding:15px 15px 15px 0;text-align:left;text-decoration:none;width:100%}.side-menu .menu-links li .nav-level-1 .side-menu .menu-links li .nav-level,.side-menu .menu-links li .nav-level-1 .side-menu .menu-links_item .nav-level,.side-menu .menu-links_item .nav-level-1 .side-menu .menu-links li .nav-level,.side-menu .menu-links_item .nav-level-1 .side-menu .menu-links_item .nav-level{padding-left:5px}.side-menu .menu-links li .nav-level-2 .side-menu .menu-links li .nav-level,.side-menu .menu-links li .nav-level-2 .side-menu .menu-links_item .nav-level,.side-menu .menu-links_item .nav-level-2 .side-menu .menu-links li .nav-level,.side-menu .menu-links_item .nav-level-2 .side-menu .menu-links_item .nav-level{padding-left:10px}.side-menu .menu-links li:hover,.side-menu .menu-links_item:hover{padding-left:5px;transition:padding-left .2s ease}.side-menu .menu-links li:focus,.side-menu .menu-links_item:focus{background:var(--primary-color);padding-left:10px}.side-menu.open{box-shadow:5px 0 10px 0 rgba(0,0,0,.3);left:0}.side-menu .menu-footer{bottom:0;position:absolute}.overlay{backdrop-filter:blur(5px);background:rgba(20,136,202,.2);border-radius:10px;box-shadow:0 8px 32px 0 rgba(31,38,135,.37);height:100%;left:0;position:fixed;top:0;width:100%;z-index:998}.profile h1{font-size:2rem;font-weight:700;line-height:3;text-align:center}.profile img{border:8px solid #666;border-radius:100px;display:block;margin:0 auto;max-width:70%}.socialLinks{align-items:center;display:flex;flex-direction:row;justify-content:space-evenly;margin:0 20px}.socialLinks>i{text-align:center}.socialLinks>i>a{align-content:center;background:var(--primary-color);border-radius:25px;display:inline-block;height:40px;text-decoration:none;width:40px}.socialLinks>i>a:hover{background:color-mix(in srgb,var(--primary-color),transparent 25%)}.socialLinks>i>a svg{height:var(--icon-size);width:var(--icon-size)}.footer{background:var(--primary-background-color);color:#fff;padding:10px 0;text-align:center;width:100%}.footer:focus{outline:none}.footer a{color:#fff}@font-face{font-display:swap;font-family:DM Sans;src:local("DM Sans"),url(/assets/DMSans-VariableFont_opsz,wght.ttf) format("truetype")}:root{--icon-size:25px;--background-color:#fff;--background-color--accent:#f4fafd;--text-color:#333;--primary-color:#00458f;--field-background:normal;--link-color:var(--text-color)}[data-theme=dark]{--background-color:#212121;--background-color--accent:#323232;--text-color:#d9d9d9;--field-background:transparent;--link-color:var(--text-color)}[data-theme=dark] .form-container{background-color:var(--background-color--accent)}*{font-family:DM Sans,Arial,Helvetica,sans-serif;margin:0;padding:0}*,:after,:before{box-sizing:border-box}abbr[title]:after{content:" (" attr(title) ")"}@media(min-width:768px){abbr[title]:after{content:""}abbr[title]{border-bottom:1px dashed #adadad;cursor:help}}.interact-off{pointer-events:none;-webkit-user-select:none;user-select:none}body{background:var(--background-color);color:var(--text-color);display:flex;flex-direction:column;font-family:DM Sans;line-height:1.6;min-height:100vh}body.no-scroll{overflow:hidden;position:fixed;width:100%}main#content:focus{outline:none}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0;white-space:nowrap}.skip-link{cursor:pointer;display:block;font-size:25px;font-weight:700;left:43vw;padding:7px 21px;position:absolute;transform:translateY(-100%);-webkit-transform:translateY(-100%);z-index:-1}.skip-link:focus{background:var(--primary-color);border:1px solid #fff;border-radius:0 0 8px 8px;border-top:none;color:#fff;text-decoration:none;transform:translateY(0);transition:transform .3s;z-index:99}*>a{color:var(--link-color)}h2,legend{border-bottom:1px solid #333;font-size:24px}h2,h3,legend{font-weight:700;line-height:1.2}h3{font-size:20px}button:not(.hamburger):not(.toggle-actions-button){background:var(--primary-color);border:0;border-radius:8px;color:#e0e0e0;padding:10px 30px;transition:.4s}button[type=submit]{font-size:18px;font-weight:700}.section,section{background:var(--background-color);color:var(--text-color);overflow:clip;padding:60px 0}:root{--breakpoint-xs:576px;--breakpoint-sm:768px;--breakpoint-md:992px;--breakpoint-lg:1200px;--breakpoint-xl:1400px;--primary-color:#007bff;--primary-background-color:#323232}.intro{align-items:end;display:flex;justify-content:center;min-height:100vh;position:relative;width:100%;z-index:-1}@media(min-width:768px){.intro{align-items:center}}.intro.dark{background:var(--primary-background-color);color:var(--text-color-dark)}.intro .container{position:relative;text-shadow:2px 7px 7px rgba(0,0,0,.3);z-index:3}@media(max-width:var(--breakpoint-xs )){.intro .container{margin-left:20px}}.intro h2{border-bottom:none;color:#e0e0e0;font-size:32px;font-weight:700;margin:0}@media(min-width:768px){.intro h2{font-size:64px;width:700px}}.intro h3{color:#e0e0e0;font-size:16px;font-weight:400;letter-spacing:1px;margin:0 0 0 3px}@media(min-width:768px){.intro h3{font-size:26px;width:700px}}.intro img{display:block;height:100%;inset:0;object-fit:cover;object-position:85%;opacity:.7;position:fixed;width:100%;z-index:1}@media(min-width:768px){.intro img{object-position:right}}.intro p{display:inline-block;font-size:26px;height:80px;margin:5px 0 0}@media(min-width:var(--breakpoint-sm )){.intro p{font-size:20px}}.intro p.typer{color:#e0e0e0;font-family:Courier New,Courier,monospace}.intro p a{color:#fff;text-decoration:none}.intro p span{border-bottom:2px solid #fff;letter-spacing:1px}.about{background:var(--background-color);box-shadow:0 -20px 20px 20px rgba(0,0,0,.6);color:var(--text-color)}.about .container{--bs-gutter-x:1.5rem;--bs-gutter-y:0;margin-left:auto;margin-right:auto;padding-left:calc(var(--bs-gutter-x)*.5);padding-right:calc(var(--bs-gutter-x)*.5);width:100%}.about .about__profile-left{padding:0 30px;text-align:center}@media(min-width:var(--breakpoint-sm )){.about .about__profile-left{padding-top:60px}}.about .about__profile-picture{border-radius:20px;box-shadow:0 0 10px 0 rgba(0,0,0,.7);transform:rotate(-5deg)}.about .section-title{padding-bottom:30px;position:relative}.about .section-title p{margin-bottom:0}.about .content ul{list-style:none;padding:0}.about .content ul li{align-items:flex-start;display:flex;margin-bottom:20px}.about .content ul li svg{margin-top:5px}.about .content ul i{color:var(--accent-color);font-size:16px;line-height:0;margin-right:5px}.about .content ul strong{margin-right:10px}.skills{background:var(--background-color--accent)}.skills-content{row-gap:30px}.heading3{font-size:1.3rem}.progressbar{background:#e0e0e0;border:1px solid transparent;border-radius:5px;margin-bottom:10px;position:relative;width:100%}.progressbar__label{font-size:14px;margin:0}.progressbar__label__text{font-weight:400}.progressbar__label>span{display:inline-block;width:50%}.progressbar__value{background:var(--accent-color);height:10px}.cv h2{border-bottom:1px solid #ccc}.cv .work-item{border-left:2px solid var(--text-color);margin-top:-2px;padding:0 0 20px 20px;position:relative}.cv .work-item:first-child{margin-top:30px}.cv .work-item h3{position:relative}.cv .work-item h3:before{background:#fff;border:3px solid var(--text-color);border-radius:50px;content:"";height:16px;left:-29px;position:absolute;top:4px;width:16px}.cv .duration{font-size:unset;font-weight:400}.cv .stack{font-weight:400;margin-bottom:7px}.cv .company{font-size:unset;font-weight:700}.cv .filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.cv .filters label{cursor:pointer;margin-right:10px}.cv .filters input{margin-right:5px}.cv .filters .select{max-width:400px;width:100%}.cv .fade-enter{max-height:0;opacity:0;overflow:hidden;transition:opacity .3s,max-height .3s}.cv .fade-enter-active,.cv .fade-exit{max-height:1000px;opacity:1}.cv .fade-exit{overflow:hidden;transition:opacity .3s,max-height .3s}.cv .fade-exit-active{max-height:0;opacity:0}.cv .toggle-actions-button{align-items:center;background:none;border:none;border-radius:2px;color:var(--link-color);cursor:pointer;display:inline-flex;font:inherit;gap:4px;line-height:inherit;margin:0;padding:0;position:relative;text-align:left;text-decoration:underline;text-decoration-color:var(--link-color);text-decoration-thickness:1px;text-underline-offset:2px;transition:all .2s ease-in-out}.cv .toggle-actions-button .chevron-icon{flex-shrink:0;margin-left:2px;transition:transform .2s ease-in-out}.cv .toggle-actions-button.expanded .chevron-icon{transform:rotate(180deg)}.cv .toggle-actions-button.collapsed .chevron-icon{transform:rotate(0deg)}.cv .toggle-actions-button:disabled{color:var(--text-color);cursor:not-allowed;opacity:.6;text-decoration-color:var(--text-color)}.cv .toggle-actions-button:disabled:hover{color:var(--text-color);text-decoration-color:var(--text-color);text-decoration-thickness:1px;text-underline-offset:2px;transform:none}.cv .toggle-actions-button:active:not(:disabled){transition:all .1s ease-in-out}.portfolio a{color:var(--accent-color);text-decoration:none;transition:.3s}.portfolio a:hover{color:color-mix(in srgb,var(--accent-color),transparent 25%);text-decoration:none}.portfolio-content{overflow:hidden;position:relative}.portfolio-content:hover .portfolio-info{opacity:1}.portfolio-content:hover img{transform:scale(1.1)}.portfolio-content img{transition:.3s}.portfolio-content .portfolio-info{background:rgba(0,0,0,.6);inset:0;opacity:0;padding:15px;position:absolute;transition:all .3s ease-in-out;z-index:3}.portfolio-content .portfolio-info h4,.portfolio-content .portfolio-info p{color:#fff}.portfolio-content .portfolio-info .details-link,.portfolio-content .portfolio-info .preview-link{color:#fff;font-size:26px;left:calc(50% - 40px);line-height:1.2;position:absolute;top:calc(50% - 14px);transition:.3s}.portfolio-content .portfolio-info .details-link:hover,.portfolio-content .portfolio-info .preview-link:hover{color:var(--accent-color)}.portfolio-content .portfolio-info .details-link{font-size:34px;left:50%;line-height:0}.actions-list{margin-top:1rem;transition:opacity .3s ease}.actions-toggle{color:var(--link-color);display:inline-block;margin:.5rem 0;text-decoration:none}.contact.section .info-wrap{background:var(--surface-color);box-shadow:0 0 20px rgba(0,0,0,.1);padding:30px}.contact.section .contact-form .form-container{background:var(--background-color);border-radius:8px;box-shadow:0 0 20px rgba(0,0,0,.1);height:100%;padding:30px}.contact.section .contact-form .fieldset>*{letter-spacing:normal}.contact.section .contact-form .fieldset .required>.label:after,.contact.section .contact-form .fieldset :required>.label:after{color:var(--negative-accent);content:"*"}.contact.section .contact-form .fieldset .field,.contact.section .contact-form .fieldset input{background:var(--field-background);position:relative}.contact.section .contact-form .fieldset .field.populated .label,.contact.section .contact-form .fieldset input.populated .label{font-size:12px;line-height:1;top:-10px}.contact.section .contact-form .fieldset .field.populated .label:before,.contact.section .contact-form .fieldset input.populated .label:before{background:var(--background-color);content:"";display:inline-block;height:15px;left:-1px;position:absolute;width:100%;z-index:-1}.contact.section .contact-form .fieldset .field label,.contact.section .contact-form .fieldset input label{height:fit-content;left:20px;margin:auto;padding:0 5px;position:absolute;top:7px;transition:all .2s ease;user-select:none;z-index:2}.contact.section .contact-form .fieldset input,.contact.section .contact-form .fieldset textarea{background:var(--field-background);background-clip:padding-box;border-radius:1px;box-sizing:border-box;color:var(--text-color);vertical-align:baseline;width:100%}.contact.section .contact-form .fieldset input:disabled,.contact.section .contact-form .fieldset textarea:disabled{opacity:.5}.contact.section .contact-form .fieldset textarea:focus{border-color:#86b7fe;box-shadow:0 0 0 .25rem rgba(13,110,253,.25);outline:0}.contact.section .contact-form .fieldset .form-actions{align-content:center;align-items:baseline;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;width:100%}.contact.section .contact-form__message{appearance:none;border:var(--bs-border-width) solid var(--bs-border-color);min-height:150px;padding:6px 12px;resize:vertical}.uppercase{text-transform:uppercase}.light-background{background:var(--background-color--accent)}[href^=http][target=_blank]:not(.noExtIcon):after{background-image:url(/assets/images/external-link.eb94cbee470f12f99974.svg);background-repeat:no-repeat;background-size:contain;content:"";display:inline-block;height:12px;margin-left:3px;width:12px}[data-theme=dark] [href^=http][target=_blank]:not(.noExtIcon):after{background-image:url(/assets/images/external-link-dark.d1f0db4a52fcbab85216.svg)}.hero{display:inline-block;font-size:40px}.layers{position:relative}.layers:after,.layers:before{content:attr(data-text);position:absolute;width:110%;z-index:-1}.layers:before{color:#e0287d;left:15px;top:10px}.layers:after{color:#1bc7fb;left:-10px;top:5px}.single-path{clip-path:polygon(0 12%,53% 12%,53% 26%,25% 26%,25% 86%,31% 86%,31% 0,53% 0,53% 84%,92% 84%,92% 82%,70% 82%,70% 29%,78% 29%,78% 65%,69% 65%,69% 66%,77% 66%,77% 45%,85% 45%,85% 26%,97% 26%,97% 28%,84% 28%,84% 34%,54% 34%,54% 89%,30% 89%,30% 58%,83% 58%,83% 5%,68% 5%,68% 36%,62% 36%,62% 1%,12% 1%,12% 34%,60% 34%,60% 57%,98% 57%,98% 83%,1% 83%,1% 53%,91% 53%,91% 84%,8% 84%,8% 83%,4% 83%)}.paths{animation:paths 5s step-end infinite}@keyframes paths{0%{clip-path:polygon(0 43%,83% 43%,83% 22%,23% 22%,23% 24%,91% 24%,91% 26%,18% 26%,18% 83%,29% 83%,29% 17%,41% 17%,41% 39%,18% 39%,18% 82%,54% 82%,54% 88%,19% 88%,19% 4%,39% 4%,39% 14%,76% 14%,76% 52%,23% 52%,23% 35%,19% 35%,19% 8%,36% 8%,36% 31%,73% 31%,73% 16%,1% 16%,1% 56%,50% 56%,50% 8%)}5%{clip-path:polygon(0 29%,44% 29%,44% 83%,94% 83%,94% 56%,11% 56%,11% 64%,94% 64%,94% 70%,88% 70%,88% 32%,18% 32%,18% 96%,10% 96%,10% 62%,9% 62%,9% 84%,68% 84%,68% 50%,52% 50%,52% 55%,35% 55%,35% 87%,25% 87%,25% 39%,15% 39%,15% 88%,52% 88%)}30%{clip-path:polygon(0 53%,93% 53%,93% 62%,68% 62%,68% 37%,97% 37%,97% 89%,13% 89%,13% 45%,51% 45%,51% 88%,17% 88%,17% 54%,81% 54%,81% 75%,79% 75%,79% 76%,38% 76%,38% 28%,61% 28%,61% 12%,55% 12%,55% 62%,68% 62%,68% 51%,0 51%,0 92%,63% 92%,63% 4%,65% 4%)}45%{clip-path:polygon(0 33%,2% 33%,2% 69%,58% 69%,58% 94%,55% 94%,55% 25%,33% 25%,33% 85%,16% 85%,16% 19%,5% 19%,5% 20%,79% 20%,79% 96%,93% 96%,93% 50%,5% 50%,5% 74%,55% 74%,55% 57%,96% 57%,96% 59%,87% 59%,87% 65%,82% 65%,82% 39%,63% 39%,63% 92%,4% 92%,4% 36%,24% 36%,24% 70%,1% 70%,1% 43%,15% 43%,15% 28%,23% 28%,23% 71%,90% 71%,90% 86%,97% 86%,97% 1%,60% 1%,60% 67%,71% 67%,71% 91%,17% 91%,17% 14%,39% 14%,39% 30%,58% 30%,58% 11%,52% 11%,52% 83%,68% 83%)}76%{clip-path:polygon(0 26%,15% 26%,15% 73%,72% 73%,72% 70%,77% 70%,77% 75%,8% 75%,8% 42%,4% 42%,4% 61%,17% 61%,17% 12%,26% 12%,26% 63%,73% 63%,73% 43%,90% 43%,90% 67%,50% 67%,50% 41%,42% 41%,42% 46%,50% 46%,50% 84%,96% 84%,96% 78%,49% 78%,49% 25%,63% 25%,63% 14%)}90%{clip-path:polygon(0 41%,13% 41%,13% 6%,87% 6%,87% 93%,10% 93%,10% 13%,89% 13%,89% 6%,3% 6%,3% 8%,16% 8%,16% 79%,0 79%,0 99%,92% 99%,92% 90%,5% 90%,5% 60%,0 60%,0 48%,89% 48%,89% 13%,80% 13%,80% 43%,95% 43%,95% 19%,80% 19%,80% 85%,38% 85%,38% 62%)}1%,33%,47%,7%,78%,93%{clip-path:none}}.movement{animation:movement 8s step-end infinite;position:relative}@keyframes movement{0%{left:-20px;top:0}15%{left:10px;top:10px}60%{left:-10px;top:5px}75%{left:20px;top:-5px}to{left:5px;top:10px}}.opacity{animation:opacity 5s step-end infinite}@keyframes opacity{0%{opacity:.1}5%{opacity:.7}30%{opacity:.4}45%{opacity:.6}76%{opacity:.4}90%{opacity:.8}1%,33%,47%,7%,78%,93%{opacity:0}}.font{animation:font 7s step-end infinite}@keyframes font{0%{color:#e0287d;filter:blur(3px);font-weight:100}20%{color:#fff;filter:blur(0);font-weight:500}50%{color:#1bc7fb;filter:blur(2px);font-weight:300}60%{color:#fff;filter:blur(0);font-weight:700}90%{color:#e0287d;filter:blur(6px);font-weight:500}}.glitch span{animation:paths 5s step-end infinite}.glitch:before{animation:paths 5s step-end infinite,opacity 5s step-end infinite,font 8s step-end infinite,movement 10s step-end infinite}.glitch:after{animation:paths 5s step-end infinite,opacity 5s step-end infinite,font 7s step-end infinite,movement 8s step-end infinite}:root{--footer-height:62px}.error-page{align-items:center;display:flex;justify-content:center;min-height:calc(100vh - var(--footer-height));padding:2rem}.error-page__content{text-align:center}