@import"https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400..800;1,400..800&display=swap";@import"https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400..800;1,400..800&family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap";:root{--vt-c-white: #ffffff;--vt-c-white-soft: #f8f8f8;--vt-c-white-mute: #f2f2f2;--vt-c-black: #181818;--vt-c-black-soft: #222222;--vt-c-black-mute: #282828;--vt-c-indigo: #2c3e50;--vt-c-divider-light-1: rgba(60, 60, 60, .29);--vt-c-divider-light-2: rgba(60, 60, 60, .12);--vt-c-divider-dark-1: rgba(84, 84, 84, .65);--vt-c-divider-dark-2: rgba(84, 84, 84, .48);--vt-c-text-light-1: var(--vt-c-indigo);--vt-c-text-light-2: rgba(60, 60, 60, .66);--vt-c-text-dark-1: var(--vt-c-white);--vt-c-text-dark-2: rgba(235, 235, 235, .64);--vt-c-text-gold: #ffc576}:root{--color-background: var(--vt-c-white);--color-background-soft: var(--vt-c-white-soft);--color-background-mute: var(--vt-c-white-mute);--color-border: var(--vt-c-divider-light-2);--color-border-hover: var(--vt-c-divider-light-1);--color-heading: var(--vt-c-text-light-1);--color-text: var(--vt-c-text-light-1);--section-gap: 160px;--background-color: #fafafa;--background-element-hover-color: #261f40;--text-color: #261f40;--text-subtitle-color: var(--vt-c-text-gold);--text-title-color: #261f40;--text-hover-color: #000;--light-accent-color: #ccc;--accent-color: #abbaab;--blue-color: #2980b9;--card-background: #ffffff;--card-shadow: rgba(0, 0, 0, .1);--card-shadow-hover: rgba(0, 0, 0, .2);--overlay-background: rgba(0, 0, 0, .8)}:root.dark{--color-background: var(--vt-c-black);--color-background-soft: var(--vt-c-black-soft);--color-background-mute: var(--vt-c-black-mute);--color-border: var(--vt-c-divider-dark-2);--color-border-hover: var(--vt-c-divider-dark-1);--color-heading: var(--vt-c-text-dark-1);--color-text: var(--vt-c-text-dark-2);--background-color: #1a1a1a;--background-element-hover-color: #242424;--text-color: #EDEDED;--text-title-color: #ffffff;--text-hover-color: #ffffff;--light-accent-color: #555;--accent-color: #abbaab;--card-background: #2a2a2a;--card-shadow: rgba(0, 0, 0, .3);--card-shadow-hover: rgba(0, 0, 0, .5);--overlay-background: rgba(0, 0, 0, .9);--color-border: var(--text-subtitle-color)}*,*:before,*:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100vh;color:var(--text-color);background-color:var(--background-color);transition:color .5s ease,background-color .5s ease;line-height:1.6;font-size:16px;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{margin:0 auto;padding:2rem 0;font-weight:400;font-family:EB Garamond,serif!important;overflow-x:hidden;position:relative}html{scroll-behavior:smooth}*{transition-timing-function:cubic-bezier(.4,0,.2,1)}@media(prefers-reduced-motion:no-preference){*{animation-duration:.3s}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@keyframes fadeIn{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes fadeInBtn{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInFromBottom{0%{opacity:0;transform:translateY(50px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes cardHover{0%{transform:translateY(0) scale(1)}to{transform:translateY(-10px) scale(1.02)}}@keyframes name{0%{opacity:0;transform:translate(-100em)}50%{transform:translate(5em);opacity:.3}to{opacity:1;transform:translate(0)}}@keyframes fadeOpacity{0%{opacity:0}to{opacity:1}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-100px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(100px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-100px)}to{opacity:1;transform:translate(0)}}@keyframes tightToStretch{0%{transform:scale3d(-1.4,.4,-.7)}50%{transform:scale3d(1.3,1.3,1.3)}to{transform:scaleZ(1)}}@keyframes fadeOutShrink{0%{opacity:1;transform:scaleZ(1)}to{opacity:0;transform:scale3d(.5,.5,1)}}@keyframes goUp{0%{transform:none}to{transform:translate3d(0,-100%,0);opacity:1}}@keyframes goDown{0%{transform:translate3d(0,-100%,0)}to{transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.fade-enter-active,.fade-leave-active{transition:opacity .4s cubic-bezier(.4,0,.2,1),transform .4s cubic-bezier(.4,0,.2,1)}.fade-enter-from{opacity:0;transform:translateY(20px)}.fade-leave-to{opacity:0;transform:translateY(-20px)}.fade-enter-to,.fade-leave-from{opacity:1;transform:translateY(0)}img{image-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;max-width:100%;height:auto;transition:transform .3s ease,opacity .3s ease}*:focus-visible{outline:2px solid #fb4e03;outline-offset:2px}img[loading=lazy]{opacity:0;transition:opacity .3s}img[loading=lazy].loaded{opacity:1}li{list-style:none}.btn{display:flex;justify-content:center;align-items:center;flex-direction:row;gap:2rem;pointer-events:none;width:100%;max-width:100%}.btn>*{pointer-events:auto}.btn-link:before,.btn-link:after{content:"";position:absolute;overflow:hidden;inset:0 50%;z-index:-1;transition:all .4s cubic-bezier(.23,1,.32,1)}.btn-link:before{background-color:#0003;opacity:0;z-index:-2}.btn-link:after{background-color:var(--background-element-hover-color)}.btn-link:hover{color:var(--text-color)}.btn-link:hover:before{opacity:.8}.btn-link:hover:after{left:0;right:0}.btn-link{background:none;color:var(--text-color);display:block;font-size:1rem;font-weight:600;line-height:30px;position:relative;text-transform:uppercase;text-decoration:none;transition:.3s;border:solid 1px var(--text-color);border-radius:.5rem;padding:.5rem 1rem;overflow:hidden;cursor:pointer;width:auto;min-width:200px;text-align:center}.dark .btn-link{border:solid 1px var(--text-subtitle-color)}.btn-link:hover{color:var(--text-subtitle-color)}.dark .btn-link:hover{border:solid 1px var(--text-subtitle-color);box-shadow:0 0 10px #ffc57666,0 0 20px #ffc5764d,0 0 30px #ffc57633,inset 0 0 10px #ffc5761a;transform:translateY(-2px);transition:all .3s cubic-bezier(.4,0,.2,1)}@media screen and (min-width:360px)and (max-width:640px){.btn-link{cursor:pointer;background-color:var(--background-element-hover-color);border:solid 1px var(--text-subtitle-color);color:var(--text-subtitle-color);width:auto;min-width:200px;max-width:100%}.dark .btn-link{background-color:transparent;border:solid 1px var(--text-subtitle-color);color:var(--text-subtitle-color)}}@media screen and (max-width:359px){.btn-link{cursor:pointer;background-color:transparent;border:solid 1px var(--text-subtitle-color);color:var(--text-subtitle-color);width:auto;min-width:180px;max-width:100%;font-size:.85rem;padding:.6rem 1rem}.dark .btn-link{background-color:transparent;border:solid 1px var(--text-subtitle-color);color:var(--text-subtitle-color)}}.dark-mode-toggle[data-v-8582ad5a]{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;border:1px solid var(--text-color);border-radius:.5rem;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}.dark .dark-mode-toggle[data-v-8582ad5a]{border:solid 1px var(--text-subtitle-color);background:transparent;color:var(--text-color);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;border-radius:.5rem}.dark .dark-mode-toggle[data-v-8582ad5a]:hover{border:solid 1px var(--text-subtitle-color);background:var(--background-element-hover-color);box-shadow:0 0 10px #ffc57666,0 0 20px #ffc5764d,0 0 30px #ffc57633,inset 0 0 10px #ffc5761a;transform:translateY(-2px);transition:all .3s cubic-bezier(.4,0,.2,1)}.dark .dark-mode-toggle[data-v-8582ad5a]:active{transform:scale(.95)}.dark .dark-mode-toggle[data-v-8582ad5a]:focus-visible{outline:2px solid var(--accent-color);outline-offset:2px}.dark .dark-mode-toggle:hover .icon[data-v-8582ad5a]{transform:rotate(15deg)}.dark-mode-toggle .icon[data-v-8582ad5a]{width:1.2rem;height:1.2rem;transition:transform .3s ease}.dark-mode-toggle[data-v-8582ad5a]:hover{transform:scale(1.1);background:var(--text-color);color:var(--text-subtitle-color)}.dark-mode-toggle[data-v-8582ad5a]:active{transform:scale(.95)}.dark-mode-toggle[data-v-8582ad5a]:focus-visible{outline:2px solid var(--accent-color);outline-offset:2px}.dark-mode-toggle:hover .icon[data-v-8582ad5a]{transform:rotate(15deg)}.icon-fade-enter-active[data-v-8582ad5a],.icon-fade-leave-active[data-v-8582ad5a]{transition:opacity .2s ease,transform .2s ease}.icon-fade-enter-from[data-v-8582ad5a]{opacity:0;transform:rotate(-90deg) scale(.5)}.icon-fade-leave-to[data-v-8582ad5a]{opacity:0;transform:rotate(90deg) scale(.5)}.dark{border-color:var(--text-color);color:var(--text-color)}.dark{background:var(--text-color);color:var(--text-subtitle-color);box-shadow:0 0 10px #ffc57666,0 0 20px #ffc5764d,0 0 30px #ffc57633,inset 0 0 10px #ffc5761a}@media screen and (max-width:640px){.dark-mode-toggle[data-v-8582ad5a]{width:2.5rem;height:2.5rem}.dark-mode-toggle .icon[data-v-8582ad5a]{width:1rem;height:1rem}}@media screen and (min-width:360px)and (max-width:640px){.dark-mode-toggle[data-v-8582ad5a]{width:2.5rem;height:2.5rem;background-color:var(--background-element-hover-color)}.dark-mode-toggle .icon[data-v-8582ad5a]{width:1rem;height:1rem;color:var(--text-subtitle-color)}}@media screen and (max-width:359px){.dark-mode-toggle[data-v-8582ad5a]{width:2rem;height:2rem;background-color:var(--background-element-hover-color)}.dark-mode-toggle .icon[data-v-8582ad5a]{width:.8rem;height:.8rem;color:var(--text-subtitle-color)}}@media screen and (min-width:1099px){.container{max-width:1035px;width:100%;margin:0 auto;height:5rem;display:flex;align-items:center;justify-content:space-between}.btn-group{display:flex;justify-content:center;align-items:center;flex-direction:row;gap:1.5rem}.navbar{width:100%;display:flex;justify-content:flex-end;animation:fadeInRight .8s ease-in-out forwards}.logo{width:10%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.logo img{width:100%;animation:logoEntry 1.2s cubic-bezier(.4,0,.2,1) forwards}}@media screen and (min-width:641px)and (max-width:1098px){.container{max-width:1035px;width:100%;margin:0 auto 2rem;height:5rem;display:flex;align-items:center;justify-content:space-between;opacity:0;transform:scale(.2);animation:fadeInUp .8s ease-in-out forwards}.btn-group{display:flex;justify-content:center;align-items:center;flex-direction:row;gap:1.5rem}.logo{width:20%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.logo img{width:40%;animation:logoEntry 1.2s cubic-bezier(.4,0,.2,1) forwards}.navbar{width:100%;display:flex;justify-content:flex-end}}@media screen and (min-width:360px)and (max-width:640px){.container{max-width:100%;width:100%;margin:0 auto;padding:0 1rem;height:auto;min-height:4rem;display:flex;align-items:center;justify-content:space-between}.logo{width:auto;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;flex-shrink:0}.logo img{width:80px;height:auto;display:block;animation:logoEntry 1.2s cubic-bezier(.4,0,.2,1) forwards}.navbar{width:auto;padding-right:.5rem;display:flex;justify-content:flex-end;animation:goDown .8s ease-in-out forwards}.btn-group{display:flex;flex-direction:row;align-items:center;gap:.75rem}.btn-group .btn a{width:8rem;height:2.75rem;display:flex;justify-content:center;align-items:center;font-size:1rem}.notification-bar{margin-bottom:3rem}}@media screen and (max-width:359px){.container{padding:0 .5rem;min-height:3.5rem}.logo{width:auto;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;flex-shrink:0}.logo img{width:60px;height:auto;display:block;animation:logoEntry 1.2s cubic-bezier(.4,0,.2,1) forwards}.navbar{width:auto}.btn-group{display:flex;flex-direction:row;align-items:center;gap:.5rem}.btn-group .btn a{width:7rem;height:2.5rem;font-size:.9rem}}@keyframes logoEntry{0%{opacity:0;transform:translateY(-100px) rotate(0)}60%{opacity:1;transform:translateY(0) rotate(360deg)}to{opacity:1;transform:translateY(0) rotate(360deg)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}.hero-title,.hero-subtitle,.hero-description,.hero-button,.logo-illustration{opacity:0;transform:translateY(1rem);animation:fadeInUp .8s ease-out;animation-fill-mode:both}[data-delay]{animation-delay:calc(var(--delay) * .1s)}.hero{display:flex;justify-content:space-between;align-items:center;gap:2rem;width:100%;margin:4rem auto}.hero__container{display:flex;flex-direction:column;gap:1rem;width:70%}.hero-subtitle{color:var(--text-subtitle-color);font-weight:600}.hero-title{color:var(--text-title-color);font-family:Playfair Display,serif;font-weight:600;line-height:1}.hero-description p{color:var(--text-color);font-weight:500;text-align:justify;text-transform:capitalize}.hero-button{margin-top:1rem;display:flex;justify-content:start;gap:2rem;width:100%}@media screen and (min-width:1099px){.hero{max-width:1200px;min-height:85vh}.hero__container{display:flex;flex-direction:column;gap:1rem;width:60%}.hero-subtitle{font-size:3rem;-webkit-text-stroke:#261f40 .5px}.hero-title{font-size:3.5rem;margin:8px 0 16px;width:35rem}.hero-description p{font-size:1.2rem;font-weight:400}.hero-button .btn-group .btn{flex-direction:row}.hero-illustration{display:flex;justify-content:center;width:30%}.hero-illustration figure img{width:30rem;height:auto}}@media screen and (min-width:641px)and (max-width:1098px){.hero{max-width:1035px;padding:2rem 0;min-height:85vh}.hero-subtitle{font-size:2rem}.hero-title{font-size:2.5rem;margin:8px 0 16px}.hero-description p{font-size:1.5rem}.hero-button{gap:1rem}.hero-button .btn-group .btn{min-width:23rem}.hero-illustration figure img{width:100%;height:auto}}@media screen and (min-width:360px)and (max-width:640px){.hero{min-height:25vh;padding:1rem 0}.hero__container{padding-left:1rem;padding-right:1rem}.hero-illustration{display:none}.hero-title{min-width:auto;width:100%;font-size:1.8rem;font-weight:700;word-wrap:break-word}.hero-subtitle{font-size:1.5rem;font-weight:700;-webkit-text-stroke:var(--text-color) .2px;word-wrap:break-word}.hero-description p{font-size:.95rem;line-height:1.6}.hero-button{display:none}}@media screen and (max-width:359px){.hero{min-height:20vh;padding:.75rem 0}.hero__container{padding-left:.75rem;padding-right:.75rem}.hero-title{font-size:1.5rem}.hero-subtitle{font-size:1.25rem}.hero-description p{font-size:.9rem}}.skills-title,.figure-logo,.stack-description,.skills-section__content__item{opacity:0;transform:translateY(1rem);transition:all .8s ease-out}.skills-title.active,.figure-logo.active,.stack-description.active,.skills-circle.start-animation .skills-section__content__item{opacity:1;transform:translateY(0)}.skills-title{display:flex;flex-direction:column;align-self:flex-start;margin-top:4rem auto 0}.skills-title .title{font-size:2rem;font-weight:600;margin-bottom:1rem;color:var(--text-title-color);text-transform:uppercase}.skills-title .subtitle{font-size:2.5rem;font-weight:600;color:var(--text-subtitle-color);-webkit-text-stroke:#261f40 .5px;text-transform:uppercase}.skills-section{max-width:1200px;margin:1rem auto 2rem;display:flex;flex-direction:column;align-items:center;padding:2rem 0}.skills-section__container{display:flex;width:100%}.skills-section__content{display:flex;align-items:center;position:relative;width:100%;min-height:20rem}.skills-circle{position:relative;width:100%;height:100%}.skills-section__content__item{position:absolute;top:50%;left:50%;transform-origin:center;transform:translate(-50%,-50%);text-align:center;transition:transform 1.5s ease,opacity 1.5s ease}.skills-section__content__item i{font-size:3rem;color:var(--text-color);margin-bottom:.5rem}.skills-section__content__item p{font-size:1.5rem;color:var(--text-color)}.skills-circle .skills-section__content__item:nth-child(1){transition-delay:.2s}.skills-circle .skills-section__content__item:nth-child(2){transition-delay:.3s}.skills-circle .skills-section__content__item:nth-child(3){transition-delay:.4s}.skills-circle .skills-section__content__item:nth-child(4){transition-delay:.5s}.skills-circle.start-animation .skills-section__content__item:nth-child(1){transform:translate(-50%,-50%) rotate(0) translateY(-120px)}.skills-circle.start-animation .skills-section__content__item:nth-child(2){transform:translate(-50%,-50%) rotate(90deg) translateY(-120px)}.skills-circle.start-animation .skills-section__content__item:nth-child(3){transform:translate(-50%,-50%) rotate(180deg) translateY(-120px)}.skills-circle.start-animation .skills-section__content__item:nth-child(4){transform:translate(-50%,-50%) rotate(270deg) translateY(-120px)}.skills-circle.rotate-animation{animation:rotateCircle 10s linear infinite}@keyframes rotateCircle{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.figure-logo{display:flex;justify-content:flex-end}.figure-logo img{animation:upAndDown 2s linear infinite}@keyframes upAndDown{0%,to{transform:translateY(0)}50%{transform:translateY(-1rem)}}.stack-description{max-width:1200px;margin:2rem auto;padding:2rem;background-color:var(--color-background-soft);box-shadow:10px 10px 5px 5px var(--card-shadow);border:1px solid var(--color-border);border-radius:.5rem}.dark .stack-description{border:solid 1px var(--text-subtitle-color)}.stack-description p{font-size:1.2rem;color:var(--text-color);line-height:1.8}.skills-section__content__item svg{animation:scale 1s linear infinite alternate}@keyframes scale{0%{transform:scale(1.2)}to{transform:scale(1)}}@media screen and (min-width:360px)and (max-width:640px){.skills-section{padding:1rem}.skills-title{margin-top:0;margin-bottom:3rem;align-items:start}.skills-title .title{font-size:1.5rem}.skills-title .subtitle{font-size:2rem}.skills-section__logo{display:none}.stack-description{padding:1rem}.stack-description p{font-size:1rem;line-height:1.6}.skills-circle{width:80%;height:80%;justify-content:center;align-items:center}.skills-section__content{flex-direction:column}.skills-circle.start-animation .skills-section__content__item:nth-child(1){transform:translate(-50%,-50%) rotate(0) translateY(-90px)}.skills-circle.start-animation .skills-section__content__item:nth-child(2){transform:translate(-50%,-50%) rotate(90deg) translateY(-90px)}.skills-circle.start-animation .skills-section__content__item:nth-child(3){transform:translate(-50%,-50%) rotate(180deg) translateY(-90px)}.skills-circle.start-animation .skills-section__content__item:nth-child(4){transform:translate(-50%,-50%) rotate(270deg) translateY(-90px)}.skills-section__content__item svg{width:50px;height:50px}.skills-section__content__item p{font-size:1.2rem}.skills-section__content__item button{padding:.5rem 1rem;font-size:.8rem}}@media screen and (max-width:359px){.skills-section{padding:.75rem}.skills-title .title{font-size:1.25rem}.skills-title .subtitle{font-size:1.75rem}.stack-description{padding:.75rem}.stack-description p{font-size:.9rem}.skills-circle.start-animation .skills-section__content__item:nth-child(1){transform:translate(-50%,-50%) rotate(0) translateY(-70px)}.skills-circle.start-animation .skills-section__content__item:nth-child(2){transform:translate(-50%,-50%) rotate(90deg) translateY(-70px)}.skills-circle.start-animation .skills-section__content__item:nth-child(3){transform:translate(-50%,-50%) rotate(180deg) translateY(-70px)}.skills-circle.start-animation .skills-section__content__item:nth-child(4){transform:translate(-50%,-50%) rotate(270deg) translateY(-70px)}.skills-section__content__item svg{width:40px;height:40px}.skills-section__content__item p{font-size:1rem}}.competences-title[data-v-8dcface1],.competence-category[data-v-8dcface1]{opacity:0;transform:translateY(2rem);transition:all .8s cubic-bezier(.4,0,.2,1)}.competences-title.active[data-v-8dcface1],.competence-category.active[data-v-8dcface1]{opacity:1;transform:translateY(0)}.competence-item[data-v-8dcface1]{opacity:0;transform:translate(-1rem);transition:all .4s ease}.competence-item.active[data-v-8dcface1]{opacity:1;transform:translate(0)}.competences-title[data-v-8dcface1]{display:flex;flex-direction:column;align-self:flex-start;margin:4rem auto 3rem;max-width:1200px;width:100%;padding:0 2rem}.competences-title .title[data-v-8dcface1]{font-size:2rem;font-weight:600;margin-bottom:.5rem;color:var(--text-title-color);text-transform:uppercase;transition:color .3s ease}.competences-title .subtitle[data-v-8dcface1]{font-size:2.5rem;font-weight:600;color:var(--text-subtitle-color);-webkit-text-stroke:var(--text-color) .5px;text-transform:uppercase;transition:color .3s ease}.competences-section[data-v-8dcface1]{max-width:1200px;margin:0 auto;padding:2rem 1rem 4rem;display:flex;flex-direction:column;align-items:center}.competences-grid[data-v-8dcface1]{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;width:100%;padding:0 1rem}.competence-category[data-v-8dcface1]{background:var(--card-background);padding:2rem;box-shadow:0 4px 6px var(--card-shadow);transition:all .3s ease,transform .3s ease,box-shadow .3s ease;border-radius:.5rem}.competence-category[data-v-8dcface1]:hover{transform:translateY(-8px);box-shadow:0 12px 24px var(--card-shadow-hover);border-color:var(--color-border)}.dark .competence-category[data-v-8dcface1]:hover{border:solid 1px var(--color-border)}.competence-category__header[data-v-8dcface1]{display:flex;align-items:center;gap:1rem;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid var(--color-border);transition:border-color .3s ease}.dark .competence-category__header[data-v-8dcface1]{border-bottom:solid 1px var(--color-border)}.competence-category:hover .competence-category__header[data-v-8dcface1]{border-bottom-color:var(--color-border)}.competence-category__icon[data-v-8dcface1]{width:3.5rem;height:3.5rem;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--text-subtitle-color),var(--text-color));color:var(--card-background);transition:transform .3s ease;border-radius:.5rem}.competence-category__icon .icon[data-v-8dcface1]{width:1.5rem;height:1.5rem}.competence-category:hover .competence-category__icon[data-v-8dcface1]{transform:rotate(5deg) scale(1.1)}.competence-category__title[data-v-8dcface1]{font-size:1.5rem;font-weight:600;color:var(--text-title-color);text-transform:uppercase;transition:color .3s ease}.competence-category__content[data-v-8dcface1]{display:flex;flex-direction:column;gap:1rem}.competence-item[data-v-8dcface1]{padding:.75rem 1rem;background:var(--color-background-soft);transition:all .3s ease;border-radius:.5rem;border:1px solid var(--color-border)}.competence-item[data-v-8dcface1]:hover{background:var(--color-background-mute);transform:translate(.5rem)}.dark .competence-item[data-v-8dcface1]:hover{border:solid 1px var(--color-border)}.competence-item__name[data-v-8dcface1]{font-size:1rem;font-weight:500;color:var(--text-color);transition:color .3s ease}@media screen and (min-width:1025px){.competences-grid[data-v-8dcface1]{grid-template-columns:repeat(2,1fr);gap:2.5rem}.competences-title[data-v-8dcface1]{margin:6rem auto 4rem}.competences-title .title[data-v-8dcface1]{font-size:2.5rem}.competences-title .subtitle[data-v-8dcface1]{font-size:3rem}}@media screen and (min-width:641px)and (max-width:1024px){.competences-grid[data-v-8dcface1]{grid-template-columns:repeat(2,1fr);gap:2rem}.competences-title[data-v-8dcface1]{margin:4rem auto 3rem}.competences-title .title[data-v-8dcface1]{font-size:2rem}.competences-title .subtitle[data-v-8dcface1]{font-size:2.5rem}}@media screen and (max-width:640px){.competences-grid[data-v-8dcface1]{grid-template-columns:1fr;gap:1.5rem}.competences-title[data-v-8dcface1]{margin:3rem auto 2rem;padding:0 1rem}.competences-title .title[data-v-8dcface1]{font-size:1.5rem}.competences-title .subtitle[data-v-8dcface1]{font-size:2rem}.competence-category[data-v-8dcface1]{padding:1.5rem}.competence-category__header[data-v-8dcface1]{margin-bottom:1.5rem}.competence-category__icon[data-v-8dcface1]{width:3rem;height:3rem;font-size:1.25rem}.competence-category__title[data-v-8dcface1]{font-size:1.25rem}}@media screen and (max-width:480px){.competences-title[data-v-8dcface1]{margin:2rem auto 1.5rem;padding:0 .75rem}.competences-title .title[data-v-8dcface1]{font-size:1.25rem}.competences-title .subtitle[data-v-8dcface1]{font-size:1.75rem}.competence-category[data-v-8dcface1]{padding:1rem}.competence-category__icon[data-v-8dcface1]{width:2.5rem;height:2.5rem;font-size:1.1rem}.competence-category__title[data-v-8dcface1]{font-size:1.1rem}.competence-item[data-v-8dcface1]{padding:.5rem .75rem}.competence-item__name[data-v-8dcface1]{font-size:.9rem}}.projects-section[data-v-520eef45]{max-width:1400px;width:100%;margin:6rem auto;padding:2rem;display:flex;flex-direction:column;align-items:center}.projects-section__title[data-v-520eef45]{font-size:3rem;font-weight:700;color:var(--text-title-color);margin-bottom:1rem;text-align:center;opacity:0;transform:translateY(30px);transition:all .6s cubic-bezier(.4,0,.2,1)}.projects-section__title.visible[data-v-520eef45]{opacity:1;transform:translateY(0)}.projects-section__subtitle[data-v-520eef45]{font-size:1.2rem;color:var(--text-color);margin-bottom:3rem;text-align:center;opacity:0;transform:translateY(30px);transition:all .6s cubic-bezier(.4,0,.2,1) .2s}.projects-section__subtitle.visible[data-v-520eef45]{opacity:1;transform:translateY(0)}.projects-grid[data-v-520eef45]{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:2.5rem;width:100%;opacity:0;transform:translateY(30px);transition:all .8s cubic-bezier(.4,0,.2,1) .4s}.projects-grid.visible[data-v-520eef45]{opacity:1;transform:translateY(0)}.projects-section__footer[data-v-520eef45]{margin-top:3rem;display:flex;justify-content:center;align-items:center;opacity:0;transform:translateY(30px);transition:all .6s cubic-bezier(.4,0,.2,1) .6s;width:100%;padding:0 1rem;box-sizing:border-box}.projects-section__footer.visible[data-v-520eef45]{opacity:1;transform:translateY(0)}.project-card[data-v-520eef45]{background:var(--card-background);overflow:hidden;box-shadow:0 4px 20px var(--card-shadow);transition:all .3s cubic-bezier(.4,0,.2,1);opacity:0;transform:translateY(20px);animation:fadeInUp-520eef45 .6s cubic-bezier(.4,0,.2,1) forwards;animation-delay:var(--delay);position:relative;cursor:pointer;display:flex;flex-direction:column;border-radius:.5rem}.project-card__image-wrapper[data-v-520eef45]{width:100%;height:250px;overflow:hidden;background:var(--color-background-soft);position:relative;flex-shrink:0;border-radius:.5rem}.project-card__image[data-v-520eef45]{width:100%;height:100%;object-fit:cover;display:block;opacity:1;visibility:visible;position:relative;z-index:1;transition:transform .4s cubic-bezier(.4,0,.2,1);image-rendering:auto;-ms-interpolation-mode:bicubic}.project-card:hover .project-card__image[data-v-520eef45]{transform:scale(1.05)}.project-card[data-v-520eef45]:hover{transform:translateY(-3px);box-shadow:0 6px 25px var(--card-shadow-hover);border-color:var(--color-border)}.dark .project-card[data-v-520eef45]:hover{border:solid 1px var(--color-border)}.project-card__content[data-v-520eef45]{padding:2.5rem;position:relative;display:flex;flex-direction:column;gap:1.5rem;flex:1}.project-card__links[data-v-520eef45]{display:flex;gap:.75rem;margin-top:auto;padding-top:1.5rem;border-top:1px solid var(--color-border)}.dark .project-card__links[data-v-520eef45]{border-top:solid 1px var(--color-border)}.project-card-link[data-v-520eef45]{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;background:var(--color-background-soft);border:1px solid var(--color-border);color:var(--text-color);text-decoration:none;transition:all .3s ease;border-radius:.5rem}.dark .project-card-link[data-v-520eef45]{border:solid 1px var(--color-border)}.project-card-link .icon[data-v-520eef45]{width:1rem;height:1rem}.project-card-link[data-v-520eef45]:hover{background:var(--text-subtitle-color);color:var(--card-background);border-color:var(--color-border);transform:translateY(-3px) scale(1.1);box-shadow:0 4px 12px #ffc5764d}.dark .project-card-link[data-v-520eef45]:hover{border:solid 1px var(--color-border)}.project-card-link[data-v-520eef45]:nth-child(2):hover{background:#24292e;border-color:#24292e;box-shadow:0 4px 12px #24292e4d}.project-card__title[data-v-520eef45]{font-size:1.75rem;font-weight:700;color:var(--text-title-color);margin:0;font-family:Playfair Display,serif;transition:color .3s cubic-bezier(.4,0,.2,1);line-height:1.3}.project-card:hover .project-card__title[data-v-520eef45]{color:var(--text-subtitle-color)}.project-card__description[data-v-520eef45]{font-size:1rem;color:var(--text-color);line-height:1.7;margin:0;opacity:.9}.project-card__technologies[data-v-520eef45]{display:flex;flex-wrap:wrap;gap:.75rem}.tech-badge[data-v-520eef45]{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;color:#fff;font-size:.9rem;font-weight:600;transition:transform .2s ease;border-radius:.5rem}.dark .tech-badge[data-v-520eef45]{border:solid 1px var(--text-subtitle-color)}.tech-badge[data-v-520eef45]:hover{transform:scale(1.05)}.tech-badge i[data-v-520eef45]{font-size:1.1rem}.tech-badge .icon[data-v-520eef45]{width:1.1rem;height:1.1rem;flex-shrink:0}@keyframes fadeInUp-520eef45{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media screen and (max-width:768px){.projects-section[data-v-520eef45]{margin:4rem auto;padding:1rem}.projects-section__title[data-v-520eef45]{font-size:2rem}.projects-section__subtitle[data-v-520eef45]{font-size:1rem;margin-bottom:2rem}.projects-grid[data-v-520eef45]{grid-template-columns:1fr;gap:2rem}.project-card__image-wrapper[data-v-520eef45]{height:200px}.project-card__content[data-v-520eef45]{padding:1.5rem}.project-card__title[data-v-520eef45]{font-size:1.5rem}.project-card__description[data-v-520eef45]{font-size:.95rem}.projects-section__footer[data-v-520eef45]{margin-top:2rem;padding:0;width:100%}.projects-section__footer .btn-group[data-v-520eef45]{width:100%;max-width:100%;display:flex;justify-content:center}.projects-section__footer .btn-link[data-v-520eef45]{width:auto;min-width:auto;max-width:calc(100% - 2rem);padding:.75rem 1.5rem;font-size:.9rem;white-space:nowrap}}@media screen and (max-width:359px){.projects-section[data-v-520eef45]{margin:3rem auto;padding:.75rem}.projects-section__title[data-v-520eef45]{font-size:1.75rem}.projects-section__subtitle[data-v-520eef45]{font-size:.9rem;margin-bottom:1.5rem}.project-card__image-wrapper[data-v-520eef45]{height:180px}.project-card__content[data-v-520eef45]{padding:1rem}.project-card__title[data-v-520eef45]{font-size:1.25rem}.project-card__description[data-v-520eef45]{font-size:.85rem}.projects-section__footer[data-v-520eef45]{margin-top:1.5rem;padding:0;width:100%}.projects-section__footer .btn-group[data-v-520eef45]{width:100%;max-width:100%;display:flex;justify-content:center}.projects-section__footer .btn-link[data-v-520eef45]{width:auto;min-width:auto;max-width:calc(100% - 1rem);padding:.6rem 1rem;font-size:.85rem;white-space:nowrap}.tech-badge[data-v-520eef45]{padding:.4rem .75rem;font-size:.8rem}.tech-badge i[data-v-520eef45]{font-size:.9rem}.tech-badge .icon[data-v-520eef45]{width:.9rem;height:.9rem}}@media screen and (min-width:769px)and (max-width:1024px){.projects-grid[data-v-520eef45]{grid-template-columns:repeat(2,1fr)}}@media screen and (min-width:1400px){.projects-grid[data-v-520eef45]{grid-template-columns:repeat(3,1fr)}}.footer{color:var(--text-color);padding:3rem 0}.footer-container,.footer-content,.btn{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2rem}.footer-content__contact-info .btn-group .btn{flex-direction:row}.footer-content__title{font-size:1.5rem;font-weight:600}.footer-content__description{font-size:1rem}.linkedin-button:hover:after{background-color:#005582}.linkedin-button,.github-button,.x-button{display:flex;align-items:center;gap:.5rem;border-color:var(--text-color)}.linkedin-button .icon,.github-button .icon{width:1rem;height:1rem;flex-shrink:0}.github-button:hover:after{background-color:#1c1c1c}.x-button svg{fill:var(--text-color);transition:fill .3s ease}.x-button:hover:after{background-color:#000}.x-button:hover svg{fill:#ffc576}:global(.dark) .linkedin-button:hover:after{background-color:#0a66c2}:global(.dark) .github-button:hover:after{background-color:#fff}:global(.dark) .x-button:hover:after{background-color:#fff}:global(.dark) .x-button:hover svg{fill:#000}:global(.dark) .linkedin-button:hover{color:#fff}:global(.dark) .github-button:hover{color:#000}:global(.dark) .x-button:hover{color:#000}:global(.dark) .linkedin-button,:global(.dark) .github-button,:global(.dark) .x-button{border-color:var(--text-color)}:global(.dark) .x-button svg{fill:var(--text-color);transition:fill .3s ease}.designsby{display:flex;flex-direction:column;align-items:center;padding:2rem 0}.designsby-title{font-size:2rem;font-weight:700;color:var(--text-title-color);margin-bottom:1rem}.heart-container{display:flex;align-items:center;justify-content:center}.heart{width:3rem;height:3rem;color:#ffc576;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.footer-content__contact-info .btn-group .btn a{width:8rem;display:flex;flex-direction:row;justify-content:center;align-items:center;height:3rem}@media screen and (min-width:360px)and (max-width:640px){.footer{padding:2rem 1rem}.footer-content{display:flex;flex-direction:column;align-items:center;gap:1rem}.footer-content__title{font-size:1.25rem;text-align:center}.footer-content__description{font-size:.9rem;text-align:center}.x-button svg{fill:var(--text-subtitle-color)}:global(.dark) .x-button svg{fill:var(--text-color)}.footer-content__contact-info .btn-group .btn{flex-direction:column}.footer-content__contact-info .btn-group .btn a{min-width:8rem;height:3rem;font-size:1rem;font-weight:500;padding:.5rem 1rem}.designsby{padding:1.5rem 0}.designsby-title{font-size:1.5rem}.heart{width:2.5rem;height:2.5rem}}@media screen and (max-width:359px){.footer{padding:1.5rem .75rem}.footer-content__title{font-size:1.1rem}.footer-content__description{font-size:.85rem}.footer-content__contact-info .btn-group .btn a{min-width:7rem;height:2.75rem;font-size:.9rem}.designsby-title{font-size:1.25rem}.heart{width:2rem;height:2rem}}@keyframes fadeSheet{0%{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%)}}@media screen and (min-width:1025px){.submit{cursor:pointer;position:relative;z-index:3}.btn-link div{font-weight:600;font-size:1rem}.container-contact{margin:2rem auto 0;width:80%}.form-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding-left:1rem;padding-right:1rem}.form-group,form{display:flex;flex-direction:column;width:100%;height:50vh;align-items:start;justify-content:center}label{font-size:1.2rem;letter-spacing:.1rem;color:var(--text-subtitle-color);-webkit-text-stroke:var(--text-color) .2px;font-weight:600;transition:color .3s ease;margin-bottom:.25rem}input,textarea{width:100%;padding:.5rem;margin:.5rem 0;border:1px solid var(--color-border);outline:none;resize:none;background-color:var(--card-background);color:var(--text-color);transition:border-color .3s ease,background-color .3s ease,color .3s ease;font-family:inherit;border-radius:.5rem}.dark input,.dark textarea{border:solid 1px var(--text-subtitle-color)}input:focus,textarea:focus{border:2px solid var(--text-subtitle-color);box-shadow:0 0 0 3px #ffc5761a}.dark input:focus,.dark textarea:focus{border:solid 1px var(--text-subtitle-color)}input::placeholder,textarea::placeholder{color:var(--color-text);opacity:.6}.textarea{width:80%;margin-bottom:.5rem}.textarea textarea{height:6rem}#envelope{width:25rem;height:20vh;background-color:#150d34;position:relative;z-index:2;top:20%;border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem;display:flex;align-self:center}.right,.left{width:0;height:0;position:absolute;top:0;border-bottom:15rem solid;border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem;z-index:1}.right{border-bottom-color:var(--text-color);border-left:25rem solid transparent;right:0}.left{border-bottom-color:#392c6a;border-right:25rem solid transparent;left:0}#envelope:after{content:"";position:absolute;bottom:100%;left:0;width:0;height:0;border:12.5rem solid transparent;border-bottom:10rem solid var(--text-color);z-index:-1}.sheet{width:88%;padding:1rem 0;height:73vh;background-color:var(--card-background);position:absolute;z-index:0;bottom:10%;left:50%;transform:translate(-50%);box-shadow:0 0 1rem var(--card-shadow);animation:fadeSheet 1s ease;transition:background-color .3s ease,box-shadow .3s ease;border:1px solid var(--color-border)}.contact-page{height:100vh;display:flex;justify-content:center;align-items:center}.inputs{width:60%;display:flex;flex-direction:column;align-items:start;justify-content:center;margin-bottom:.5rem}}@media screen and (min-width:641px)and (max-width:1024px){.submit{cursor:pointer;position:relative;z-index:3}.btn-link div{font-weight:600;font-size:1rem}.container-contact{margin:10rem auto 0;width:80%}.form-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding-left:1rem;padding-right:1rem}.form-group,form{display:flex;flex-direction:column;width:100%;align-items:start;justify-content:center}label{font-size:1rem;color:var(--text-subtitle-color);font-weight:600;transition:color .3s ease;margin-bottom:.25rem}input,textarea{width:100%;padding:.5rem;margin:.5rem 0;border:1px solid var(--color-border);outline:none;resize:none;background-color:var(--card-background);color:var(--text-color);transition:border-color .3s ease,background-color .3s ease,color .3s ease;font-family:inherit;border-radius:.5rem}.dark input,.dark textarea{border:solid 1px var(--text-subtitle-color)}input:focus,textarea:focus{border:2px solid var(--text-subtitle-color);box-shadow:0 0 0 3px #ffc5761a}.dark input:focus,.dark textarea:focus{border:solid 1px var(--text-subtitle-color)}input::placeholder,textarea::placeholder{color:var(--color-text);opacity:.6}.textarea{height:10rem;width:80%}#envelope{width:32rem;height:20rem;background-color:#150d34;position:relative;z-index:2;bottom:-50%;border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem;display:flex;align-self:end}.right,.left{width:0;height:0;position:absolute;top:0;border-bottom:20rem solid;border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem;z-index:1}.right{border-bottom-color:var(--text-color);border-left:32rem solid transparent;right:0}.left{border-bottom-color:#392c6a;border-right:32rem solid transparent;left:0}#envelope:after{content:"";position:absolute;bottom:100%;left:0;width:0;height:0;border:16rem solid transparent;border-bottom:10rem solid var(--text-color);z-index:-1}.sheet{width:88%;padding:1rem 0;height:41.5rem;background-color:var(--card-background);position:absolute;z-index:0;bottom:10%;left:50%;transform:translate(-50%);box-shadow:0 0 1rem var(--card-shadow);animation:fadeSheet 1s ease;transition:background-color .3s ease,box-shadow .3s ease;border:1px solid var(--color-border)}.contact-page{min-height:80vh;display:flex;justify-content:center;align-items:center}.inputs{width:50%}}@media screen and (max-width:640px){.contact{display:none}.submit{cursor:pointer;position:relative;z-index:3}.btn-link div{font-weight:600;font-size:1rem}.container-contact{margin:10rem auto 0;width:80%}.form-container{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding-left:1rem}.form-group,form{display:flex;flex-direction:column;width:100%;align-items:start;justify-content:center}label{font-size:1rem;color:var(--text-subtitle-color);font-weight:600;transition:color .3s ease;margin-bottom:.25rem}input,textarea{width:100%;padding:.5rem;margin:.5rem 0;border:1px solid var(--color-border);outline:none;resize:none;background-color:var(--card-background);color:var(--text-color);transition:border-color .3s ease,background-color .3s ease,color .3s ease;font-family:inherit;border-radius:.5rem}.dark input,.dark textarea{border:solid 1px var(--text-subtitle-color)}input:focus,textarea:focus{border:2px solid var(--text-subtitle-color);box-shadow:0 0 0 3px #ffc5761a}.dark input:focus,.dark textarea:focus{border:solid 1px var(--text-subtitle-color)}input::placeholder,textarea::placeholder{color:var(--color-text);opacity:.6}.textarea{width:100%}#envelope{width:100%;max-width:25rem;height:15rem;background-color:#150d34;position:relative;z-index:2;margin:0 auto;border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem;display:flex}.right,.left{width:0;height:0;position:absolute;top:0;border-bottom:15rem solid;border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem;z-index:1}.right{border-bottom-color:var(--text-color);border-left:25rem solid transparent;right:0}.left{border-bottom-color:#392c6a;border-right:25rem solid transparent;left:0}#envelope:after{content:"";position:absolute;bottom:100%;left:0;width:0;height:0;border:12.5rem solid transparent;border-bottom:10rem solid var(--text-color);z-index:-1}.sheet{width:95%;padding:1rem;min-height:30rem;background-color:var(--card-background);position:absolute;z-index:0;bottom:5%;left:50%;transform:translate(-50%);box-shadow:0 0 1rem var(--card-shadow);animation:fadeSheet 1s ease;transition:background-color .3s ease,box-shadow .3s ease;border:1px solid var(--color-border)}.dark .sheet{border:solid 1px var(--text-subtitle-color)}.contact-page{min-height:auto;display:flex;justify-content:center;align-items:center;padding:1rem}.inputs{width:100%}.form-group,form{height:auto}}.intro-container{display:flex;align-items:center;justify-content:center;padding:2rem 1rem;max-width:1400px;margin:3rem auto;gap:3rem;flex-wrap:wrap}.intro-container__texts{padding:2rem;display:flex;flex-direction:column;justify-content:start;flex:1;min-width:300px;max-width:500px;text-align:left;background:var(--card-background);box-shadow:0 10px 30px var(--card-shadow);border:1px solid var(--color-border);border-radius:.5rem}.dark .intro-container__texts{border:solid 1px var(--text-subtitle-color)}.intro-container__texts p{color:var(--text-title-color);font-size:1rem;text-align:justify;margin-bottom:1rem}#title-contact{display:flex;flex-direction:column;align-items:start;justify-content:center;gap:.5rem}.title-contact{color:var(--text-title-color);display:flex;font-weight:600;text-transform:uppercase}.subtitle-contact{display:flex;margin-bottom:1rem}.subtitle-contact h3{color:var(--text-subtitle-color);font-size:1.2rem;font-weight:600;text-transform:uppercase;-webkit-text-stroke:var(--text-color) .25px}@media screen and (max-width:640px){.intro-container{flex-direction:column;padding:1rem;margin:2rem auto}.intro-container__texts{width:100%;max-width:100%;padding:1.5rem}#title-contact{align-items:center}#title-contact p{text-align:center}}@media screen and (min-width:641px)and (max-width:1024px){.intro-container{gap:2rem;flex-direction:column;padding:2rem;margin:2rem auto}.intro-container__texts{width:100%;max-width:600px;padding:2rem}.title-contact{font-size:1.5rem}.intro-container__texts p{font-weight:500}}@media screen and (min-width:1025px){.intro-container{gap:3rem;flex-direction:row;padding:3rem;margin:4rem auto}.intro-container__texts{flex:0 0 45%;max-width:500px;padding:2.5rem}.title-contact{font-size:2rem}.intro-container__texts p{font-size:1.1rem;font-weight:500;line-height:1.8}}@media screen and (max-width:480px){.intro-container{padding:.75rem;margin:1.5rem auto}.intro-container__texts{padding:1rem}.title-contact{font-size:1.25rem}.subtitle-contact h3{font-size:1rem}.intro-container__texts p{font-size:.9rem;line-height:1.6}}.projects-section__header[data-v-35391fe9],.project-item[data-v-35391fe9]{opacity:0;transform:translateY(2rem);transition:all .8s cubic-bezier(.4,0,.2,1)}.projects-section__header.active[data-v-35391fe9],.project-item.active[data-v-35391fe9]{opacity:1;transform:translateY(0)}.projects-page[data-v-35391fe9]{min-height:100vh;background:var(--background-color);transition:background-color .3s ease}.projects-section[data-v-35391fe9]{max-width:1200px;margin:0 auto;padding:4rem 2rem}.projects-section__header[data-v-35391fe9]{text-align:center;margin-bottom:4rem}.projects-section__title[data-v-35391fe9]{font-size:3rem;font-weight:700;color:var(--text-title-color);margin-bottom:1rem;font-family:Playfair Display,serif;transition:color .3s ease}.projects-section__subtitle[data-v-35391fe9]{font-size:1.3rem;color:var(--text-color);line-height:1.6;transition:color .3s ease}.projects-list[data-v-35391fe9]{display:flex;flex-direction:column;gap:4rem}.project-item[data-v-35391fe9]{background:var(--card-background);border:1px solid var(--color-border);overflow:hidden;box-shadow:0 4px 6px var(--card-shadow);transition:all .3s ease,transform .3s ease,box-shadow .3s ease;display:grid;grid-template-columns:1.2fr 1fr;gap:0;min-height:400px;border-radius:.5rem}.dark .project-item[data-v-35391fe9]{border:solid 1px var(--text-subtitle-color)}.project-item--reverse[data-v-35391fe9]{grid-template-columns:1fr 1.2fr}.project-item--reverse .project-item__image[data-v-35391fe9]{order:2}.project-item--reverse .project-item__content[data-v-35391fe9]{order:1}.project-item[data-v-35391fe9]:hover{transform:translateY(-8px);box-shadow:0 12px 24px var(--card-shadow-hover);border-color:var(--text-subtitle-color)}.dark .project-item[data-v-35391fe9]:hover{border:solid 1px var(--text-subtitle-color)}.project-item__image[data-v-35391fe9]{position:relative;overflow:hidden;aspect-ratio:auto;cursor:pointer;height:100%;border-radius:.5rem}.project-item__image img[data-v-35391fe9]{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.project-item:hover .project-item__image img[data-v-35391fe9]{transform:scale(1.1)}.project-item__overlay[data-v-35391fe9]{position:absolute;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;gap:1rem;opacity:0;transition:opacity .3s ease;color:#fff;font-size:1.2rem;font-weight:600}.project-item:hover .project-item__overlay[data-v-35391fe9]{opacity:1}.project-item__overlay .icon[data-v-35391fe9]{width:1.2rem;height:1.2rem}.project-item__content[data-v-35391fe9]{padding:2.5rem;display:flex;flex-direction:column;gap:1.5rem;justify-content:space-between}.project-item__header[data-v-35391fe9]{display:flex;flex-direction:column;gap:1rem}.project-item__footer[data-v-35391fe9]{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:auto;padding-top:1.5rem;border-top:1px solid var(--color-border)}.dark .project-item__footer[data-v-35391fe9]{border-top:solid 1px var(--text-subtitle-color)}.project-item__title[data-v-35391fe9]{font-size:2.2rem;font-weight:700;color:var(--text-title-color);margin:0;font-family:Playfair Display,serif;transition:color .3s ease;line-height:1.2}.project-item:hover .project-item__title[data-v-35391fe9]{color:var(--text-subtitle-color)}.project-item__description[data-v-35391fe9]{font-size:1.1rem;line-height:1.7;color:var(--text-color);margin:0;transition:color .3s ease}.project-item__technologies[data-v-35391fe9]{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.5rem}.tech-badge[data-v-35391fe9]{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;color:#fff;font-size:.875rem;font-weight:600;box-shadow:0 2px 8px #0003;border-radius:.5rem}.dark .tech-badge[data-v-35391fe9]{border:solid 1px var(--text-subtitle-color)}.tech-badge i[data-v-35391fe9]{font-size:1rem}.tech-badge .icon[data-v-35391fe9]{width:1rem;height:1rem;flex-shrink:0}.project-item__features[data-v-35391fe9]{display:flex;flex-direction:column;gap:.75rem;margin:1rem 0}.feature-tag[data-v-35391fe9]{display:flex;align-items:center;gap:.75rem;font-size:.95rem;color:var(--text-color);transition:all .3s ease;padding:.5rem;background:var(--color-background-soft);border-radius:.5rem}.dark .feature-tag[data-v-35391fe9]{border:solid 1px var(--text-subtitle-color)}.feature-tag[data-v-35391fe9]:hover{background:var(--color-background-mute);transform:translate(.5rem)}.feature-tag .icon[data-v-35391fe9]{width:.875rem;height:.875rem;color:var(--text-subtitle-color);flex-shrink:0;transition:color .3s ease}.project-item__button[data-v-35391fe9]{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.75rem;font-size:1rem;font-weight:600;border:2px solid var(--text-subtitle-color);background:var(--text-subtitle-color);color:var(--card-background);cursor:pointer;transition:all .3s ease;font-family:inherit;border-radius:.5rem}.dark .project-item__button[data-v-35391fe9]{border:solid 1px var(--text-subtitle-color)}.project-item__button[data-v-35391fe9]:hover{background:transparent;color:var(--text-subtitle-color);transform:translate(5px)}.dark .project-item__button[data-v-35391fe9]:hover{border:solid 1px var(--text-subtitle-color)}.project-item__button .icon[data-v-35391fe9]{width:1rem;height:1rem;transition:transform .3s ease}.project-item__button:hover .icon[data-v-35391fe9]{transform:translate(5px)}.project-item__links[data-v-35391fe9]{display:flex;gap:.75rem}.project-item-link[data-v-35391fe9]{display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;text-decoration:none;transition:all .3s ease;border:2px solid var(--color-border);background:var(--color-background-soft);color:var(--text-color);border-radius:.5rem}.dark .project-item-link[data-v-35391fe9]{border:solid 1px var(--text-subtitle-color)}.project-item-link .icon[data-v-35391fe9]{width:1rem;height:1rem}.project-item-link[data-v-35391fe9]:hover{background:var(--text-subtitle-color);color:var(--card-background);border-color:var(--text-subtitle-color);transform:translateY(-3px) scale(1.1);box-shadow:0 4px 12px #ffc5764d}.dark .project-item-link[data-v-35391fe9]:hover{border:solid 1px var(--text-subtitle-color)}.project-item-link[data-v-35391fe9]:nth-child(2):hover{background:#24292e;border-color:#24292e;box-shadow:0 4px 12px #24292e4d}@media screen and (min-width:1025px){.projects-section[data-v-35391fe9]{padding:6rem 2rem}.projects-section__title[data-v-35391fe9]{font-size:3.5rem}}@media screen and (min-width:641px)and (max-width:1024px){.projects-section[data-v-35391fe9]{padding:4rem 2rem}.project-item[data-v-35391fe9]{grid-template-columns:1fr;min-height:auto}.project-item--reverse[data-v-35391fe9]{grid-template-columns:1fr}.project-item--reverse .project-item__image[data-v-35391fe9]{order:1}.project-item--reverse .project-item__content[data-v-35391fe9]{order:2}.project-item__image[data-v-35391fe9]{aspect-ratio:16/9}}@media screen and (max-width:640px){.projects-section[data-v-35391fe9]{padding:3rem 1rem}.projects-section__title[data-v-35391fe9]{font-size:2rem}.projects-section__subtitle[data-v-35391fe9]{font-size:1.1rem}.project-item[data-v-35391fe9]{grid-template-columns:1fr;min-height:auto}.project-item--reverse[data-v-35391fe9]{grid-template-columns:1fr}.project-item--reverse .project-item__image[data-v-35391fe9]{order:1}.project-item--reverse .project-item__content[data-v-35391fe9]{order:2}.project-item__content[data-v-35391fe9]{padding:1.5rem}.project-item__footer[data-v-35391fe9]{flex-direction:column;align-items:stretch}.project-item__button[data-v-35391fe9]{width:100%;justify-content:center}.project-item__title[data-v-35391fe9]{font-size:1.5rem}.project-item__description[data-v-35391fe9]{font-size:1rem}}.project-detail-page[data-v-daeb49e4]{min-height:100vh}.project-detail[data-v-daeb49e4]{max-width:1200px;margin:0 auto;padding:2rem}.back-button[data-v-daeb49e4]{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:var(--card-background);border:2px solid var(--color-border);cursor:pointer;font-size:1rem;font-weight:600;color:var(--text-color);transition:all .3s ease;margin-bottom:2rem;border-radius:.5rem}.dark .back-button[data-v-daeb49e4]{border:solid 1px var(--text-subtitle-color)}.back-button .icon[data-v-daeb49e4]{width:1rem;height:1rem;flex-shrink:0}.back-button[data-v-daeb49e4]:hover{background:var(--text-subtitle-color);color:var(--card-background);border-color:var(--text-subtitle-color);transform:translate(-5px)}.project-detail__header[data-v-daeb49e4]{margin-bottom:3rem;animation:fadeInUp-daeb49e4 .6s ease}.project-detail__title[data-v-daeb49e4]{font-size:3.5rem;font-weight:700;color:var(--text-title-color);margin-bottom:1rem;font-family:Playfair Display,serif}.project-detail__subtitle[data-v-daeb49e4]{font-size:1.3rem;text-align:justify;color:var(--text-color);line-height:1.8;margin-bottom:2rem}.project-detail__technologies[data-v-daeb49e4]{display:flex;flex-wrap:wrap;gap:1rem}.tech-badge-large[data-v-daeb49e4]{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.5rem;color:#fff;font-size:1rem;font-weight:600;box-shadow:0 4px 15px #0003;border-radius:.5rem}.dark .tech-badge-large[data-v-daeb49e4]{border:solid 1px var(--text-subtitle-color)}.tech-badge-large i[data-v-daeb49e4]{font-size:1.3rem}.tech-badge-large .icon[data-v-daeb49e4]{width:1.3rem;height:1.3rem;flex-shrink:0}.project-detail__links[data-v-daeb49e4]{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2rem}.project-link[data-v-daeb49e4]{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.75rem;font-size:1rem;font-weight:600;text-decoration:none;transition:all .3s ease;border:2px solid transparent;border-radius:.5rem}.dark .project-link[data-v-daeb49e4]{border:solid 1px var(--text-subtitle-color)}.project-link--website[data-v-daeb49e4]{background:var(--text-subtitle-color);color:var(--card-background);border-color:var(--text-subtitle-color)}.dark .project-link--website[data-v-daeb49e4]{border:solid 1px var(--text-subtitle-color)}.project-link--website[data-v-daeb49e4]:hover{background:transparent;color:var(--text-subtitle-color);transform:translateY(-2px);box-shadow:0 4px 12px #ffc5764d}.dark .project-link--website[data-v-daeb49e4]:hover{border:solid 1px var(--text-subtitle-color)}.project-link--github[data-v-daeb49e4]{background:var(--card-background);color:var(--text-color);border-color:var(--color-border)}.dark .project-link--github[data-v-daeb49e4]{border:solid 1px var(--text-subtitle-color)}.project-link--github[data-v-daeb49e4]:hover{background:#24292e;color:#fff;border-color:#24292e;transform:translateY(-2px);box-shadow:0 4px 12px #24292e4d}.dark .project-link--github[data-v-daeb49e4]:hover{border:solid 1px var(--text-subtitle-color)}.project-link--demo[data-v-daeb49e4]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:transparent}.dark .project-link--demo[data-v-daeb49e4]{border:solid 1px var(--text-subtitle-color)}.project-link--demo[data-v-daeb49e4]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66;opacity:.9}.dark .project-link--demo[data-v-daeb49e4]:hover{border:solid 1px var(--text-subtitle-color)}.project-link .icon[data-v-daeb49e4]{width:1.1rem;height:1.1rem;display:inline-block;flex-shrink:0}.project-detail__hero-image[data-v-daeb49e4]{width:100%;height:500px;margin-bottom:4rem;overflow:hidden;box-shadow:0 20px 60px #00000026;animation:fadeInUp-daeb49e4 .8s ease .2s both;border-radius:.5rem}.project-detail__hero-image img[data-v-daeb49e4]{width:100%;height:auto;display:block;image-rendering:auto;-ms-interpolation-mode:bicubic}.project-detail__content[data-v-daeb49e4]{display:flex;flex-direction:column;gap:4rem}.content-section[data-v-daeb49e4]{animation:fadeInUp-daeb49e4 .6s ease both}.content-section[data-v-daeb49e4]:nth-child(1){animation-delay:.15s}.content-section[data-v-daeb49e4]:nth-child(2){animation-delay:.2s}.content-section[data-v-daeb49e4]:nth-child(3){animation-delay:.25s}.content-section[data-v-daeb49e4]:nth-child(4){animation-delay:.3s}.section-title[data-v-daeb49e4]{font-size:2.5rem;font-weight:700;color:var(--text-title-color);margin-bottom:2rem;font-family:Playfair Display,serif;position:relative;padding-bottom:1rem}.section-title[data-v-daeb49e4]:after{content:"";position:absolute;bottom:0;left:0;width:100px;height:4px;background:linear-gradient(90deg,#fb4e03,#ff6b35)}.problem-solution[data-v-daeb49e4]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.problem-box[data-v-daeb49e4],.solution-box[data-v-daeb49e4]{padding:2rem;box-shadow:0 10px 30px var(--card-shadow);transition:transform .3s ease;border-radius:.5rem}.problem-box[data-v-daeb49e4]{background:linear-gradient(135deg,#ffe5e54d,#ffcccc4d);border:1px solid var(--color-border)}.dark .problem-box[data-v-daeb49e4]{border:solid 1px var(--text-subtitle-color)}.solution-box[data-v-daeb49e4]{background:linear-gradient(135deg,#e5f5ff4d,#cceeff4d);border:1px solid var(--color-border)}.dark .solution-box[data-v-daeb49e4]{border:solid 1px var(--text-subtitle-color)}.problem-box[data-v-daeb49e4]:hover,.solution-box[data-v-daeb49e4]:hover{transform:translateY(-5px)}.dark .problem-box[data-v-daeb49e4]:hover,.dark .solution-box[data-v-daeb49e4]:hover{border:solid 1px var(--text-subtitle-color)}.problem-box h3[data-v-daeb49e4],.solution-box h3[data-v-daeb49e4]{font-size:1.5rem;font-weight:700;margin-bottom:1rem;display:flex;align-items:center;gap:.75rem;color:var(--text-title-color)}.problem-box h3 .icon[data-v-daeb49e4],.solution-box h3 .icon[data-v-daeb49e4]{width:1.5rem;height:1.5rem;flex-shrink:0}.problem-box p[data-v-daeb49e4],.solution-box p[data-v-daeb49e4]{font-size:1.1rem;line-height:1.8;color:var(--text-color)}.features-grid[data-v-daeb49e4]{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}.feature-card[data-v-daeb49e4]{display:flex;align-items:flex-start;gap:1rem;padding:1.5rem;background:var(--card-background);box-shadow:0 5px 20px var(--card-shadow);border:1px solid var(--color-border);transition:all .3s ease;opacity:0;transform:translateY(20px);animation:fadeInUp-daeb49e4 .5s ease forwards;animation-delay:var(--delay);border-radius:.5rem}.dark .feature-card[data-v-daeb49e4]{border:solid 1px var(--text-subtitle-color)}.feature-card[data-v-daeb49e4]:hover{transform:translateY(-5px);box-shadow:0 10px 30px var(--card-shadow-hover)}.dark .feature-card[data-v-daeb49e4]:hover{border:solid 1px var(--text-subtitle-color)}.feature-card .icon[data-v-daeb49e4]{width:1.5rem;height:1.5rem;flex-shrink:0;color:#42b883}.feature-card p[data-v-daeb49e4]{font-size:1rem;line-height:1.6;color:var(--text-color);margin:0}.gallery-grid[data-v-daeb49e4]{display:grid;grid-template-columns:repeat(auto-fit,minmax(500px,1fr));gap:2rem}.gallery-item[data-v-daeb49e4]{position:relative;overflow:hidden;aspect-ratio:16/9;box-shadow:0 5px 20px var(--card-shadow);border:1px solid var(--color-border);background:var(--card-background);border-radius:.5rem}.dark .gallery-item[data-v-daeb49e4]{border:solid 1px var(--text-subtitle-color)}.gallery-item img[data-v-daeb49e4]{width:100%;height:100%;object-fit:cover;display:block;opacity:1;visibility:visible;position:relative;z-index:1;image-rendering:auto;-ms-interpolation-mode:bicubic}.gallery-overlay[data-v-daeb49e4]{position:absolute;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease;z-index:2;pointer-events:none}.gallery-item:hover .gallery-overlay[data-v-daeb49e4]{opacity:1}.gallery-overlay .icon[data-v-daeb49e4]{width:2rem;height:2rem;color:#fff}.backend-content[data-v-daeb49e4]{background:var(--card-background);padding:2rem;box-shadow:0 5px 20px var(--card-shadow);border:1px solid var(--color-border);border-radius:.5rem;transition:all .3s ease}.dark .backend-content[data-v-daeb49e4],.dark .backend-content[data-v-daeb49e4]:hover{border:solid 1px var(--text-subtitle-color)}.backend-content p[data-v-daeb49e4]{font-size:1.1rem;line-height:1.8;color:var(--text-color)}.challenges-grid[data-v-daeb49e4]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.challenge-card[data-v-daeb49e4]{background:var(--card-background);padding:2rem;box-shadow:0 5px 20px var(--card-shadow);border:1px solid var(--color-border);transition:all .3s ease}.dark .challenge-card[data-v-daeb49e4]{border:solid 1px var(--text-subtitle-color)}.challenge-card[data-v-daeb49e4]:hover{transform:translateY(-5px);box-shadow:0 10px 30px var(--card-shadow-hover);border-color:var(--text-subtitle-color)}.dark .challenge-card[data-v-daeb49e4]:hover{border:solid 1px var(--text-subtitle-color)}.challenge-card__icon[data-v-daeb49e4]{width:4rem;height:4rem;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--text-subtitle-color),var(--text-color));color:var(--card-background);font-size:1.8rem;margin-bottom:1.5rem;border-radius:.5rem}.challenge-card__title[data-v-daeb49e4]{font-size:1.3rem;font-weight:600;color:var(--text-title-color);margin-bottom:1rem}.challenge-card__description[data-v-daeb49e4]{font-size:1rem;line-height:1.7;color:var(--text-color)}.learnings-content[data-v-daeb49e4]{background:var(--card-background);padding:2rem;box-shadow:0 5px 20px var(--card-shadow);border:1px solid var(--color-border);border-radius:.5rem;transition:all .3s ease}.dark .learnings-content[data-v-daeb49e4],.dark .learnings-content[data-v-daeb49e4]:hover{border:solid 1px var(--text-subtitle-color)}.learnings-list[data-v-daeb49e4]{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.learnings-list li[data-v-daeb49e4]{display:flex;align-items:flex-start;gap:1rem;padding:1rem;background:var(--color-background-soft);transition:all .3s ease;border-radius:.5rem}.dark .learnings-list li[data-v-daeb49e4]{border:solid 1px var(--text-subtitle-color)}.learnings-list li[data-v-daeb49e4]:hover{background:var(--color-background-mute);transform:translate(.5rem)}.learnings-list li .icon[data-v-daeb49e4]{width:1.2rem;height:1.2rem;flex-shrink:0;margin-top:.2rem;color:var(--text-subtitle-color)}.learnings-list li span[data-v-daeb49e4]{font-size:1rem;line-height:1.6;color:var(--text-color)}.lightbox[data-v-daeb49e4]{position:fixed;inset:0;background:#000000f2;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn-daeb49e4 .3s ease}.lightbox img[data-v-daeb49e4]{max-width:90%;max-height:90%;object-fit:contain;border-radius:.5rem}.lightbox-close[data-v-daeb49e4],.lightbox-prev[data-v-daeb49e4],.lightbox-next[data-v-daeb49e4]{position:absolute;background:#fff3;border:none;color:#fff;padding:1rem;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;border-radius:.5rem}.lightbox-close .icon[data-v-daeb49e4],.lightbox-prev .icon[data-v-daeb49e4],.lightbox-next .icon[data-v-daeb49e4]{width:1.5rem;height:1.5rem}.lightbox-close[data-v-daeb49e4]{top:2rem;right:2rem}.lightbox-prev[data-v-daeb49e4]{left:2rem}.lightbox-next[data-v-daeb49e4]{right:2rem}.lightbox-close[data-v-daeb49e4]:hover,.lightbox-prev[data-v-daeb49e4]:hover,.lightbox-next[data-v-daeb49e4]:hover{background:#fff6;transform:scale(1.1)}@keyframes fadeInUp-daeb49e4{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn-daeb49e4{0%{opacity:0}to{opacity:1}}.loading[data-v-daeb49e4]{display:flex;justify-content:center;align-items:center;min-height:100vh;font-size:1.5rem;color:var(--text-color)}@media(max-width:768px){.project-detail[data-v-daeb49e4]{padding:1rem}.project-detail__title[data-v-daeb49e4]{font-size:2rem}.project-detail__subtitle[data-v-daeb49e4]{font-size:1.1rem}.section-title[data-v-daeb49e4]{font-size:1.8rem}.problem-solution[data-v-daeb49e4],.features-grid[data-v-daeb49e4],.gallery-grid[data-v-daeb49e4]{grid-template-columns:1fr}.lightbox-prev[data-v-daeb49e4],.lightbox-next[data-v-daeb49e4]{display:none}.project-detail__technologies[data-v-daeb49e4]{gap:.75rem}.tech-badge-large[data-v-daeb49e4]{padding:.5rem 1rem;font-size:.9rem}.tech-badge-large i[data-v-daeb49e4]{font-size:1.1rem}.tech-badge-large .icon[data-v-daeb49e4]{width:1.1rem;height:1.1rem}.project-detail__links[data-v-daeb49e4]{flex-direction:column;width:100%}.project-link[data-v-daeb49e4]{width:100%;justify-content:center}.challenges-grid[data-v-daeb49e4],.learnings-list[data-v-daeb49e4]{grid-template-columns:1fr}.back-button[data-v-daeb49e4]{width:100%;justify-content:center}}@media(max-width:480px){.project-detail[data-v-daeb49e4]{padding:.75rem}.project-detail__title[data-v-daeb49e4]{font-size:1.75rem}.project-detail__subtitle[data-v-daeb49e4]{font-size:1rem}.section-title[data-v-daeb49e4]{font-size:1.5rem}.tech-badge-large[data-v-daeb49e4]{padding:.4rem .75rem;font-size:.85rem}.problem-box[data-v-daeb49e4],.solution-box[data-v-daeb49e4]{padding:1.5rem}.problem-box h3[data-v-daeb49e4],.solution-box h3[data-v-daeb49e4]{font-size:1.25rem}.problem-box p[data-v-daeb49e4],.solution-box p[data-v-daeb49e4]{font-size:1rem}.feature-card[data-v-daeb49e4]{padding:1rem}.gallery-item[data-v-daeb49e4]{aspect-ratio:16/9}.lightbox img[data-v-daeb49e4]{max-width:95%;max-height:85%}.lightbox-close[data-v-daeb49e4]{top:1rem;right:1rem;padding:.75rem}}
