@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,200..800;1,200..800&display=swap";.nav-item{color:var(--ink-2);font-size:.9rem;font-weight:600;text-decoration:none}.nav-item:hover{color:var(--ink)}.nav-item-active{color:var(--ink);font-size:.9rem;font-weight:600;text-decoration:none}.btn-text{font-size:1rem;font-weight:700;text-decoration:none}.description{color:var(--ink-2);font-size:1rem;font-weight:400;line-height:1.7}.section-title{letter-spacing:-.03em;font-size:clamp(1.75rem,4.6vw,2.75rem);font-weight:800;line-height:1.08}.section-tag{letter-spacing:.14em;text-transform:uppercase;color:var(--accent-deep);font-size:.75rem;font-weight:700}.section-description{color:var(--ink-2);font-size:clamp(1rem,2vw,1.25rem);line-height:1.7}.hero-title{letter-spacing:-.04em;font-size:clamp(2.25rem,6vw,3.875rem);font-weight:800;line-height:1.04}.hero-title-soft{letter-spacing:-.04em;color:var(--ink-2);font-size:clamp(2.25rem,6vw,3.875rem);font-weight:700;line-height:1.04}.contact-title{letter-spacing:-.035em;font-size:clamp(1.875rem,5.4vw,3.25rem);font-weight:800;line-height:1.05}.project-title{letter-spacing:-.03em;font-size:clamp(1.375rem,3vw,1.875rem);font-weight:800}.project-number{color:var(--accent-deep);font-variant-numeric:tabular-nums;letter-spacing:.05em;font-size:.875rem;font-weight:700}.project-chip{letter-spacing:.03em;color:var(--ink-2);font-size:.75rem;font-weight:700}.other-project-title{color:var(--ink);letter-spacing:-.01em;font-size:.875rem;font-weight:700;line-height:1}.rol-title{letter-spacing:-.02em;font-size:clamp(1.25rem,2.6vw,1.5rem);font-weight:800}.rol-timeline{letter-spacing:.04em;color:var(--accent-deep);font-size:.8125rem;font-weight:700}.rol-company{color:var(--ink-3);font-size:.875rem;font-weight:600}.tech-text{letter-spacing:-.02em;color:var(--ink);font-size:clamp(1.25rem,3vw,1.875rem);font-weight:700;line-height:1.85}.btn-contained{background:var(--btn-bg);color:var(--btn-fg);box-shadow:var(--shadow-sm);transition:transform .2s var(--ease), box-shadow .2s var(--ease), background .3s var(--ease);cursor:pointer;border:1px solid #0000;border-radius:100px;align-items:center;gap:8px;padding:14px 24px;display:inline-flex}.btn-contained:hover{transform:translateY(-2px)}.btn-outlined{background:var(--glass-strong);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--glass-brd);transition:transform .2s var(--ease), box-shadow .2s var(--ease), background .3s var(--ease);cursor:pointer;border-radius:100px;align-items:center;gap:8px;padding:14px 24px 12px;display:inline-flex}.btn-outlined--icon-only{color:var(--ink-2);border-radius:14px;padding:12px}.btn-outlined--text-icon{color:var(--ink)}.btn-outlined:hover{transform:translateY(-2px)}.btn-outlined--text{padding-bottom:4px}.footer{text-align:center;color:var(--ink-3);padding-top:100px;font-size:13px}.nav{top:16px;z-index:40;width:100%;height:var(--nav-h);max-width:var(--maxw);margin-inline:auto;padding:0 1.1rem;position:fixed;inset-inline:0}.nav .nav__content{border-radius:100px;justify-content:space-between;align-items:center;gap:12px;width:100%;height:100%;padding:0 1.4rem;display:flex}.nav .nav__logo-container{cursor:pointer;align-items:center;gap:10px;font-size:15px;display:flex}.nav .nav__logo{background:var(--btn-bg);width:30px;height:30px;color:var(--btn-fg);border-radius:9px;place-items:center;font-size:13px;font-weight:800;display:grid}.nav .nav__actions-container{align-items:center;gap:8px;display:flex}.nav .nav__language-container{background:var(--control);border-radius:100px;padding:3px;display:flex;position:relative}.nav .nav__language-container[data-active=en] .nav__language-indicator{transform:translate(99%)}.nav .nav__language-indicator{background:var(--glass-strong);border-radius:100px;width:calc(50% - 3px);transition:transform .25s;position:absolute;top:3px;bottom:3px;left:3px;box-shadow:0 1px 3px #00000029}.nav .nav__language-btn{z-index:1;font-family:var(--font);color:var(--ink-2);cursor:pointer;background:0 0;border:none;border-radius:100px;padding:6px 12px;font-size:.75rem;font-weight:700;transition:color .2s;position:relative}.nav .nav__language-btn--active{color:var(--ink)}.nav .nav__theme-container{background:var(--control);border-radius:100px;align-items:center;gap:6px;height:32px;padding:6px;display:flex;position:relative}.nav .nav__theme-container[data-active=dark] .nav__theme-btn-switch{transform:translate(93%)}.nav .nav__theme-btn-switch{content:"";background:var(--glass-strong);width:26px;height:26px;transition:transform .25s var(--ease);cursor:pointer;border:none;border-radius:50%;position:absolute;transform:translate(-2px);box-shadow:0 1px 3px #0000004d}.nav .nav__theme-icon{color:var(--btn-bg);transition:opacity .25s var(--ease);pointer-events:none;margin-right:2px}.nav .nav__theme-container[data-active=dark] .nav__theme-icon--moon,.nav .nav__theme-container[data-active=light] .nav__theme-icon--sun{opacity:0}.nav .nav__menu-mobile-btn{background-color:#0000;border:none}.nav .nav__menu-mobile-icon{color:var(--btn-bg)}.nav .nav__menu-mobile-container{width:90%;top:calc(var(--nav-h) + 32px);max-width:var(--maxw);z-index:40;transform-origin:top;pointer-events:none;transition:opacity .25s var(--ease), transform .25s var(--ease);opacity:0;border-radius:24px;flex-direction:column;gap:2px;margin-inline:auto;padding:10px;display:flex;position:fixed;left:0;right:0;transform:translateY(-10px)scale(.98)}.nav .nav__menu-mobile-container[data-show=true]{opacity:1;pointer-events:auto;transform:none}.nav .nav__menu-mobile-item{cursor:pointer;background:0 0;border:none;justify-content:flex-start;padding:12px 16px;display:flex}.nav .nav__menu-container{display:flex}.app-background{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.app-background span{filter:blur(90px);opacity:var(--blob-op);transition:background .5s var(--ease);border-radius:50%;position:absolute}.app-background .a{background:var(--blob-a);width:520px;height:520px;animation:drift 26s var(--ease) infinite alternate;top:-160px;right:-80px}.app-background .b{background:var(--blob-b);width:460px;height:460px;animation:drift 32s var(--ease) infinite alternate-reverse;bottom:-180px;left:-100px}.app-background .c{background:var(--blob-c);width:400px;height:400px;animation:drift 38s var(--ease) infinite alternate;top:48%;left:40%}@keyframes drift{0%{transform:translate(0)scale(1)}to{transform:translate(44px,32px)scale(1.08)}}.contact-section{flex-direction:column;align-items:center;gap:14px;padding-top:100px;display:flex}.contact-section .contact-section__tag{align-items:center;gap:10px;display:inline-flex}.contact-section .contact-section__tag:before{content:"";background:var(--accent);border-radius:2px;width:18px;height:2px}.contact-section .contact-section__title{margin-bottom:12px}.contact-section .contact-section__description{max-width:500px;margin-bottom:16px}.contact-section .contact-section__networks-container{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:8px;display:flex}.hero-content{flex-direction:column;gap:22px;display:flex}.hero-content .hero-content__chip{background:var(--accent-soft);border-radius:100px;align-items:center;gap:8px;width:fit-content;padding:6px 12px;display:flex}.hero-content .hero-content__chip-pill{background:var(--accent);width:8px;height:8px;animation:ping 2.6s var(--ease) infinite;border-radius:50%}.hero-content .hero-content__buttons-container{flex-wrap:wrap;gap:12px;margin-top:8px;display:flex}.hero-content .hero-content__networks-container{flex-wrap:wrap;gap:12px;display:flex}@keyframes ping{0%{box-shadow:0 0 0 0 var(--accent-soft)}70%{box-shadow:0 0 0 8px #0000}to{box-shadow:0 0 #0000}}.hero-visual{align-self:center;place-items:center;width:clamp(190px,40vw,260px);height:320px;margin:0 auto;display:none;position:relative}.hero-visual .hero-visual__shape{z-index:1;position:absolute}.hero-visual .hero-visual__tile{aspect-ratio:1;width:clamp(190px,40vw,260px);color:var(--accent-deep);letter-spacing:-.05em;z-index:2;animation:tileBob 7s var(--ease) infinite alternate;box-shadow:var(--shadow-lg), inset 0 1px 0 var(--hi);border-radius:40px;place-items:center;font-size:clamp(96px,20vw,150px);font-weight:800;display:grid;position:relative}.hero-visual .hero-visual__circle-top-right{background:var(--accent-soft);border:1px solid var(--glass-brd);width:75px;height:75px;animation:float 7s var(--ease) infinite alternate;border-radius:50%;top:25px;right:-45px}.hero-visual .hero-visual__circle-bottom-left{background:var(--glass-strong);border:1px solid var(--glass-brd);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:60px;height:60px;animation:float 9s var(--ease) infinite alternate-reverse;border-radius:22px;bottom:40px;left:-55px}.hero-visual .hero-visual__ring{border:2px solid var(--accent);opacity:.4;width:120px;height:120px;animation:float 11s var(--ease) infinite alternate;border-radius:50%;bottom:10px;right:-70px}@keyframes tileBob{0%{transform:translateY(0)rotate(-1.5deg)}to{transform:translateY(-14px)rotate(1.5deg)}}@keyframes float{0%{transform:translateY(0)rotate(0)}to{transform:translateY(-26px)rotate(7deg)}}@media screen and (width>=1100px){.hero-visual{display:grid}}.hero-section{grid-template-columns:1fr;width:100%;padding-top:130px;display:grid}@media screen and (width>=1100px){.hero-section{grid-template-columns:1.2fr .8fr}}.journey-animation-one{place-items:center;width:140px;height:140px;display:grid;position:relative}.journey-animation-one .journey-animation-one__ring{border:1px solid var(--glass-brd);border-radius:50%;position:absolute;inset:0}.journey-animation-one .journey-animation-one__core{z-index:2;background:var(--glass-strong);border:1px solid var(--glass-brd);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:16px;place-items:center;width:52px;height:52px;display:grid;position:relative}.journey-animation-one .journey-animation-one__core .journey-animation-one__text{color:var(--accent-deep);margin-bottom:4px;font-size:20px;font-weight:800}.journey-animation-one .journey-animation-one__spin{width:0;height:0;animation:11s linear infinite spin;position:absolute}.journey-animation-one .journey-animation-one__spin i{background:var(--accent);width:18px;height:18px;box-shadow:0 0 12px var(--accent), 0 2px 6px #0000002e;border-radius:50%;position:absolute;top:0;left:0}.journey-animation-one .journey-animation-one__spin i:first-child{transform:translate(-7px,-78px)}.journey-animation-one .journey-animation-one__spin i:nth-child(2){background:var(--accent-deep);transform:translate(53px,20px)}.journey-animation-one .journey-animation-one__spin i:nth-child(3){opacity:.7;transform:translate(-69px,25px)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.journey-animation-three{place-items:center;width:140px;height:140px;display:grid;position:relative}.journey-animation-three span:first-child,.journey-animation-three span:nth-child(2),.journey-animation-three span:nth-child(3){border:2px solid var(--accent);opacity:0;width:24px;height:24px;animation:ripple 2.4s var(--ease) infinite;border-radius:50%;position:absolute}.journey-animation-three span:nth-child(2){animation-delay:.8s}.journey-animation-three span:nth-child(3){animation-delay:1.6s}.journey-animation-three span:nth-child(4){z-index:2;background:var(--accent);width:20px;height:20px;box-shadow:0 0 18px var(--accent);animation:sparkPulse 2.4s var(--ease) infinite;border-radius:50%;position:relative}@keyframes sparkPulse{0%,to{transform:scale(1)}50%{transform:scale(1.25)}}@keyframes ripple{0%{opacity:.55;transform:scale(1)}80%{opacity:0}to{opacity:0;transform:scale(5.2)}}.journey-animation-two{width:140px;height:120px;position:relative}.journey-animation-two span{background:var(--glass-strong);border:1px solid var(--glass-brd);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-sm);position:absolute}.journey-animation-two span:first-child{width:54px;height:54px;animation:float 6s var(--ease) infinite alternate;border-radius:18px;top:8px;left:10px}.journey-animation-two span:nth-child(2){background:var(--accent-soft);width:40px;height:40px;animation:float 8s var(--ease) infinite alternate-reverse;border-radius:50%;top:34px;right:12px}.journey-animation-two span:nth-child(3){width:34px;height:34px;animation:float 7s var(--ease) infinite alternate;border-radius:12px;animation-delay:-2s;bottom:1px;left:48px}.journey-step,.journey-step__active{grid-template-columns:1fr;width:100%;padding-left:30px;display:grid;position:relative}:is(.journey-step,.journey-step__active):before{content:"";background:var(--bg);border:2px solid var(--accent);border-radius:50%;width:15px;height:15px;position:absolute;top:2px;left:-8.5px}:is(.journey-step,.journey-step__active) .journey-step__title,:is(.journey-step,.journey-step__active) .journey-step__date{margin-bottom:2px}:is(.journey-step,.journey-step__active) .journey-step__company{margin-bottom:12px}:is(.journey-step,.journey-step__active) .journey-step__description--bold{color:var(--ink);width:max-content;font-weight:700}:is(.journey-step,.journey-step__active) .journey-step__animation{display:none}.journey-step__active:before{background:var(--accent);box-shadow:0 0 0 5px var(--accent-soft)}@media screen and (width>=1100px){.journey-step,.journey-step__active{grid-template-columns:1.2fr .8fr}:is(.journey-step,.journey-step__active) .journey-step__animation{place-items:center;display:grid}}.journey-section{flex-direction:column;gap:14px;padding-top:100px;display:flex}.journey-section .journey-section__tag{align-items:center;gap:10px;display:inline-flex}.journey-section .journey-section__tag:before{content:"";background:var(--accent);border-radius:2px;width:18px;height:2px}.journey-section .journey-section__title{margin-bottom:2px}.journey-section .journey-section__description{max-width:680px;margin-bottom:34px}.journey-section .journey-section__timeline{border-left:2px solid var(--hairline);flex-direction:column;gap:32px;display:flex}.other-projects{margin-top:40px}.other-projects .other-projects__title{text-transform:uppercase;letter-spacing:.12em;margin-bottom:20px;font-weight:700}.other-projects .other-projects__projects-container{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}.other-projects .other-projects__projects-container .other-projects__project{background:var(--glass-strong);border:1px solid var(--glass-brd);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow-sm);transition:transform .25s var(--ease), box-shadow .25s var(--ease);border-radius:20px;align-items:center;gap:14px;padding:16px;text-decoration:none;display:flex}.other-projects .other-projects__projects-container .other-projects__project:hover{cursor:pointer;transform:translateY(-2px)}.other-projects .other-projects__projects-container .other-projects__project-icon{background-color:var(--accent-soft);border:1px solid var(--glass-brd);width:46px;height:46px;transition:transform .25s var(--ease);color:var(--accent-deep);border-radius:20%;justify-content:center;align-items:center;display:flex}.other-projects .other-projects__projects-container .other-projects__project-info{flex:1}.other-projects .other-projects__projects-container .other-projects__project-info .other-projects__project-title{margin-bottom:4px}.other-projects .other-projects__projects-container .other-projects__project-info .other-projects__project-technologies{flex-wrap:wrap;display:flex}.other-projects .other-projects__projects-container .other-projects__project-info .other-projects__project-technologies .other-projects__project-technology{opacity:.8;align-items:center;height:15px;display:flex}.other-projects .other-projects__projects-container .other-projects__project-info .other-projects__project-technologies .other-projects__project-technology .other-projects__project-technology-sep{color:var(--ink-2);margin:0 4px;font-size:.79rem}.project-info{grid-template-columns:1fr;align-items:center;gap:24px;display:grid}.project-info .project-info__image{background:var(--accent-soft);border:1px solid var(--glass-brd);width:100%;box-shadow:var(--shadow-lg);transition:transform .4s var(--ease);border-radius:12px;place-items:center;font-size:60px;display:grid;overflow:hidden}.project-info .project-info__image:hover{transform:translateY(-6px)}.project-info .project-info__content{flex-direction:column;gap:4px;display:flex}.project-info .project-info__number{margin-bottom:8px}.project-info .project-info__technologies-container{flex-wrap:wrap;gap:12px;margin-bottom:8px;display:flex}.project-info .project-info__technologies-container .project-info__technology{background:var(--control);border-radius:100px;padding:4px 12px}.project-info .project-info__subtitle{margin-bottom:10px}.project-info .project-info__links{border-top:1px solid var(--control);gap:16px;margin-top:14px;padding-top:10px;display:flex}.project-info .project-info__link-demo,.project-info .project-info__link-code{transition:color .3s var(--ease);align-items:center;gap:2px;font-size:.9rem;font-weight:700;text-decoration:none;display:inline-flex}.project-info .project-info__link-demo{color:var(--accent-deep)}.project-info .project-info__link-demo:hover{color:var(--accent)}.project-info .project-info__link-code{color:var(--ink-3)}.project-info .project-info__link-code:hover{color:var(--ink)}@media (width>=1100px){.project-info{grid-template-columns:1fr 1fr;gap:52px}.project-info:nth-child(2n) .project-info__image{order:2}}.projects-section{flex-direction:column;gap:14px;padding-top:100px;display:flex}.projects-section .projects-section__tag{align-items:center;gap:10px;display:inline-flex}.projects-section .projects-section__tag:before{content:"";background:var(--accent);border-radius:2px;width:18px;height:2px}.projects-section .projects-section__title{margin-bottom:16px}.projects-section .projects-section__projects-container{grid-template-columns:1fr;gap:32px;display:grid}.stack-section{flex-direction:column;align-items:center;gap:14px;padding-top:100px;display:flex}.stack-section .stack-section__tag{align-items:center;gap:10px;display:inline-flex}.stack-section .stack-section__tag:before{content:"";background:var(--accent);border-radius:2px;width:18px;height:2px}.stack-section .stack-section__title{margin-bottom:12px}.stack-section .stack-section__items{flex-wrap:wrap;justify-content:center;align-items:center;max-width:850px;display:flex}.stack-section .stack-section__item-container{align-items:center;display:flex}.stack-section .stack-section__item--learning{color:var(--ink-3)}.stack-section .stack-section__sep{color:var(--accent);margin:0 13.5px;font-size:clamp(19px,3vw,30px);font-weight:700}:root{--font:"Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--maxw:1000px;--r:22px;--r-lg:30px;--nav-h:60px;--ease:cubic-bezier(.22, .61, .36, 1)}[data-theme=dark]{--bg:#0f1115;--ink:#f2f3f5;--ink-2:#dcdee2;--ink-3:#8b909a;--accent:#93a9c8;--accent-deep:#aec0da;--accent-soft:#93a9c829;--glass:#ffffff0f;--glass-strong:#ffffff1a;--glass-brd:#ffffff1f;--hairline:#ffffff1f;--control:#ffffff1a;--hi:#ffffff14;--btn-bg:#f2f3f5;--btn-fg:#16181c;--blob-a:#1f3350;--blob-b:#35283a;--blob-c:#1e332e;--blob-op:.6;--shadow-sm:0 1px 1px #0006, 0 1px 1px #00000059;--shadow-lg:0 0px 5px #00000073, 0 5px 10px #00000080}[data-theme=light]{--bg:#e9ebef;--ink:#1c1c1e;--ink-2:#4e535c;--ink-3:#656a73;--accent:#6f88ab;--accent-deep:#46597a;--accent-soft:#6f88ab24;--glass:#ffffff80;--glass-strong:#ffffffa8;--glass-brd:#ffffffa6;--hairline:#14141e1f;--control:#787d8c24;--hi:#ffffffb3;--btn-bg:#1c1c1e;--btn-fg:#fff;--blob-a:#c7d3e6;--blob-b:#e2d4dd;--blob-c:#d2e0dc;--blob-op:.55;--shadow-sm:0 1px 2px #1e233c0f, 0 1px 1px #1e233c1a;--shadow-lg:0 0px 5px #1e233c1a, 0 5px 10px #1e233c1f}html{box-sizing:border-box;scroll-behavior:smooth;min-height:100dvh;max-height:100%;scroll-padding-top:calc(var(--nav-h) + 40px)}*,:before,:after{box-sizing:inherit;font-family:var(--font);margin:0;padding:0}body{font-family:var(--font);background:var(--bg);color:var(--ink);letter-spacing:-.01em;-webkit-font-smoothing:antialiased;min-height:100vh;transition:background .45s var(--ease), color .45s var(--ease);line-height:1.5;overflow-x:hidden}.glass{background:var(--glass-strong);border:1px solid var(--glass-brd);-webkit-backdrop-filter:blur(20px)saturate(1.8)brightness(1.03);backdrop-filter:blur(20px)saturate(1.8)brightness(1.03);box-shadow:var(--shadow-sm), inset 0 1px 0 var(--hi)}.app-content-container{width:100%;max-width:1250px;height:100%;min-height:100dvh;margin:0 auto;padding:0 24px 70px;position:relative;overflow-x:hidden}@media screen and (width>=1050px){.app-content-container{padding:0 40px 70px}}
