.section__subtitle,h1,h2,h3{font-weight:var(--font-semi-bold)}.container,.home__description{margin-left:auto;margin-right:auto}.container,.header,.home__img,.nav__link.active-link::after,.nav__link:hover::after{width:100%}.about__description,.home__description,.services__description,h1,h2,h3,p{word-wrap:break-word;overflow-wrap:break-word}.reveal,button{cursor:pointer}.footer__logo,.nav__logo,.section__subtitle{text-transform:uppercase}.footer__links a::after,.nav__link::after{left:0;width:0;height:2px;position:absolute}:root{--header-height:4.2rem;--primary-color:#14b8a6;--primary-color-light:#5eead4;--primary-color-dark:#0f766e;--accent-color:#06b6d4;--title-color:#0f172a;--text-color:#475569;--text-color-light:#64748b;--body-color:#f8fafc;--container-color:#ffffff;--border-color:#e2e8f0;--shadow-sm:0 1px 2px 0 rgb(0 0 0 / 0.05);--shadow:0 1px 3px 0 rgb(0 0 0 / 0.1),0 1px 2px -1px rgb(0 0 0 / 0.1);--shadow-md:0 4px 6px -1px rgb(0 0 0 / 0.1),0 2px 4px -2px rgb(0 0 0 / 0.1);--shadow-lg:0 10px 15px -3px rgb(0 0 0 / 0.1),0 4px 6px -4px rgb(0 0 0 / 0.1);--title-font:'Montserrat',sans-serif;--body-font:'Space Grotesk',sans-serif;--big-font-size:2rem;--h1-font-size:1.75rem;--h2-font-size:1.5rem;--h3-font-size:1.125rem;--normal-font-size:0.938rem;--small-font-size:0.813rem;--smaller-font-size:0.75rem;--font-regular:400;--font-medium:500;--font-semi-bold:600;--font-bold:700;--z-tooltip:10;--z-fixed:100;--z-modal:1000;--transition:all 0.3s cubic-bezier(0.4, 0, 0.2, 1)}.button,.header,.nav__link,.nav__link::after,.nav__logo,.nav__menu{transition:var(--transition)}*{box-sizing:border-box;padding:0;margin:0;-webkit-tap-highlight-color:#fff0}html{scroll-behavior:smooth}body{font-family:var(--body-font);font-size:var(--normal-font-size);background-color:var(--body-color);color:var(--text-color);line-height:1.6;overflow-x:hidden}.button,.contact__form-tag,.nav__link,.nav__logo,.section__subtitle,h1,h2,h3{font-family:var(--title-font)}h1,h2,h3{color:var(--title-color);line-height:1.2}ul{list-style:none}a{text-decoration:none}img{max-width:100%;height:auto}button{border:none;outline:0}p{hyphens:auto}.container{max-width:1120px;padding-left:1.3rem;padding-right:1.3rem}.section{padding:6rem 0 2rem}.section__subtitle{display:block;font-size:var(--small-font-size);color:var(--primary-color);letter-spacing:1px;margin-bottom:.5rem;text-align:center}.section__title{font-size:var(--h2-font-size);margin-bottom:2.5rem;text-align:center;padding:0 1rem}.button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background-color:var(--primary-color);color:#fff;padding:1rem 1.5rem;border-radius:.5rem;font-weight:var(--font-medium);border:2px solid var(--primary-color);font-size:var(--normal-font-size);text-align:center;white-space:nowrap}.button__ghost,.header{background-color:#fff0}.button:hover{background-color:var(--primary-color-dark);border-color:var(--primary-color-dark);transform:translateY(-2px);box-shadow:var(--shadow-md)}.button__ghost{color:var(--primary-color);border:2px solid var(--primary-color)}.button__ghost:hover{background-color:var(--primary-color);color:#fff}.nav__link.active-link,.nav__link:hover,.nav__logo i,.nav__logo:hover{color:var(--primary-color)}.header{position:fixed;top:0;left:0;z-index:var(--z-fixed)}.header.scroll-header{background:var(--container-color);border-bottom:1px solid var(--border-color)}.nav{height:var(--header-height);display:flex;justify-content:space-between;align-items:center}.nav__menu{position:fixed;inset:0;background:rgb(255 255 255 / .98);backdrop-filter:blur(10px);display:flex;flex-direction:column;justify-content:center;align-items:center;opacity:0;visibility:hidden;pointer-events:none;z-index:var(--z-modal)}.nav__menu.active{opacity:1;visibility:visible;pointer-events:auto}.nav__link{font-size:1.5rem}.nav__close{position:absolute;top:1.5rem;right:1.5rem}@media screen and (max-width:767px){.nav__close,.nav__toggle{display:block}}@media screen and (min-width:768px){:root{--big-font-size:2.75rem;--h1-font-size:2.25rem;--h2-font-size:1.75rem;--h3-font-size:1.25rem;--normal-font-size:1rem;--small-font-size:0.875rem;--smaller-font-size:0.813rem}.section{padding:6rem 0 3rem}.section__title{margin-bottom:3rem}.nav__menu{position:static;opacity:1;visibility:visible;pointer-events:auto;background:#fff0;backdrop-filter:none;flex-direction:row}.nav__list{flex-direction:row;gap:2rem}.nav__link{font-size:var(--normal-font-size)}.nav__close{display:none}}.nav__logo{color:var(--title-color);font-weight:var(--font-bold);font-size:var(--h3-font-size);display:flex;letter-spacing:1.5px;align-items:center;gap:.5rem}.nav__logo i{font-size:1.5rem}.nav__close,.nav__toggle{display:none;font-size:1.5rem;color:var(--title-color);cursor:pointer}.home,.nav__list{display:flex;align-items:center}.home__greeting,.nav__link{font-size:var(--normal-font-size)}.nav__list{gap:2rem}.nav__link{color:var(--text-color);font-weight:var(--font-medium);position:relative}.nav__link::after{content:'';bottom:-.5rem;background-color:var(--primary-color)}.home{padding-top:calc(var(--header-height) + 2rem);min-height:100vh}.home__container{display:grid;gap:2rem;align-items:center;width:100%}.home__data{text-align:left;order:2}.about__box,.about__content{text-align:center}.home__greeting{color:var(--text-color-light);margin-bottom:.5rem;display:block}.home__buttons,.home__image{display:flex;justify-content:center}.home__name{font-size:var(--big-font-size);background:linear-gradient(135deg,var(--title-color),var(--primary-color));-webkit-background-clip:text;-webkit-text-fill-color:#fff0;background-clip:text;margin-bottom:.5rem;word-wrap:break-word}.about__box,.projects__card,.services__card,.skills__content{background-color:var(--container-color)}.home__profession{font-size:var(--h2-font-size);color:var(--primary-color);margin-bottom:1.5rem;word-wrap:break-word}.about__description:last-of-type,.home__description{margin-bottom:2rem}.home__description{color:var(--text-color);max-width:500px}.home__buttons{gap:1rem;flex-wrap:wrap;align-items:center}.home__image{order:1}.home__img{height:100%;object-fit:cover;border-radius:50%}.home__blob{width:280px;display:block;margin:0 auto;transition:transform .4s}.about__box,.contact__card,.home__scroll-button,.projects__card,.services__card{transition:var(--transition)}.home__blob image{transform-origin:center}.home__blob:hover{transform:translateY(-6px) scale(1.02)}.home__scroll{display:flex;justify-content:center;margin-top:2rem}.home__scroll-button{display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--primary-color);font-size:var(--small-font-size);font-weight:var(--font-medium)}.about__box h3,.contact__card h3,.skills__title{font-weight:var(--font-semi-bold)}.home__scroll-button i{font-size:1.5rem;animation:2s ease-in-out infinite scroll-down}.home__scroll-button:hover{transform:translateY(.25rem)}@keyframes scroll-down{0%,100%{transform:translateY(0)}50%{transform:translateY(.5rem)}}.about__container,.contact__container{display:grid;gap:2.5rem}.about__info{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-bottom:0}.about__box{border:1px solid var(--border-color);border-radius:.75rem;padding:1.25rem}.about__box:hover{border-color:var(--primary-color);transform:translateY(-.5rem);box-shadow:var(--shadow-md)}.projects__card:hover,.services__card:hover{transform:translateY(-.5rem);box-shadow:var(--shadow-lg);border-color:var(--primary-color)}.about__box i{font-size:2rem;color:var(--primary-color);margin-bottom:.5rem}.about__box h3{font-size:var(--normal-font-size);margin-bottom:.25rem}.about__box span,.skills__level{font-size:var(--small-font-size);color:var(--text-color-light)}.about__description{margin-bottom:1.5rem;text-align:left}.skills__container{display:grid;gap:2rem}.skills__content{border:1px solid var(--border-color);border-radius:1rem;padding:1.5rem}.skills__title{font-size:var(--h3-font-size);color:var(--title-color);text-align:center;margin-bottom:2.5rem;display:flex;align-items:center;justify-content:center;gap:.5rem;flex-wrap:wrap}.contact__button,.contact__form-tag,.projects__tag,.skills__name{font-weight:var(--font-medium)}.services__icon,.skills__data i,.skills__title i{color:var(--primary-color)}.skills__title i{font-size:1.5rem}.skills__box{display:grid;gap:1.5rem}.skills__group{display:grid;gap:1rem}.skills__data{display:flex;gap:.75rem;align-items:flex-start}.skills__data i{font-size:1.25rem;margin-top:.25rem;flex-shrink:0}.skills__name{font-size:var(--normal-font-size);line-height:1.4;word-wrap:break-word}.contact__info,.projects__container,.services__container{display:grid;grid-template-columns:1fr;gap:1.5rem}.services__card{padding:2rem 1.5rem;border-radius:1rem;border:1px solid var(--border-color);text-align:center}.services__icon{font-size:2.5rem;margin-bottom:1rem;display:block}.services__title{font-size:var(--h3-font-size);margin-bottom:1rem;color:var(--title-color);word-wrap:break-word}.services__description{font-size:var(--small-font-size);color:var(--text-color);line-height:1.8}.projects__card{border-radius:1rem;overflow:hidden;border:1px solid var(--border-color)}.contact__card span,.projects__description{word-wrap:break-word;overflow-wrap:break-word}.contact__card:hover,.footer__social a:hover,.scrollup{box-shadow:var(--shadow-md)}.projects__image{background:linear-gradient(135deg,var(--primary-color-light),var(--primary-color));height:180px;display:flex;align-items:center;justify-content:center}.projects__image i{font-size:3.5rem;color:var(--container-color)}.projects__content{padding:1.5rem}.projects__title{font-size:var(--h3-font-size);margin-bottom:.75rem;color:var(--title-color);word-wrap:break-word}.projects__description{font-size:var(--small-font-size);color:var(--text-color);margin-bottom:1rem;line-height:1.8}.projects__tags{display:flex;gap:.5rem;flex-wrap:wrap}.btn-loader,.button.loading .btn-text,.contact__card.show-map .contact__content,.contact__map{display:none}.projects__tag{background-color:var(--body-color);color:var(--primary-color);padding:.25rem .75rem;border-radius:.25rem;font-size:var(--smaller-font-size);border:1px solid var(--border-color);white-space:nowrap}.contact__card{background-color:var(--container-color);padding:1.5rem;border-radius:1rem;text-align:center;border:1px solid var(--border-color)}.contact__card:hover{border-color:var(--primary-color)}.contact__card i{font-size:2rem;color:var(--primary-color);margin-bottom:.5rem;display:block}.btn-loader{width:18px;height:18px;border:2px solid #fff;border-top:2px solid #fff0;border-radius:50%;animation:.6s linear infinite spin}.button.loading .btn-loader{display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;bottom:6.5rem;right:1.2rem;background:#111;color:#fff;padding:.9rem 1.2rem;border-radius:.5rem;font-size:.9rem;opacity:0;transform:translateY(20px);transition:.3s;z-index:9999}.toast.show{opacity:1;transform:translateY(0)}.toast.success{background:#16a34a}.toast.error{background:#dc2626}.toast.warn{background:#f59e0b}.contact__card h3{font-size:var(--normal-font-size);margin-bottom:.5rem}.contact__button,.contact__card span,.contact__form-tag{font-size:var(--small-font-size)}.contact__card span{color:var(--text-color-light);display:block;margin-bottom:1rem}.reveal:hover{transform:translateY(-4px)}.contact__card.show-map .contact__map{display:block}.contact__button{color:var(--primary-color);display:inline-flex;align-items:center;gap:.25rem;transition:var(--transition)}.contact__button:hover{gap:.5rem}.contact__form{background-color:var(--container-color);padding:1.5rem;border-radius:1rem;border:1px solid var(--border-color)}.contact__form-div{margin-bottom:1.5rem}.contact__form-tag{display:block;color:var(--title-color);margin-bottom:.5rem}.contact__form-input,.footer__links a{color:var(--text-color);transition:var(--transition)}.contact__form-input{width:100%;background-color:var(--body-color);font-family:var(--body-font);font-size:var(--normal-font-size);border:1px solid var(--border-color);border-radius:.5rem;padding:1rem;outline:0;resize:vertical}.contact__form-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px rgb(20 184 166 / .1)}.footer,.footer__bottom{border-top:1px solid var(--border-color)}.contact__form-area{height:auto}.contact__form-area textarea{min-height:150px;height:100%}.footer{background:var(--container-color);padding:4rem 0 2rem}.footer__container{display:flex;flex-direction:column;gap:2.5rem;text-align:center}.footer__logo{font-size:var(--h2-font-size);font-family:var(--title-font);display:inline-flex;align-items:center;justify-content:center;letter-spacing:2px;font-weight:var(--font-bold);gap:.5rem;color:var(--title-color)}.footer__description{margin-top:.75rem;color:var(--text-color-light);font-size:var(--small-font-size);max-width:400px;margin-left:auto;margin-right:auto}.footer__middle{display:flex;flex-direction:column;gap:1.5rem;align-items:center}.footer__links{display:flex;gap:1.5rem;flex-wrap:wrap;justify-content:center}.footer__links a{font-family:var(--title-font);font-size:var(--small-font-size);position:relative}.footer__links a:hover,.footer__social a{color:var(--primary-color)}.footer__links a::after{content:'';bottom:-4px;background:var(--primary-color);transition:var(--transition)}.footer__links a:hover::after{width:100%}.footer__social{display:flex;gap:.75rem}.footer__social a{width:40px;height:40px;display:grid;place-items:center;border-radius:.5rem;background:var(--body-color);border:1px solid var(--border-color);font-size:1.25rem;transition:var(--transition)}.footer__social a:hover{background:var(--primary-color);color:#fff;transform:translateY(-3px)}.footer__bottom{padding-top:1.5rem}.footer__bottom span{font-size:var(--smaller-font-size);color:var(--text-color-light)}.scrollup{position:fixed;right:1.25rem;bottom:-50%;background-color:var(--primary-color);color:var(--container-color);padding:.4rem .7rem;border-radius:.5rem;font-size:1.15rem;z-index:var(--z-tooltip);transition:var(--transition);display:inline-flex}.scrollup:hover{background-color:var(--primary-color-dark);transform:translateY(-.25rem)}.scrollup.show-scroll{bottom:3rem}@media screen and (max-width:767px){.nav__menu.show-menu{top:var(--header-height)}.nav__list{flex-direction:column;gap:2rem}.nav__close,.nav__toggle{display:block}.nav__close{position:absolute;right:1.3rem;top:1rem}.home__buttons{flex-direction:column;width:100%}.home__buttons .button{width:100%;max-width:none}.button{padding:.875rem 1.25rem}}@media screen and (min-width:480px){.home__blob{width:250px;height:250px}.home__blob i{font-size:7rem}.services__container{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.projects__container{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}}@media screen and (min-width:576px){.about__info{grid-template-columns:repeat(3,1fr);gap:1.5rem}.contact__info,.skills__box{grid-template-columns:1fr}.projects__image{height:200px}.projects__image i{font-size:4rem}}@media screen and (min-width:768px){.about__content,.home__data{text-align:left}.home{padding-top:calc(var(--header-height) + 3rem)}.home__container{grid-template-columns:repeat(2,1fr);align-items:center;gap:3rem}.home__data{order:1}.home__image{order:2;margin-left:auto}.home__buttons{justify-content:flex-start}.home__buttons .button{width:auto}.home__description{margin-left:0;margin-right:0}.home__blob{width:380px;height:380px}.home__blob i{font-size:8rem}.about__container,.skills__container{grid-template-columns:1fr}.contact__form,.skills__content{padding:2rem}.projects__container,.services__container,.skills__box{grid-template-columns:repeat(2,1fr);gap:2rem}.services__icon{font-size:3rem}.contact__container{grid-template-columns:1fr;align-items:flex-start}.contact__info{grid-template-columns:repeat(3,1fr)}}@media screen and (min-width:1024px){:root{--big-font-size:3.5rem;--h1-font-size:2.5rem;--h2-font-size:2rem;--h3-font-size:1.5rem;--normal-font-size:1.125rem;--small-font-size:1rem;--smaller-font-size:0.875rem}.container{padding-left:2rem;padding-right:2rem}.section{padding:7rem 0 4rem}.header{padding:0}.nav{height:calc(var(--header-height) + 1rem)}.nav__list{gap:2.5rem}.home{padding-top:calc(var(--header-height) + 4rem)}.home__container{gap:4rem}.skills__container{grid-template-columns:repeat(2,1fr);gap:3rem}.projects__container,.services__container{grid-template-columns:repeat(3,1fr)}.contact__container{grid-template-columns:3fr 4fr;gap:3rem}.contact__info{grid-template-columns:1fr}.scrollup{right:3rem}}@media screen and (min-width:1200px){.container{padding-left:1rem;padding-right:1rem}.home__blob{width:320px;height:320px}.home__blob i{font-size:9rem}.services__icon{font-size:3.5rem}}@media screen and (min-width:1440px){.section{padding:8rem 0 5rem}.home{padding-top:calc(var(--header-height) + 5rem)}}