.button{background-color:var(--background-color);color:var(--color);position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:.5em;padding:1rem 2rem;border-radius:var(--border-radius);text-decoration:none;cursor:pointer;font-size:clamp(1.6rem,1.51rem + .24vi,1.8rem)}.button:before{--padding: 0;content:"";background-color:var(--background-color-hover);opacity:0;position:absolute;inset:calc(-1 * var(--padding));z-index:-1;block-size:100%;inline-size:100%;transition:opacity var(--animation-duration-fast) ease-in-out}.button svg{--size: 1.25em;block-size:var(--size);inline-size:var(--size)}.button:hover:before{opacity:1}.button:focus-visible{outline:none}.button:focus-visible:before{opacity:1;outline:var(--outline-focus-visible);transition:none}.button--primary{--background-color: var(--color-primary);--background-color-hover: var(--color-primary-darker);--color: var(--color-primary-opposite)}.button--github{--background-color: var(--color-gray-10);--background-color-hover: var(--color-gray-20);--color: var(--color-gray-90)}.button--icon{--background-color: transparent;--background-color-hover: var(--color-gray-90);--color: inherit;--padding: .5rem;background-color:transparent;display:inline-grid;place-items:center;padding:0;border:none}.button--icon:before{--padding: .5rem;block-size:unset;inline-size:unset;border-radius:999rem}.button--icon--primary{--background-color: transparent;--background-color-hover: var(--color-primary-fade);--color: var(--color-primary)}.button--large{font-size:clamp(1.8rem,1.54rem + .71vi,2.4rem)}.cta{color:var(--color-primary-opposite);display:inline-flex;align-items:center;gap:1rem;padding:2rem 3rem;transform:skew(15deg);font-size:clamp(1.8rem,1.54rem + .71vi,2.4rem);font-weight:700;text-decoration:none}.cta:before{content:"";background-color:var(--color-primary);box-shadow:-.6rem .6rem 0 var(--color-gray-10);position:absolute;inset:0;transform-origin:right;transition-duration:var(--animation-duration-normal);transition-property:inset,box-shadow}.cta .title,.cta .icon{transform:skew(-15deg)}.cta .icon{position:relative;display:grid;place-items:center;transition:var(--animation-duration-normal)}.cta .icon svg{block-size:1em;inline-size:auto}.cta .icon svg path{fill:var(--color-primary-opposite);transition:transform var(--animation-duration-normal)}.cta .icon svg path:nth-of-type(1){transform:translate(-2rem)}.cta .icon svg path:nth-of-type(3){transform:translate(2rem)}.cta:hover:before{box-shadow:-1rem 1rem 0 var(--color-secondary);inset-inline-end:-2rem}.cta:hover .icon{translate:-2rem}.cta:hover .icon svg path:nth-of-type(1){transform:translate(0);animation:cta-color-animation var(--animation-duration-slow) linear infinite .2s}.cta:hover .icon svg path:nth-of-type(2){transform:translate(0);animation:cta-color-animation var(--animation-duration-slow) linear infinite .4s}.cta:hover .icon svg path:nth-of-type(3){transform:translate(0);animation:cta-color-animation var(--animation-duration-slow) linear infinite .4s}.cta:focus-visible{outline:var(--outline-focus-visible);outline-offset:1rem}@keyframes cta-color-animation{0%{fill:var(--color-primary-opposite)}50%{fill:var(--color-secondary)}to{fill:var(--color-primary-opposite)}}header{background-color:var(--color-gray-98);position:sticky;inset-block-start:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:2rem;padding-inline:var(--full-width-padding-inline)}header .logo{color:inherit;display:flex;align-items:center;gap:.5rem;font-size:2.4rem;text-decoration:none}header .logo svg{--size: 1.5em;block-size:var(--size);inline-size:var(--size)}header .logo h1{font-size:inherit}header .button{font-size:2.4rem}header .button.close{z-index:2}header.stuck{box-shadow:var(--box-shadow-subtle)}@media(width<1000px){header nav{background-color:var(--color-gray-98);position:fixed;inset:0;overflow:auto;z-index:1;display:grid;align-content:start;padding:inherit;font-size:2.4rem}header nav ul{display:grid;gap:2rem}header .hidden{display:none}}@media(width>=1000px){header .button.menu{display:none}header .button.close{display:none}header nav{font-size:1.6rem}header nav ul{display:flex;gap:2rem}}main>section{display:grid;gap:3em;padding-block:4rem;padding-inline:var(--full-width-padding-inline)}main>section h2{font-size:clamp(3.2rem,2.51rem + 1.9vi,4.8rem)}main>section h3{font-size:clamp(2.4rem,1.89rem + 1.43vi,3.6rem)}main>section:nth-of-type(2n){background-color:var(--color-primary-section)}main .divider{background-color:var(--color-primary-section);block-size:8rem}main .divider.wide-to-narrow{clip-path:polygon(0% -1%,100% -1%,0% 100%)}main .divider.narrow-to-wide{clip-path:polygon(0% 100%,100% -1%,100% 100%)}#introduction{grid-template-columns:1fr;gap:2rem;padding-block:2rem}#introduction img.me{place-self:center;max-block-size:1em;max-inline-size:1em;border-radius:999rem;font-size:clamp(16rem,10.86rem + 14.29vi,28rem)}#introduction .text h1{margin-block-end:2rem;font-size:clamp(2.8rem,.91rem + 5.24vi,7.2rem);font-weight:400;line-height:1.2}#introduction .text h1 .highlight{color:var(--color-primary);font-size:1.4em;font-weight:700}#introduction .text p{max-inline-size:50ch;margin-block-end:2rem;font-size:clamp(1.6rem,1.26rem + .95vi,2.4rem)}#introduction .text p .highlight{color:var(--color-primary)}#introduction .text p:last-of-type{margin-block-end:4rem}@media(width<1000px){#introduction .text{text-align:center}#introduction .text p{margin-inline:auto}}@media(width>=1000px){#introduction{grid-template-columns:1fr 3fr;padding-block:8rem}}#hard-skills .group{display:grid;gap:1rem}#hard-skills .group .skills{direction:ltr;display:flex;flex-wrap:wrap;gap:1rem}#hard-skills .group .skills li{flex:1 0 auto;background-color:var(--color-gray-98);box-shadow:var(--box-shadow-subtle);display:flex;align-items:center;justify-content:center;gap:1rem;padding:2rem;border-radius:var(--border-radius);font-size:clamp(1.6rem,1.26rem + .95vi,2.4rem);text-align:center}#hard-skills .group .skills li img{block-size:2em;inline-size:auto;object-fit:contain}#hard-skills .group .skills li .title{line-height:1}#soft-skills .skills{display:flex;flex-wrap:wrap;justify-content:center;gap:4rem 2rem}#soft-skills .skills li{flex:0 0 16rem;display:grid;place-items:center;gap:1rem;border-radius:var(--border-radius);font-size:2rem;text-align:center}#soft-skills .skills li .icon{background-image:radial-gradient(circle at 0% 0%,var(--color-primary-lighter),var(--color-primary));display:grid;place-items:center;aspect-ratio:1/1;padding:2rem;border-radius:2rem}#soft-skills .skills li .icon svg{color:var(--color-gray-98);block-size:6rem;inline-size:6rem}#soft-skills .skills li .title{line-height:1.2}#jobs>ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(50rem,100%),1fr));gap:2rem}#jobs>ul>li{background-color:var(--color-gray-98);box-shadow:var(--box-shadow-subtle);display:grid;align-content:space-between;gap:2rem;padding:2rem;border-radius:var(--border-radius)}#jobs>ul>li .info{display:grid;align-content:start;gap:0 1rem}#jobs>ul>li .info .header .title{margin-block-start:.5rem;font-size:clamp(2.4rem,2.23rem + .48vi,2.8rem);font-weight:700;line-height:1.2}#jobs>ul>li .info .header .duration{opacity:.5;font-size:1.4rem}#jobs>ul>li .info .header .corporate{opacity:.8}#jobs>ul>li .info .description{display:grid;align-content:start;max-inline-size:70ch}#jobs>ul>li .info .description>*:not(:has(+ul)){margin-block-end:2rem}#jobs>ul>li .info .description ul{list-style:disc inside}#jobs>ul>li .tags{display:flex;flex-wrap:wrap;gap:2rem}#jobs>ul>li .tags li{flex:0 0 4rem;aspect-ratio:1/1}#jobs>ul>li .tags li img{block-size:100%;inline-size:100%;object-fit:contain}@media(width<600px){#jobs>ul>li .info{justify-items:center;gap:2rem;text-align:center}#jobs>ul>li .info .logo{max-block-size:10rem}#jobs>ul>li .info .logo img{max-block-size:100%;inline-size:auto}#jobs>ul>li .info .description{text-align:start}#jobs>ul>li .tags{justify-content:center}}@media(width>=600px){#jobs>ul>li .info{grid-template-areas:"header logo" "description description";grid-template-columns:1fr 8rem}#jobs>ul>li .info .header{grid-area:header}#jobs>ul>li .info .logo{grid-area:logo}#jobs>ul>li .info .description{grid-area:description;margin-block-start:2rem}}#projects>ul{display:grid;gap:16rem}#projects>ul>li{display:grid;justify-items:center;gap:2rem}#projects>ul>li .info{display:grid;justify-items:center;gap:2rem;text-align:center}#projects>ul>li .info .title a{color:inherit;display:inline-flex;align-items:center;gap:1rem;font-size:clamp(2.4rem,2.23rem + .48vi,2.8rem);font-weight:700;text-decoration:none}#projects>ul>li .info .description{max-inline-size:70ch;font-size:clamp(1.6rem,1.51rem + .24vi,1.8rem);line-height:1.5}#projects>ul>li .info .tags{display:flex;flex-wrap:wrap;justify-content:center;gap:2rem}#projects>ul>li .info .tags li{flex:0 0 4rem;aspect-ratio:1/1}#projects>ul>li .info .tags li svg,#projects>ul>li .info .tags li img{block-size:100%;inline-size:100%;object-fit:contain}#projects>ul>li .info .links{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem}#projects>ul>li .info .links li .button svg{block-size:1.5em}#projects>ul>li .mockup{display:grid;place-items:center}#projects>ul>li .mockup img{max-block-size:40rem;inline-size:auto}@media(width>=1000px){#projects>ul>li{grid-template-columns:1fr 1fr;align-items:center}#projects>ul>li .info{justify-items:start;text-align:start}#projects>ul>li .info .tags{justify-content:start}#projects>ul>li .info .links{justify-content:start}#projects>ul>li .mockup{order:2}#projects>ul>li .mockup img{max-block-size:50rem}}#education>ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(50rem,100%),1fr));gap:2rem}#education>ul>li{background-color:var(--color-gray-98);box-shadow:var(--box-shadow-subtle);display:grid;grid-template-columns:8rem 1fr;align-content:start;gap:0 1rem;padding:2rem;border-radius:var(--border-radius)}#education>ul>li .logo{min-block-size:100%;block-size:0}#education>ul>li .logo img{block-size:100%;inline-size:100%;object-fit:contain}#education>ul>li .text .title{margin-block-start:.5rem;font-size:clamp(2.4rem,2.23rem + .48vi,2.8rem);font-weight:700;line-height:1.2}#education>ul>li .text .duration{opacity:.5;font-size:1.4rem}#education>ul>li .text .institute{opacity:.8}#contact>ul{color:var(--color-gray-40);direction:ltr;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(40rem,100%),1fr));gap:2rem}#contact>ul>li{--spacing: 2rem;background-color:var(--color-gray-98);box-shadow:var(--box-shadow-subtle);display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:var(--spacing);padding:var(--spacing);border-radius:var(--border-radius);font-size:clamp(1.8rem,1.54rem + .71vi,2.4rem)}#contact>ul>li .icon{display:grid;place-items:center}#contact>ul>li .icon svg{block-size:1.25em;inline-size:1.25em}#contact>ul>li .text{display:grid;gap:.5rem;line-height:1}#contact>ul>li .text .title{font-size:.7em}#contact>ul>li .text .username{overflow:hidden;font-weight:700;text-overflow:ellipsis;white-space:nowrap}#contact>ul>li .text .username a:after{inset-block-end:.4em}#contact>ul>li .text .username a:focus-visible{color:var(--color-primary);outline:none}#contact>ul>li .button.copy{--padding: 1rem}footer{display:flex;flex-direction:column;justify-content:center;gap:1rem;padding-block:2rem;padding-inline:var(--full-width-padding-inline);text-align:center}@media(width>=1000px){footer{flex-direction:row;justify-content:space-between}}#back-to-top{--background-color: var(--color-gray-10);--background-color-hover: var(--color-gray-10);--color: var(--color-gray-98);--inset: 4rem;opacity:1;position:fixed;inset-block-end:var(--inset);inset-inline-end:var(--inset);z-index:1;font-size:2.4rem;transition:var(--animation-duration-fast) ease-in-out;transition-property:transform,opacity}#back-to-top:before{opacity:.7;transition:opacity var(--animation-duration-fast)}#back-to-top:hover:before{opacity:1}#back-to-top.hidden{opacity:0;transform:translateY(calc(var(--inset) + var(--padding) + 100% + 0px))}
