@font-face{font-family:PP Neue Montreal;font-style:normal;font-weight:100;font-display:swap;src:url(/fonts/neue-montreal-thin.woff2)format("woff2")}@font-face{font-family:PP Neue Montreal;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/neue-montreal-medium.woff2)format("woff2")}@font-face{font-family:PP Neue Montreal;font-style:normal;font-weight:600 700;font-display:swap;src:url(/fonts/neue-montreal-bold.woff2)format("woff2")}:root{color-scheme:dark;--color-primary:#1a1a1a;--color-secondary:#2c2c2c;--color-accent:#c4c4c4;--color-accent-soft:#d1d1d1;--color-text-primary:#f0f0f0;--color-text-secondary:#a0a0a0;--color-neutral-900:#171717;--font-sans:"Inter", system-ui, sans-serif;--font-neue:"PP Neue Montreal", "Neue Montreal", system-ui, sans-serif;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-4xl:2.25rem;--text-5xl:3rem;--text-6xl:3.75rem;--text-8xl:6rem;--leading-sm:1.4286;--leading-base:1.5;--leading-lg:1.5556;--leading-xl:1.4;--leading-2xl:1.3333;--leading-4xl:1.1111;--leading-5xl:1;--leading-6xl:1;--leading-8xl:1;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--space-1:.25rem;--space-1-5:.375rem;--space-2:.5rem;--space-2-5:.625rem;--space-3:.75rem;--space-3-5:.875rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-16:4rem;--space-24:6rem;--space-48:12rem;--size-container:80rem;--size-hero:64rem;--size-content:48rem;--size-card-media:12rem;--size-menu-panel:16rem;--size-menu-dropdown:13rem;--radius-sm:.125rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-full:9999px;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--border-hairline:1px solid color-mix(in srgb, var(--color-accent) 10%, transparent)}*,:before,:after{box-sizing:border-box;border-style:solid;border-width:0;border-color:var(--color-secondary)}html{line-height:1.5;font-family:var(--font-sans);-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;scrollbar-gutter:stable}body,blockquote,dl,dd,figure,p,pre,h1,h2,h3,h4,h5,h6{margin:0}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}ul,ol{margin:0;padding:0;list-style:none}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}small{font-size:80%}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:#0000;background-image:none}button,summary{cursor:pointer}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}table{border-color:inherit;border-collapse:collapse;text-indent:0}body{min-height:100dvh;font-family:var(--font-neue);font-size:var(--text-lg);line-height:var(--leading-lg);color:var(--color-text-primary);background-color:var(--color-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;font-weight:400;display:flex}.container{width:100%;margin-inline:auto;@media (width>=640px){max-width:640px}@media (width>=768px){max-width:768px}@media (width>=1024px){max-width:1024px}@media (width>=1280px){max-width:1280px}@media (width>=1536px){max-width:1536px}}.button{padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);color:var(--color-primary);background-color:var(--color-accent);align-items:center;font-weight:500;display:inline-flex}.button--secondary{color:var(--color-text-secondary);background-color:var(--color-secondary);border:var(--border-hairline)}@view-transition{navigation:auto}::view-transition-group(root){animation:none}::view-transition-old(root),::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-group(nav-pill),::view-transition-old(nav-pill),::view-transition-new(nav-pill){animation-duration:.4s;animation-timing-function:cubic-bezier(.22,1,.36,1)}::view-transition-group(site-header){animation:none}::view-transition-old(site-header),::view-transition-new(site-header){mix-blend-mode:normal;animation:none}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation-duration:10ms}}.page{flex-direction:column;min-height:100dvh;display:flex}.page__main{flex-grow:1}.page__container{width:100%;max-width:var(--size-container);margin-inline:auto}.page[data-layout=default] .page__inner,.page[data-layout=content] .page__inner{padding-block:var(--space-24) var(--space-16);padding-inline:var(--space-6);@media (width>=768px){padding-block-start:var(--space-48);padding-inline:var(--space-12)}}.page[data-layout=content] .page__content{max-width:var(--size-content)}.page[data-layout=error] .page__inner{padding-block:var(--space-48) var(--space-16);padding-inline:var(--space-12)}.page[data-layout=main]{min-height:100svh}.page[data-layout=main] .page__main{flex-direction:column;justify-content:center;display:flex}.page[data-layout=main] .page__inner{padding-block-start:var(--space-24);padding-inline:var(--space-6);flex-direction:column;flex-grow:1;justify-content:center;align-items:center;display:flex;@media (width>=768px){padding-block-start:0}}.page[data-layout=main] .page__container{max-width:var(--size-hero)}.page[data-layout=main] .page__content{width:100%;margin-block:var(--space-12);text-align:center}.page[data-layout=main] h1{font-family:var(--font-neue);font-size:var(--text-5xl);line-height:var(--leading-tight);color:var(--color-text-secondary);text-wrap:balance;font-weight:400;@media (width<=767px){text-align:start}@media (width<=639px){font-weight:700}@media (width>=1024px){font-size:var(--text-6xl);line-height:var(--leading-snug)}}.header{z-index:50;padding:var(--space-4) var(--space-6);view-transition-name:site-header;background-color:#0000;position:fixed;inset-block-start:0;inset-inline:0;@media (width>=768px){padding-inline:var(--space-12)}}.header__inner{justify-content:space-between;align-items:center;display:flex}.header__brand{padding:var(--space-1-5);border-radius:var(--radius-full);background-color:var(--color-secondary);align-items:center;display:none;position:relative;@media (width>=768px){display:flex}}.header__logo{padding-inline:var(--space-4);font-size:var(--text-xl);font-weight:600}.header__logo-mark{color:var(--color-text-primary)}.header__logo-mobile{font-size:var(--text-xl);font-weight:600;@media (width>=768px){display:none}}.header__logo-name{font-size:var(--text-sm);color:var(--color-text-secondary);margin-inline-start:var(--space-2)}.header__actions{align-items:center;gap:var(--space-3);display:flex}.header__resume{@media (width<=767px){display:none}}.footer{padding:var(--space-6);color:var(--color-text-secondary);@media (width>=768px){padding-inline:var(--space-12)}}.footer__inner{justify-content:space-between;align-items:center;gap:var(--space-4);flex-direction:row;display:flex}.footer__back-to-top{@media (width<=767px){display:none}}@supports (animation-timeline:scroll()){.footer__back-to-top{opacity:0;visibility:hidden;animation-name:footer-back-to-top;animation-duration:auto;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:scroll(root);animation-range:20rem 28rem}@keyframes footer-back-to-top{0%{opacity:0;visibility:hidden}to{opacity:1;visibility:visible}}}.page__content{--content-decoration:var(--color-accent-soft);&>*+*{margin-block-start:var(--space-16)}}.page__content h1{font-family:var(--font-neue);font-size:var(--text-4xl);line-height:var(--leading-4xl);color:var(--color-text-primary);margin-block-end:var(--space-12);font-weight:700}.page__content h2{font-family:var(--font-neue);font-size:var(--text-xl);line-height:var(--leading-xl);color:var(--color-text-primary);margin-block-end:var(--space-6);font-weight:700}.page__content p{color:var(--color-text-secondary);font-size:var(--text-lg);line-height:var(--leading-relaxed)}.page__content li{color:var(--color-text-secondary)}.page__content ul li:before{content:"–";margin-inline-end:var(--space-2)}.page__content .projects-grid>li:before{content:none}.page__content pre code{max-width:100%;padding:var(--space-2);border:1px solid var(--color-secondary);border-radius:var(--radius-sm);background-color:var(--color-primary);display:block;overflow-x:auto}.page__content :not(:is(pre))>code{padding-inline:var(--space-2);border:1px solid var(--color-secondary);border-radius:var(--radius-sm);background-color:var(--color-primary);color:var(--color-accent);font-size:var(--text-base);white-space:nowrap}.page__content :is(p,li) a{color:var(--color-accent);text-underline-offset:4px;font-weight:500;text-decoration:underline;&:hover{text-decoration-thickness:2px;text-decoration-color:var(--content-decoration)}}.page__content table{border-collapse:collapse;text-align:start;width:100%}.page__content thead{background-color:var(--color-secondary)}.page__content tbody tr:nth-of-type(2n){background-color:color-mix(in srgb, var(--color-secondary) 50%, transparent)}.page__content th{padding:var(--space-4);border:1px solid var(--color-secondary);font-weight:600}.page__content td{padding:var(--space-4);border:1px solid var(--color-secondary)}.markdown-body>*+*{margin-block-start:var(--space-6)}.markdown-body figure{margin:0}.markdown-body figure a{display:block}.markdown-body figure img{border-radius:var(--radius-md);width:100%;display:block}.work-list>*+*{margin-block-start:var(--space-16)}.work-list>h1+.work-item{margin-block-start:var(--space-12)}.about-sections>*+*{margin-block-start:var(--space-16)}.navigation ul{align-items:center;display:flex}.navigation a{padding:var(--space-1-5) var(--space-4);border-radius:var(--radius-full);color:var(--color-text-secondary);display:block;position:relative;&:hover,&[aria-current=page]{color:var(--color-text-primary)}}.navigation__pill{border-radius:var(--radius-full);background-color:color-mix(in srgb, var(--color-accent) 20%, transparent);pointer-events:none;view-transition-name:nav-pill;position:absolute;inset:0}.header__burger{padding:var(--space-2);border-radius:var(--radius-full);background-color:var(--color-secondary);color:var(--color-text-secondary);justify-content:center;align-items:center;transition:color .2s;display:inline-flex;&:hover{color:var(--color-text-primary)}& svg{width:var(--text-xl);height:var(--text-xl)}@media (width>=768px){display:none}}.mobile-menu{width:100%;max-width:none;height:100%;max-height:none;padding:var(--space-8) var(--space-4);background-color:color-mix(in srgb, var(--color-neutral-900) 95%, transparent);backdrop-filter:blur(4px);opacity:0;transition:opacity .2s ease-out, display .2s allow-discrete, overlay .2s allow-discrete;border:0;margin:0;inset:0;&:popover-open{justify-content:center;align-items:center;gap:var(--space-4);opacity:1;flex-direction:column;display:flex}& a{padding:var(--space-3) var(--space-12);border-radius:var(--radius-full);background-color:var(--color-text-primary);color:var(--color-primary);font-size:var(--text-xl);line-height:var(--leading-xl);text-align:center;display:inline-block}}@starting-style{.mobile-menu:popover-open{opacity:0}}body:has(.mobile-menu:popover-open){overflow:hidden}.language-switcher{display:flex}.language-switcher__trigger{padding:var(--space-1-5) var(--space-3-5);border-radius:var(--radius-full);background-color:var(--color-secondary);color:var(--color-text-primary);font-size:var(--text-base);font-weight:500;line-height:var(--leading-base);anchor-name:--language-switcher;align-items:center;transition:background-color .2s,color .2s;display:inline-flex;&:hover{background-color:color-mix(in srgb, var(--color-accent) 12%, var(--color-secondary))}}.language-switcher__menu{margin:var(--space-2) 0 0;position-anchor:--language-switcher;position-area:bottom span-left;position-try-fallbacks:flip-block;width:var(--size-menu-dropdown);padding:var(--space-1-5);border:var(--border-hairline);border-radius:var(--radius-xl);background-color:var(--color-secondary);box-shadow:var(--shadow-xl);opacity:0;translate:0 calc(-1 * var(--space-1));transition:opacity .15s ease-out, translate .15s ease-out, display .15s allow-discrete, overlay .15s allow-discrete;inset:auto;&:popover-open{opacity:1;translate:0}& a{padding:var(--space-2-5) var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-base);line-height:var(--leading-base);color:var(--color-text-secondary);transition:background-color .15s,color .15s;display:block;&:hover{background-color:color-mix(in srgb, var(--color-accent) 10%, transparent);color:var(--color-text-primary)}&[aria-current=page]{color:var(--color-text-primary)}}}@starting-style{.language-switcher__menu:popover-open{opacity:0;translate:0 calc(-1 * var(--space-1))}}@supports not (position-anchor:--language-switcher){.language-switcher__menu{margin:0;position:fixed;inset-block-start:3.75rem;inset-inline-end:var(--space-6);@media (width>=768px){inset-inline-end:var(--space-12)}}}.contacts{display:flex}.contacts__trigger{padding:var(--space-2) var(--space-4);border:var(--border-hairline);border-radius:var(--radius-full);background-color:var(--color-secondary);color:var(--color-text-secondary);anchor-name:--contacts;align-items:center;font-weight:500;display:inline-flex}.contacts__panel{margin:0 0 var(--space-2);position-anchor:--contacts;position-area:top span-left;position-try-fallbacks:flip-block;width:var(--size-menu-panel);padding:var(--space-4);border:var(--border-hairline);border-radius:var(--radius-lg);background-color:var(--color-secondary);box-shadow:var(--shadow-lg);inset:auto;&>*+*{margin-block-start:var(--space-4)}& p{font-size:var(--text-sm);color:var(--color-text-secondary);margin-block-end:var(--space-1)}& a{color:var(--color-text-primary);&:hover{color:var(--color-accent)}}& ul{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}}@supports not (position-anchor:--contacts){.contacts__panel{margin:0;position:fixed;inset-block-end:5.5rem;inset-inline-end:var(--space-6);@media (width>=768px){inset-inline-end:var(--space-12)}}}.projects-grid{gap:var(--space-6);grid-template-columns:1fr;display:grid;@media (width>=768px){grid-template-columns:repeat(2,minmax(0,1fr))}@media (width>=1024px){grid-template-columns:repeat(3,minmax(0,1fr))}}.project-card{gap:var(--space-4);height:100%;padding:var(--space-6);border-radius:var(--radius-lg);background-color:var(--color-secondary);border:1px solid #0000;flex-direction:column;transition:background-color .25s,border-color .25s;display:flex;position:relative}.project-card:hover{border-color:color-mix(in srgb, var(--color-accent) 18%, transparent);background-color:color-mix(in srgb, var(--color-accent) 5%, var(--color-secondary))}.project-card:focus-within{border-color:color-mix(in srgb, var(--color-accent) 45%, transparent);outline:1px solid color-mix(in srgb, var(--color-accent) 45%, transparent);outline-offset:2px}.project-card .project-card__year{font-family:var(--font-neue);font-size:var(--text-sm);letter-spacing:.06em;font-variant-numeric:tabular-nums;color:var(--color-accent);font-weight:500;line-height:1}.project-card__body{gap:var(--space-2);flex-direction:column;margin-block-start:auto;display:flex}.project-card .project-card__title{font-family:var(--font-neue);font-size:var(--text-xl);line-height:var(--leading-xl);color:var(--color-text-primary);margin:0;font-weight:700}.project-card .project-card__link{color:inherit;font-weight:inherit;text-decoration:none}.project-card__link:after{content:"";border-radius:inherit;position:absolute;inset:0}.project-card .project-card__description{font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--color-text-secondary)}.work-item{position:relative}.work-item .work-item__period{font-size:var(--text-lg);line-height:var(--leading-lg);color:var(--color-accent);margin-block-end:var(--space-4);font-weight:500}.work-item__company{font-family:var(--font-neue);font-size:var(--text-2xl);line-height:var(--leading-2xl);color:var(--color-text-primary);margin-block-end:var(--space-1);font-weight:700}.work-item .work-item__position{font-family:var(--font-neue);font-size:var(--text-xl);line-height:var(--leading-xl);color:var(--color-text-secondary);margin-block-end:var(--space-2)}.work-item .work-item__intro{font-size:var(--text-lg);line-height:var(--leading-lg);color:var(--color-text-secondary);margin-block-end:var(--space-2)}.work-item__list{font-size:var(--text-sm);&>*+*{margin-block-start:var(--space-1)}}.error{padding-block-start:var(--space-24);padding-inline:var(--space-6);justify-content:center;align-items:center;display:flex;@media (width>=768px){padding-block-start:0}}.error__body{text-align:center}.error .error__code{font-family:var(--font-neue);font-size:var(--text-8xl);line-height:var(--leading-8xl);color:var(--color-accent);margin-block-end:var(--space-4);font-weight:700}.error .error__title{font-size:var(--text-6xl);line-height:var(--leading-6xl);color:var(--color-text-primary);margin-block-end:var(--space-6);font-weight:600}.error .error__message{font-size:var(--text-xl);line-height:var(--leading-xl);color:var(--color-text-secondary);margin-block-end:var(--space-8)}.error__button{padding:var(--space-3) var(--space-6);border-radius:var(--radius-full);color:var(--color-text-primary);background-color:color-mix(in srgb, var(--color-accent) 20%, transparent);align-items:center;font-weight:500;display:inline-flex;&:hover{background-color:color-mix(in srgb, var(--color-accent) 30%, transparent)}}
