.grid--left{justify-self:start}.grid--center{justify-self:center}.grid--right{justify-self:end}.clear__btn{all:unset;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;margin:0;padding:0}.no-select{-webkit-user-select:none;user-select:none}.disabled{pointer-events:none;opacity:0;visibility:hidden}.rotate180{transform:rotate(-180deg)}:root[data-theme=light]{--c-bg:#fff;--c-text:#212529;--c-text-secondary:#868e96;--c-btn-bg:#495057;--card-shadow-hover:0 14px 32px #00000024}:root[data-theme=dark]{--c-bg:#212529;--c-text:#ced4da;--c-text-secondary:#e9ecef;--c-btn-bg:#e9ecef;--card-shadow-hover:0 18px 40px #0000008c}*{box-sizing:border-box;margin:0;padding:0}body,html{background-color:var(--c-bg);color:var(--c-text);min-height:100vh;font-family:Funnel Sans,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif;line-height:1.5}.main{max-width:80rem;margin:auto;padding:4.5rem clamp(1rem,5vw,3rem) 0}section{margin-bottom:6rem;scroll-margin-top:4.5rem}html,body{transition:background-color .3s,color .3s}.logo__img{transition:fill .3s,color .3s}html,body,*{scrollbar-width:thin;scrollbar-color:var(--c-text)var(--c-bg);scroll-behavior:smooth}html::-webkit-scrollbar{width:8px;height:8px}body::-webkit-scrollbar{width:8px;height:8px}html::-webkit-scrollbar-track{background:var(--c-bg)}body::-webkit-scrollbar-track{background:var(--c-bg)}html::-webkit-scrollbar-thumb{background-color:var(--c-text);border:2px solid var(--c-bg);border-radius:4px}body::-webkit-scrollbar-thumb{background-color:var(--c-text);border:2px solid var(--c-bg);border-radius:4px}html::-webkit-scrollbar-thumb:hover{background-color:var(--c-text-secondary)}body::-webkit-scrollbar-thumb:hover{background-color:var(--c-text-secondary)}.header{background-color:var(--c-bg);z-index:2;grid-template-columns:2fr 1fr 2fr;width:100%;height:5rem;transition:all .3s,color .3s;display:grid;position:fixed;top:0}@media (width<=64em){.header{grid-template-columns:1fr 1fr}}.header{color:var(--c-text);align-items:center;padding:0 1.5rem;font-size:1.5rem}.logo{display:inline-flex}.logo__img{aspect-ratio:1024/526;width:auto;height:2.5rem;max-height:70%}@media (width<=64em){.navbar{display:none}}.navbar__list{justify-content:center;align-items:center;gap:.75rem;list-style:none;display:flex}.navbar__item{font-size:1.5rem}.navbar__link{color:var(--c-text);border-color:var(--c-text);border-bottom:1px solid #0000;padding-bottom:1px;text-decoration:none;transition:color .3s,border-bottom .3s}.navbar__link:hover{color:var(--c-text-secondary)}.navbar__link:active{color:var(--c-text-secondary);border-color:var(--c-text-secondary)}.navbar__link:focus-visible{outline:2px solid var(--c-text-secondary);outline-offset:3px;border-radius:4px}.navbar__icon{color:var(--c-text);background-color:#0000;border:none;font-size:2rem;transition:transform .6s ease-in-out,color .3s ease-in-out;display:block}.navbar__icon:hover{color:var(--c-text-secondary)}.active{color:var(--c-text-secondary);border-color:var(--c-text-secondary)}.contact-settings{align-items:center;gap:1rem;display:flex}@media (width<=64em){.contact-settings{display:none}}.contact-settings__btn{background-color:var(--c-text);cursor:pointer;color:var(--c-bg);border-radius:9999px;padding:.5rem 1rem;font-size:1.5rem;text-decoration:none;transition:transform .3s,background-color .3s}.contact-settings__btn:hover{background-color:var(--c-btn-bg)}.contact-settings__btn:active{transform:scale(.95)}.contact-settings__btn:focus-visible{outline:2px solid var(--c-text);outline-offset:3px}.settings{z-index:1;transition:transform .6s ease-in-out;display:inline-flex;position:relative}.settings-panel{align-items:center;gap:.5rem;padding:0 1.5rem;display:flex}.settings-theme{display:inline-flex}.settings__btn:focus-visible,.settings-theme__btn:focus-visible{outline:2px solid var(--c-text);outline-offset:3px;border-radius:6px}.lang__list{align-items:center;gap:.25rem;list-style:none;display:flex}.mobile__nav,.mobile__nav__panel{display:none}@media (width<=64em){.mobile__nav{display:block}.mobile__nav__btn{border:2px solid var(--c-text);border-radius:7px;padding:2px;transition:border-color .3s ease-in-out}.mobile__nav__btn .navbar__icon{color:inherit;transition:transform .3s,color .3s ease-in-out}.mobile__nav__btn .navbar__icon.is-open{transform:rotate(180deg)}.mobile__nav__btn:hover{border-color:var(--c-text-secondary);color:var(--c-text-secondary)}.mobile__nav__btn:hover .navbar__icon{color:var(--c-text-secondary)}.mobile__nav__btn:focus-visible{outline:2px solid var(--c-text-secondary);outline-offset:3px;border-radius:4px}.mobile__nav__panel{background-color:var(--c-bg);opacity:0;will-change:transform;z-index:1;padding:2rem 0;font-size:1.5rem;transition:transform .7s,opacity .7s,background-color .3s,color .3s;position:fixed;inset:5rem 0 0;transform:translateY(-120%)}.mobile__nav__panel.mobile-open{opacity:1;transform:translateY(0)}.mobile__nav__panel{-webkit-overflow-scrolling:touch;flex-direction:column;justify-content:space-evenly;gap:5rem;width:100%;height:calc(100dvh - 5rem);display:flex;overflow-y:auto}.mobile__nav__panel .navbar{display:block}.mobile__nav__panel .navbar__list{flex-direction:column}.mobile__nav__panel .contact-settings{flex-direction:column;align-items:center;gap:2rem;display:flex}.mobile__nav__panel .settings{gap:.5rem;display:flex}html.mobile-open,body.mobile-open{overflow:hidden}body{overscroll-behavior:contain}}@media (prefers-reduced-motion:reduce){.mobile__nav__btn .navbar__icon{transition:none;transform:none}.settings__btn .navbar__icon,.settings,.settings-panel,.mobile__nav__panel{transition:none}}.transparency-cover{background-color:var(--c-bg);z-index:2;width:100%;height:10rem;position:fixed;top:-10rem;left:0}.hero{grid-template-columns:2fr 1px 3fr;align-items:center;column-gap:2rem;height:calc(100dvh - 4.5rem);display:grid;position:relative}@media (width<=64em){.hero{grid-template-rows:1fr 1px 3fr;grid-template-columns:1fr;row-gap:clamp(3rem,3vw,4.5rem);height:47.5rem}}@media (width<=48em){.hero{height:42.5rem}}@media (width<=30em){.hero{height:50rem}}@media (width<=25em){.hero{height:52.5rem}}.hero__title{align-items:center;padding-top:3rem;display:flex}@media (width<=64em){.hero__title{align-self:end}}.hero__title h1{letter-spacing:clamp(-.3rem,-1vw,-.5rem);font-size:clamp(5rem,10vw,9rem);font-weight:700;line-height:.9}.hero__description{justify-self:center;font-size:clamp(1rem,2vw,1.3rem)}@media (width<=64em){.hero__description{align-self:start}}.hero__description{overflow-wrap:break-word;min-width:0;max-width:60ch;line-height:1.6}.divider{border-right:1px solid var(--c-text);height:60%}@media (width<=64em){.divider{border-right:none;border-bottom:1px solid var(--c-text);width:100%}}.intro-hi{font-size:clamp(1.2rem,2vw,1.5rem)}.about-me{margin-bottom:clamp(2rem,2vw,5rem)}.about-me__p{margin-top:.8rem}.my-skills__icons{flex-wrap:wrap;justify-content:center;gap:clamp(1.5rem,2vw,2rem);margin-top:clamp(1.5rem,2vw,3rem);display:flex}.my-skills .skill{color:var(--c-text);pointer-events:all;justify-content:center;align-items:center;font-size:clamp(2.5rem,2vw,3rem);transition:color .3s ease-in-out;display:inline-flex;position:relative}.my-skills .skill:after{content:attr(data-label);background:var(--c-text);color:var(--c-bg);white-space:nowrap;opacity:0;pointer-events:none;z-index:1;border-radius:4px;padding:4px 8px;font-family:inherit;font-size:.8rem;transition:opacity .2s,transform .2s;position:absolute;bottom:-2.5rem;left:50%;transform:translate(-50%)}.my-skills .skill:hover:after{opacity:1;transform:translate(-50%)translateY(4px)}.scroll-down{display:inline-flex;position:absolute;bottom:5%;left:50%;transform:translate(-50%)}.scroll-down__icon{color:var(--c-text);font-size:2rem;transition:transform .3s ease-in-out,color .3s ease-in-out;animation:2s ease-in-out infinite pulse}.scroll-down__icon:hover{color:var(--c-text);transform:scale(1.3)}@media (width<=64em){.scroll-down{pointer-events:none;display:none}}@keyframes pulse{0%,to{color:var(--c-text-secondary);transform:scale(1)}50%{color:var(--c-text);transform:scale(1.3)}}.scroll-down a{display:inline-flex}.projects{min-height:93vh;position:relative}.projects__header{text-transform:uppercase;margin-bottom:clamp(.5rem,2vh,1rem);font-size:clamp(2rem,6vw,4rem)}.projects-stacks{z-index:100;flex-wrap:wrap;align-items:center;gap:clamp(1rem,2vw,1.5rem);margin-bottom:clamp(2rem,8vh,4rem);display:flex}.projects-stacks .stack{color:var(--c-text);background-color:var(--c-bg);border-color:var(--c-text);border:1.5px solid;border-radius:8px;padding:.2rem .4rem;font-size:clamp(1rem,2vw,1.3rem);transition:color .3s ease-in-out,background-color .3s ease-in-out,border-color .3s ease-in-out,transform .3s ease-in-out}.projects-stacks .stack--hidden{opacity:0;pointer-events:none;display:none}.projects-stacks .stack:hover{color:var(--c-bg);background-color:var(--c-text);border-color:var(--c-text)}.projects-stacks .stack:active{transform:scale(.95)}.projects-stacks .stack:focus-visible{outline:2px solid var(--c-text-secondary);outline-offset:3px;border-radius:4px}.projects-stacks .active-stack{color:var(--c-bg);background-color:var(--c-text);border-color:var(--c-text)}.projects-stacks .active-stack:hover{color:var(--c-text);background-color:var(--c-bg);border-color:var(--c-text)}.projects-stacks .just-clicked-active,.projects-stacks .just-clicked-active:hover{color:var(--c-bg);background-color:var(--c-text);border-color:var(--c-text)}.projects-stacks .just-clicked-unactive,.projects-stacks .just-clicked-unactive:hover{color:var(--c-text);background-color:var(--c-bg);border-color:var(--c-text)}.projects__container{grid-template-columns:repeat(3,1fr);display:grid}@media (width<=80em){.projects__container{grid-template-columns:repeat(2,1fr)}}@media (width<=48em){.projects__container{grid-template-columns:repeat(1,1fr)}}.projects__container{transition:opacity .3s ease-in-out}.projects__container.container--hidden{opacity:0}.projects__container{gap:4rem}.projects__container .no-projects{text-align:center;width:90%;font-size:clamp(2rem,6vw,3rem);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.projects__container .no-projects.disabled{display:none}.projects .more-stacks__btn{vertical-align:middle;justify-content:center;align-items:center;font-size:clamp(1.5rem,4vw,2.25rem);line-height:.6;transition:color .3s ease-in-out;display:inline-flex}.projects .more-stacks__btn:hover{color:var(--c-text-secondary)}.projects .more-stacks__btn:focus-visible{outline:2px solid var(--c-text-secondary);outline-offset:3px;border-radius:4px}.projects .card{background-color:var(--c-bg);border:4px solid var(--c-text);border-radius:32px;place-self:center;height:100%;transition:transform .25s,box-shadow .25s,opacity .3s ease-in-out,background-color .3s,color .3s;overflow:hidden}.projects .card.card--disabled{pointer-events:none;display:none}.projects .card:hover{box-shadow:var(--card-shadow-hover);transform:translateY(-4px)scale(1.02)}@media (width<=80em){.projects .card{max-width:35vw}}@media (width<=48em){.projects .card{max-width:70vw}}.projects .card__img{aspect-ratio:16/9;object-fit:cover;width:100%;display:block}.projects .card-body{flex-grow:1;padding:2.4rem 1.8rem}.projects .card-title{text-align:center;margin-bottom:.4rem;font-size:clamp(1.5rem,3vw,2rem)}.projects .card-description{-webkit-line-clamp:5;white-space:normal;overflow-wrap:break-word;word-break:break-word;-webkit-box-orient:vertical;height:5lh;margin-bottom:clamp(1.5rem,4vh,2rem);font-size:clamp(1rem,2vw,1.3rem);line-height:1.5;display:-webkit-box;overflow:hidden}.projects .card-stacks{justify-content:space-around;margin-bottom:clamp(2rem,6vh,3rem);display:flex}.projects .card-stacks .stack-icon{font-size:2rem;display:block;position:relative}.projects .card-stacks .stack-icon:after{content:attr(data-label);background:var(--c-text);color:var(--c-bg);white-space:nowrap;opacity:0;pointer-events:none;z-index:1;border-radius:4px;padding:4px 8px;font-family:inherit;font-size:.8rem;transition:opacity .2s,transform .2s;position:absolute;bottom:-1.75rem;left:50%;transform:translate(-50%)}.projects .card-stacks .stack-icon:hover:after{opacity:1;transform:translate(-50%)translateY(4px)}.projects .card-links{grid-template-columns:1fr 1fr;justify-content:center;align-items:center;display:grid}.projects .card-links .link-icon{font-size:3rem}.projects .card-links .github:link,.projects .card-links .github:visited,.projects .card-links .live-demo:link,.projects .card-links .live-demo:visited{color:var(--c-text);justify-self:center;align-items:center;text-decoration:none;transition:color .3s ease-in-out;display:flex}.projects .card-links .github:hover,.projects .card-links .live-demo:hover{color:var(--c-text-secondary)}.projects .card-links .github:focus-visible,.projects .card-links .live-demo:focus-visible{outline:2px solid var(--c-text-secondary);outline-offset:3px;border-radius:4px}.projects .card-links .live-demo-text{border-bottom:1px solid var(--c-text);font-size:clamp(1rem,2vw,1.3rem)}.footer{border-top:2px solid var(--c-text);width:100%}.footer__container{max-width:80rem;margin:auto;padding:clamp(.5rem,4vh,1.5rem) clamp(1rem,5vw,3rem)}.footer__img-nav-social{justify-content:space-around;align-items:center;display:flex}@media (width<=30em){.footer__img-nav-social{flex-direction:column;justify-content:center;gap:2rem}}.footer__social{gap:clamp(.5rem,4vh,1.5rem);display:flex}.footer__social a:focus-visible{outline:2px solid var(--c-text-secondary);outline-offset:3px;border-radius:4px}.footer__social .social__icon{color:var(--c-text);font-size:2.5rem;transition:color .3s ease-in-out;display:block}.footer__social .social__icon:hover{color:var(--c-text-secondary)}.footer__navbar{flex-direction:column;list-style:none;display:flex}@media (width<=30em){.footer__navbar{align-items:center}}.footer__navbar .navbar__item{font-size:1.3rem}.footer__copyright{text-align:center;margin-top:1rem;font-size:clamp(1rem,2vw,1.3rem)}@media (width<=30em){.footer__copyright{margin-top:2.5rem}}.grecaptcha-badge{visibility:hidden}.google__link{color:var(--c-text);border-color:var(--c-text);border-bottom:1px solid var(--c-text-secondary);padding-bottom:1px;text-decoration:none;transition:color .3s,border-bottom .3s}.google__link:hover{color:var(--c-text-secondary)}.google__link:focus-visible{outline:2px solid var(--c-text-secondary);outline-offset:3px;border-radius:4px}.cv a:link,.cv a:visited{color:inherit;text-decoration:none}.cv a:focus-visible{outline:2px solid var(--c-text-secondary);outline-offset:3px;border-radius:4px}.cv{flex-direction:column;font-size:clamp(1rem,2vw,1.3rem);display:flex}.cv__title-info{color:var(--c-text);font-weight:600}.cv__header{text-transform:uppercase;margin-bottom:clamp(.5rem,2vh,1rem);font-size:clamp(2rem,6vw,4rem)}.info{grid-template-columns:1.25fr 1.5fr 1fr;display:grid}@media (width<=30em){.info{grid-template-columns:1fr}}.info{justify-items:start;row-gap:.75rem;padding-bottom:1.5rem}.info a{align-items:center;display:flex}.info ion-icon{margin-right:.5rem}.cv__content{flex-grow:1;grid-template-columns:3fr 2fr;padding-top:clamp(1.5rem,3vw,3rem);display:grid}@media (width<=30em){.cv__content{grid-template-columns:1fr}}.cv__content{gap:2.5rem}.name{font-size:2rem}.cv__content h2{margin:0}.cv__content h3{margin:0;font-weight:500}.cv__content h4{margin:.5rem 0 0;font-weight:400}.cv__column{flex-direction:column;gap:2rem;display:flex}.cv__items{flex-direction:column;gap:1.5rem;margin-top:1.5rem;display:flex}.cv__items.languages{gap:1rem}.cv__time-location{align-items:center;gap:1rem;margin-top:.5rem;font-size:clamp(.8rem,2vw,1rem);display:flex}.time,.location{align-items:center;display:flex}.time ion-icon,.location ion-icon{margin-right:.25rem}.cv__content ul{flex-direction:column;gap:.5rem;margin-top:1rem;padding-left:1.5rem;display:flex}.cv__content li{line-height:1.3}.spacer{border-bottom:3px solid var(--c-text);width:100%;height:3px}.skills__container{flex-wrap:wrap;gap:1rem;display:flex}.cv .skill{border-bottom:1px solid var(--c-text);padding:.25rem .35rem}.language{grid-template-columns:1fr 1.5fr;align-items:center;gap:1.5rem;display:grid}.dots{align-items:center;gap:.5rem;display:flex}.contact__header{text-transform:uppercase;margin-bottom:clamp(2rem,8vw,4rem);font-size:clamp(2rem,6vw,4rem)}.contact__form{grid-template-columns:1fr 1fr;width:100%;display:grid}@media (width<=30em){.contact__form{grid-template-columns:1fr}}.contact__form{place-items:center;gap:clamp(2rem,6vw,3rem);font-size:clamp(1rem,2vw,1.3rem)}.form__group{flex-direction:column;justify-self:stretch;display:flex}.form__group.message{grid-column:1/-1}.form__group input,.form__group textarea{background-color:var(--c-bg);color:var(--c-text);border:2px solid var(--c-text);border-radius:8px;padding:.3rem .6rem;font-family:Funnel Sans;font-size:clamp(1rem,2vw,1.3rem);transition:outline .2s ease-in-out,background-color .3s,color .3s;position:relative}.form__group input:focus-visible,.form__group textarea:focus-visible{outline:2px solid var(--c-text-secondary)}.form__group input.error,.form__group textarea.error{border-color:#dc2626;animation:.4s ease-in-out squiggle}.form__group input.error:focus-visible,.form__group textarea.error:focus-visible{outline:2px solid #f87171}.form__group input:-webkit-autofill{transition:background-color 5000s ease-in-out;-webkit-box-shadow:0 0 0 1000px var(--c-bg)inset!important;-webkit-text-fill-color:var(--c-text)!important}.form__group input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 1000px var(--c-bg)inset!important;-webkit-text-fill-color:var(--c-text)!important}.form__group textarea{line-height:1.5}.form__group .error-message{color:#dc2626;visibility:hidden;opacity:0;font-size:.9rem;transition:opacity .2s;display:block}.form__group .error-message.active{visibility:visible;opacity:1}@keyframes squiggle{0%{transform:translate(0)}15%{transform:translate(-4px)}30%{transform:translate(4px)}45%{transform:translate(-4px)}60%{transform:translate(4px)}75%{transform:translate(-2px)}90%{transform:translate(2px)}to{transform:translate(0)}}.submit{grid-column:1/-1;justify-content:center;width:100%;margin-top:2rem;display:flex}.submit__btn{min-width:15%}@media (width<=64em){.submit__btn{min-width:20%}}@media (width<=48em){.submit__btn{min-width:35%}}.submit__btn{justify-content:center;align-items:center;gap:.5rem;min-height:4rem;display:flex}.submit__btn.deactivated{background-color:var(--c-btn-bg);cursor:none;pointer-events:none}.confirmation-disclaimer{font-size:clamp(.9rem,2vw,1.1rem)}.sk-chase{width:35px;height:35px;animation:2.5s linear infinite both sk-chase;position:relative}.sk-chase-dot{width:100%;height:100%;animation:2s ease-in-out infinite both sk-chase-dot;position:absolute;top:0;left:0}.sk-chase-dot:before{content:"";background-color:var(--c-bg);border-radius:100%;width:25%;height:25%;animation:2s ease-in-out infinite both sk-chase-dot-before;display:block}.sk-chase-dot:first-child{animation-delay:-1.1s}.sk-chase-dot:nth-child(2){animation-delay:-1s}.sk-chase-dot:nth-child(3){animation-delay:-.9s}.sk-chase-dot:nth-child(4){animation-delay:-.8s}.sk-chase-dot:nth-child(5){animation-delay:-.7s}.sk-chase-dot:nth-child(6){animation-delay:-.6s}.sk-chase-dot:first-child:before{animation-delay:-1.1s}.sk-chase-dot:nth-child(2):before{animation-delay:-1s}.sk-chase-dot:nth-child(3):before{animation-delay:-.9s}.sk-chase-dot:nth-child(4):before{animation-delay:-.8s}.sk-chase-dot:nth-child(5):before{animation-delay:-.7s}.sk-chase-dot:nth-child(6):before{animation-delay:-.6s}@keyframes sk-chase{to{transform:rotate(360deg)}}@keyframes sk-chase-dot{80%,to{transform:rotate(360deg)}}@keyframes sk-chase-dot-before{50%{transform:scale(.4)}to,0%{transform:scale(1)}}
/*# sourceMappingURL=style.css.map */
