@font-face{font-family:Manrope;src:url(/fonts/manrope-latin-variable.woff2) format("woff2");font-style:normal;font-weight:400 800;font-display:swap}:root{--navbar-height: 60px}html{scroll-behavior:smooth}body,#App{margin:0;padding:0;min-height:100vh;width:100%;font-family:var(--font-primary, Arial, sans-serif);color:var(--font-primary-color);background:#fff}body{overflow-x:hidden}#navbar-wrapper{background-color:color-mix(in srgb,#fff,transparent 8%);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:100%;position:sticky;top:0;z-index:100;height:var(--navbar-height);display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-inline:max(1.5rem,calc((100vw - var(--content-width)) / 2));box-shadow:0 2px 8px #0000000d}.site-mark{flex:0 0 auto;color:var(--font-primary-color);font-size:1rem;font-weight:800;letter-spacing:-.02em;text-decoration:none}#navbar{display:flex;gap:.4rem;list-style:none;margin:0;padding:0;font-size:.95rem;justify-content:flex-end;align-items:center}#navbar li a{color:var(--font-primary-color);text-decoration:none;padding:.5em 1em;border-radius:8px;transition:.2s}#navbar li a:hover{background:color-mix(in srgb,var(--primary-color),transparent 45%)}#hamburger{display:none;flex-direction:column;justify-content:center;align-items:center;width:44px;height:44px;background:none;border:none;cursor:pointer;margin-left:auto;z-index:101}#hamburger .bar{width:28px;height:4px;background:#333;margin:4px 0;border-radius:2px;transition:.3s}@media(max-width:700px){#navbar{position:absolute;top:var(--navbar-height);left:0;width:100vw;flex-direction:column;background:#fff;padding:1rem 0;visibility:hidden;opacity:0;pointer-events:none;transform:translateY(-8px);box-shadow:0 2px 8px #0000000d;font-size:1rem;transition:opacity .18s ease,transform .18s var(--ease-out),visibility 0s .18s}#navbar.open{visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0);transition-delay:0s}#hamburger{display:flex}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}#navbar,#hamburger .bar,#info2-icon{transition:none}}#city-image-container{position:relative;width:100vw;max-width:100vw;margin:0 auto}#city{width:100vw;height:auto;display:block}#More-info2{position:absolute;width:15%;height:25%;top:40%;left:80%;transform:translate(-50%,-50%);z-index:2}#info2-icon{width:inherit;height:inherit;cursor:pointer;opacity:.1;transition:opacity .2s}#info2-icon:hover{opacity:1}#reflection{width:100vw;height:auto;display:block}@media(max-width:700px){#navbar-wrapper{padding-inline:1rem}}@font-face{font-family:Manrope;src:url(/fonts/manrope-latin-variable.woff2) format("woff2");font-style:normal;font-weight:400 800;font-display:swap}#home-introduction-wrapper{display:flex;min-height:clamp(480px,62vh,680px);align-items:center;background:#fff}.intro-flex{display:grid;grid-template-columns:190px minmax(0,1fr);align-items:center;gap:clamp(2.5rem,7vw,6rem);width:100%}#home-introduction-wrapper .author-img{width:190px;height:190px;border-radius:50%;background:none;box-shadow:none;object-fit:cover;margin:0}.intro-content{flex:1;display:flex;flex-direction:column;align-items:flex-start}.intro-title{max-width:none;font-size:clamp(3rem,6vw,5.25rem);line-height:1;letter-spacing:-.04em;margin:0 0 1.5rem;color:var(--font-primary-color);font-family:var(--font-header);text-align:left}.intro-summary{max-width:38ch;margin:0;color:#34495e;font-size:clamp(1.15rem,2vw,1.45rem);line-height:1.6}.social-medias{display:flex;align-items:center;gap:1.2rem;margin-top:2rem}.icon-link{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}#home-introduction-wrapper .icon-img{width:44px;height:44px;background:none;box-shadow:none;border-radius:8px;object-fit:contain}.resume-wrapper{background-color:var(--primary-color, #D0DBE7);color:var(--font-secondary-color);border:none;border-radius:24px;padding:.5rem 1.5rem;font-size:1.15rem;font-weight:600;text-align:center;text-decoration:none;box-shadow:0 2px 8px #00000014;transition:.2s;cursor:pointer;margin:0 .5rem;display:inline-flex;min-height:44px;align-items:center}.resume-wrapper:hover{background-color:var(--secondary-color, #89A5C2);text-decoration:none}@media(max-width:900px){.intro-flex{grid-template-columns:1fr;align-items:center;gap:1.5rem}.intro-content{align-items:center;text-align:center}.intro-title{text-align:center;max-width:11ch;font-size:clamp(2.5rem,11vw,4rem)}#home-introduction-wrapper .author-img{width:150px;height:150px}#home-introduction-wrapper .icon-img{width:36px;height:36px}}@media(max-width:600px){#home-introduction-wrapper{min-height:620px}#home-introduction-wrapper .author-img{width:120px;height:120px}#home-introduction-wrapper .icon-img{width:32px;height:32px}.resume-wrapper{font-size:1rem;padding:.4rem 1rem}}@font-face{font-family:Manrope;src:url(/fonts/manrope-latin-variable.woff2) format("woff2");font-style:normal;font-weight:400 800;font-display:swap}#about-me-wrapper{background-color:var(--secondary-color);color:#172b3d}.about-me__layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(3rem,8vw,7rem);align-items:start}#about-me-wrapper h1{margin-bottom:1.5rem}.about-me__lead{max-width:20ch;margin:0;color:var(--font-primary-color);font-family:var(--font-header);font-size:clamp(1.45rem,3vw,2.15rem);font-weight:600;line-height:1.35;letter-spacing:-.02em}.about-me__details>p{max-width:62ch;margin:0 0 2rem;font-size:1.15rem;line-height:1.75}.about-me__facts{margin:0;border-top:1px solid rgba(23,43,61,.28)}.about-me__facts>div{display:grid;grid-template-columns:minmax(7rem,.4fr) minmax(0,1fr);gap:1rem;padding:1rem 0;border-bottom:1px solid rgba(23,43,61,.28)}.about-me__facts dt{font-size:.76rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.about-me__facts dd{margin:0;line-height:1.5}@media(max-width:700px){.about-me__layout{grid-template-columns:1fr;gap:2rem}.about-me__lead{max-width:22ch}.about-me__details>p{font-size:1rem;line-height:1.65}.about-me__facts>div{grid-template-columns:1fr;gap:.35rem}}@font-face{font-family:Manrope;src:url(/fonts/manrope-latin-variable.woff2) format("woff2");font-style:normal;font-weight:400 800;font-display:swap}#skills-wrapper{background:var(--surface-soft)}.conveyor-belt-wrapper{margin:0;padding:1.5rem 0;border-top:1px solid #c7d4e0;overflow:hidden;width:100%}.conveyor-belt-wrapper:last-child{border-bottom:1px solid #c7d4e0}.conveyor-belt-wrapper:focus-within .conveyor-belt,.conveyor-belt-wrapper:hover .conveyor-belt{animation-play-state:paused}.belt-label{margin:0 0 1rem;color:#40566c;font-size:.82rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase}.conveyor-belt{--belt-gap: 2rem;--belt-half-gap: 1rem;display:flex;gap:var(--belt-gap);width:max-content;animation:scroll-left 20s linear infinite;margin:0 auto;box-sizing:border-box;will-change:transform;backface-visibility:hidden}.conveyor-belt.belt-right{animation:scroll-right 20s linear infinite}@keyframes scroll-left{0%{transform:translateZ(0)}to{transform:translate3d(calc(-50% - var(--belt-half-gap)),0,0)}}@keyframes scroll-right{0%{transform:translate3d(calc(-50% - var(--belt-half-gap)),0,0)}to{transform:translateZ(0)}}.skill-icon{display:flex;flex-direction:column;align-items:center;font-size:2.2rem;min-width:92px;text-align:center}.skill-icon p{margin-top:.5rem;font-size:.9rem}@media(max-width:700px){.conveyor-belt-wrapper{padding:1.25rem 0}.belt-label{font-size:.75rem}.skill-icon{font-size:1.7rem;min-width:72px}.conveyor-belt{--belt-gap: 1rem;--belt-half-gap: .5rem;animation-duration:30s}}@media(prefers-reduced-motion:reduce){.conveyor-belt{animation-play-state:paused}}@font-face{font-family:Manrope;src:url(/fonts/manrope-latin-variable.woff2) format("woff2");font-style:normal;font-weight:400 800;font-display:swap}.work-experience{position:relative}.work-experience__heading{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);align-items:end;gap:2rem;margin-bottom:3.5rem}.work-experience__heading h1{margin:0;font-size:clamp(2.8rem,4.5vw,4rem);text-align:left}.work-experience__heading>p{max-width:46ch;margin:0 0 .35rem auto;color:var(--font-secondary-color);font-size:1.15rem;line-height:1.65}.experience-list{margin:0;padding:0;list-style:none}.experience-entry{display:grid;grid-template-columns:150px minmax(0,1fr);gap:clamp(1.5rem,4vw,4rem);padding:2.5rem 0;border-top:1px solid color-mix(in srgb,var(--primary-color),#ffffff 20%)}.experience-entry:last-child{padding-bottom:0}.experience-entry__identity a{position:sticky;top:calc(var(--navbar-height, 60px) + 1.5rem);display:grid;grid-template-columns:1fr auto;align-items:center;gap:.45rem;color:var(--font-primary-color);text-decoration:none}.experience-entry__brand-link--dark{padding:.75rem;background:#111820;border-radius:10px}.experience-entry__identity img{width:118px;height:64px;object-fit:contain;object-position:left center;margin:0;border-radius:0;box-shadow:none}.experience-entry__identity svg{flex:0 0 auto;opacity:0;transform:translate(-4px,4px);transition:opacity .16s var(--ease-out),transform .16s var(--ease-out)}.experience-entry__identity a:focus-visible svg,.experience-entry__identity a:hover svg{opacity:1;transform:translate(0)}.experience-entry__header{display:flex;justify-content:space-between;gap:2rem;margin-bottom:1.25rem}.experience-entry__header h2{margin:0 0 .35rem;color:var(--font-primary-color);font-family:var(--font-header);font-size:clamp(1.55rem,2.8vw,2.15rem);letter-spacing:-.025em}.experience-entry__role{margin:0;color:var(--font-secondary-color);font-size:1.05rem;font-weight:650}.experience-entry__meta{display:grid;flex:0 0 auto;gap:.55rem;color:var(--font-secondary-color);font-size:.92rem;font-variant-numeric:tabular-nums}.experience-entry__meta span{display:flex;align-items:center;gap:.5rem}.experience-entry__meta svg{width:1rem;height:1rem;color:var(--secondary-color)}.experience-entry__summary{max-width:72ch;margin:0;color:#24384c;font-size:clamp(1.1rem,2vw,1.3rem);line-height:1.65}.demo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;margin-top:2.25rem}.demo-card{min-width:0;overflow:hidden;background:#f4f7fb;border-radius:14px}.demo-preview{position:relative;display:block;width:100%;padding:0;overflow:hidden;background:#e8edf3;border:0;border-radius:14px 14px 0 0;color:#fff;cursor:pointer;text-align:left}.demo-preview:after{position:absolute;top:45%;right:0;bottom:0;left:0;content:"";background:linear-gradient(to bottom,transparent,rgba(13,27,42,.74));pointer-events:none}.demo-preview__video{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;pointer-events:none}.demo-preview__action{position:absolute;z-index:1;right:1rem;bottom:.9rem;display:flex;align-items:center;gap:.5rem;padding:.55rem .8rem;background:#0e1f31e6;border-radius:999px;font-size:.84rem;font-weight:700;transition:background-color .16s ease}.demo-preview:hover .demo-preview__action{background:#0e1f31}.demo-card__copy{padding:1.15rem 1.25rem 1.35rem}.demo-card__copy h3{margin:0 0 .5rem;color:var(--font-primary-color);font-family:var(--font-header);font-size:1.05rem}.demo-card__copy p{margin:0;color:var(--font-secondary-color);font-size:.92rem;line-height:1.55}.demo-dialog{width:min(1120px,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);padding:0;overflow:auto;background:#fff;border:0;border-radius:16px;color:var(--font-primary-color);box-shadow:0 24px 80px #0d1b2a4d}.demo-dialog::backdrop{background:#0d1b2ab8}.demo-dialog__header{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.25rem 1.5rem}.demo-dialog__header p,.demo-dialog__header h2{margin:0}.demo-dialog__header p{margin-bottom:.2rem;color:var(--font-secondary-color);font-size:.82rem}.demo-dialog__header h2{font-family:var(--font-header);font-size:1.35rem}.demo-dialog__close{display:grid;width:2.75rem;height:2.75rem;flex:0 0 auto;place-items:center;padding:0;background:#edf2f7;border:0;border-radius:50%;color:var(--font-primary-color);cursor:pointer}.demo-dialog__video{display:block;width:100%;max-height:72dvh;background:#0d1b2a}.demo-dialog__description{max-width:72ch;margin:0;padding:1rem 1.5rem 1.5rem;color:var(--font-secondary-color);line-height:1.55}@media(max-width:760px){.work-experience__heading{grid-template-columns:1fr;gap:.8rem;margin-bottom:2rem}.work-experience__heading>p{margin-left:0}.experience-entry{grid-template-columns:1fr;gap:1.25rem;padding:2rem 0}.experience-entry__identity a{position:static;width:fit-content}.experience-entry__identity img{height:54px}.experience-entry__header{flex-direction:column;gap:1rem}.experience-entry__meta{grid-template-columns:repeat(2,minmax(0,max-content));gap:.75rem 1rem}.demo-grid{grid-template-columns:1fr}}@media(max-width:480px){.experience-entry__meta{grid-template-columns:1fr}.demo-dialog{width:calc(100vw - 1rem);max-height:calc(100dvh - 1rem)}}@media(prefers-reduced-motion:reduce){.experience-entry__identity svg{transition:opacity .16s ease;transform:none}}@font-face{font-family:Manrope;src:url(/fonts/manrope-latin-variable.woff2) format("woff2");font-style:normal;font-weight:400 800;font-display:swap}:root{--font-primary: "Manrope", "Segoe UI", sans-serif;--font-header: "Manrope", "Segoe UI", sans-serif;--font-caroussel: "Manrope", "Segoe UI", sans-serif;--font-primary-color: #293f56;--font-secondary-color: #393939;--background-color: #FAFCFF;--primary-color: #D0DBE7;--secondary-color: #89A5C2;--surface-soft: #EEF3F7;--content-width: 1100px;--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-in-out: cubic-bezier(.77, 0, .175, 1)}*{box-sizing:border-box}::selection{background:var(--primary-color);color:var(--font-primary-color)}:focus-visible{outline:3px solid color-mix(in srgb,var(--secondary-color),transparent 30%);outline-offset:3px}h1{color:var(--font-primary-color);font-family:var(--font-header);font-size:clamp(2.5rem,5vw,4.4rem);line-height:1.05;letter-spacing:-.035em;margin:0 0 clamp(2rem,4vw,3.5rem);text-align:left;text-wrap:balance}.info-block{width:100%;max-width:none;min-height:0;margin:0;overflow-x:clip;padding:clamp(5rem,8vw,8rem) max(1.5rem,calc((100vw - var(--content-width)) / 2));font-size:1.15rem}.info-block[id]{scroll-margin-top:calc(var(--navbar-height, 60px) + 1.5rem)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.basic-text{font-family:var(--font-primary);font-size:1.5rem}@media(max-width:700px){h1{font-size:clamp(2.2rem,11vw,3.2rem)}.info-block{padding:4rem 1rem;font-size:1rem}.basic-text{font-size:1.1rem}}@media(max-width:400px){h1{font-size:1.8rem}.info-block{padding:3.5rem 1rem;font-size:.95rem}.basic-text{font-size:1rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}#projects-title{margin-bottom:0}.project-carousel{width:100%;margin-top:clamp(2rem,4vw,3.5rem)}.project-carousel__viewport{position:relative}.project-carousel__track{display:grid;grid-auto-columns:42%;grid-auto-flow:column;align-items:stretch;gap:clamp(1rem,2vw,1.5rem);padding:.25rem 0 1.25rem;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:inline mandatory;scrollbar-width:none}.project-carousel__track::-webkit-scrollbar{display:none}.project-carousel__track:focus-visible{border-radius:14px;outline:3px solid color-mix(in srgb,var(--secondary-color),transparent 35%);outline-offset:6px}.project-card{display:flex;flex-direction:column;gap:clamp(1rem,2vw,1.4rem);min-width:0;padding:clamp(1rem,2.4vw,1.6rem);background:#d0dbe7;border-radius:16px;scroll-snap-align:start;scroll-snap-stop:always}.project-card h2{margin:0;color:var(--font-primary-color);font-family:var(--font-header);font-size:clamp(1.1rem,2.2vw,1.55rem);line-height:1.18;text-wrap:balance}.project-card__media{position:relative;display:block;aspect-ratio:8 / 5;margin-top:auto;overflow:hidden;background:#f7f9fc;border-radius:12px;color:#fff;text-decoration:none}.project-card__media:after{position:absolute;top:48%;right:0;bottom:0;left:0;content:"";background:linear-gradient(to bottom,transparent,rgba(13,27,42,.72));opacity:0;transition:opacity .18s var(--ease-out);pointer-events:none}.project-card img{display:block;width:100%;height:100%;margin:0;object-fit:contain;border-radius:inherit;box-shadow:none}.project-card__visit{position:absolute;z-index:1;right:1rem;bottom:1rem;display:flex;align-items:center;gap:.4rem;font-size:.86rem;font-weight:700;opacity:0;transform:translateY(5px);transition:opacity .18s var(--ease-out),transform .18s var(--ease-out)}.project-card__media:hover:after,.project-card__media:focus-visible:after,.project-card__media:hover .project-card__visit,.project-card__media:focus-visible .project-card__visit{opacity:1}.project-card__media:hover .project-card__visit,.project-card__media:focus-visible .project-card__visit{transform:translateY(0)}.project-carousel__controls{display:grid;grid-template-columns:auto minmax(120px,1fr);align-items:center;gap:1rem;margin-top:.75rem}.project-carousel__count{min-width:3.5rem;color:var(--font-secondary-color);font-size:.9rem;font-variant-numeric:tabular-nums;font-weight:700}.project-carousel__progress{height:2px;overflow:hidden;background:var(--primary-color)}.project-carousel__progress span{display:block;width:100%;height:100%;background:var(--font-primary-color);transform-origin:left;transition:transform .26s var(--ease-in-out)}.project-carousel__edge{position:absolute;z-index:2;top:.25rem;bottom:1.25rem;display:grid;width:clamp(3.25rem,6vw,4rem);place-items:center;padding:0;background:#1f2a35b3;border:0;color:#fff;cursor:pointer;transition:background-color .16s ease}.project-carousel__edge svg{width:1.6rem;height:1.6rem}.project-carousel__edge--previous{left:0;border-radius:0 14px 14px 0}.project-carousel__edge--next{right:0;border-radius:14px 0 0 14px}.project-carousel__edge:not(:disabled):hover{background:#1f2a35d6}.project-carousel__edge:disabled{visibility:hidden;pointer-events:none}@media(max-width:700px){.project-carousel__track{grid-auto-columns:84%;gap:.9rem}.project-card{padding:1rem}.project-carousel__edge{width:2.75rem}.project-card__visit{opacity:1;transform:none}.project-card__media:after{opacity:1}}@media(prefers-reduced-motion:reduce){.project-carousel__progress span,.project-card__visit,.project-card__media:after,.project-carousel__edge{transition:none}}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
