@font-face{font-family:Funnel Sans Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/_astro/funnel-sans-latin-ext-wght-normal.CStSwzyf.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Funnel Sans Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/_astro/funnel-sans-latin-wght-normal.zzU05adE.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--ground:#191c2a;--rule:#343a52;--ink:#eee9df;--ink-2:#c4c6d6;--muted:#9a9fb8;--dim:#868ca8;--lamp:#edc898;--link-line:#5e6584;--gut:clamp(16px, 2.5vw, 64px);--gap:clamp(16px, 1.6vw, 36px);--cols:4;--bcols:4;--sans:"Funnel Sans Variable", system-ui, "Segoe UI", sans-serif;--display:var(--sans);--row-fs:clamp(1.75rem, 1.2rem + 1.2vw, 2.75rem);--measure:75ch}*,:before,:after{box-sizing:border-box}html{background:var(--ground);-webkit-text-size-adjust:100%;text-size-adjust:100%}body{min-height:100vh;padding:0 var(--gut);background:var(--ground);color:var(--ink-2);font-family:var(--sans);font-kerning:normal;-webkit-font-smoothing:antialiased;margin:0;font-size:1.25rem;font-weight:400;line-height:1.5;overflow-x:clip}h1,h2,h3,h4{text-wrap:balance;margin:0;font-weight:600}p{margin:0}p,li{text-wrap:pretty}ul,ol{margin:0;padding:0;list-style:none}a{color:inherit;text-underline-offset:.22em;text-decoration-line:underline;text-decoration-thickness:1px;text-decoration-color:var(--link-line);transition:text-decoration-color .2s}a:hover{text-decoration-color:var(--lamp)}:focus-visible{outline:2px solid var(--lamp);outline-offset:4px;border-radius:2px}::selection{background:var(--lamp);color:var(--ground)}.vh{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.num{font-variant-numeric:tabular-nums}.g{grid-template-columns:repeat(var(--cols), minmax(0, 1fr));column-gap:var(--gap);display:grid}.b,.project-card,.project-group{grid-template-columns:repeat(var(--bcols), minmax(0, 1fr));column-gap:var(--gap);display:grid}.g>*,.b>*,.project-card>*,.project-group>*{grid-column:1/-1;min-width:0}.id{padding-top:clamp(1.5rem,3vw,3rem)}.id-name{font-family:var(--display);color:var(--ink);margin-bottom:clamp(1.5rem,3.3vw,3.25rem);font-size:1.625rem;font-weight:600;line-height:1.3}.id-lead{font-family:var(--display);letter-spacing:-.02em;color:var(--ink);text-wrap:balance;max-width:24ch;font-size:clamp(2.5rem,1.2rem + 4.2vw,7rem);font-weight:600;line-height:1.12}@media (width<=380px){.id-lead{font-size:2.25rem}}.id-lead em{color:var(--lamp);font-style:normal}.id-tag{max-width:62ch;margin-top:clamp(1.5rem,2.5vw,2.5rem);font-size:1.25rem;line-height:1.5}.sec{border-top:1px solid var(--rule);margin-top:clamp(4rem,8vw,9rem);padding-top:1rem}main>.sec:first-child{margin-top:clamp(2.75rem,5.5vw,6rem)}.sec-head{margin-bottom:clamp(1.75rem,3vw,3.5rem)}.sec-head h2{font-family:var(--display);letter-spacing:-.01em;color:var(--muted);font-size:clamp(2rem,1.4rem + 1.2vw,3.25rem);font-weight:500;line-height:1.05}.cv-empty,.projects-empty{color:var(--muted)}.row,.project-card,.project-group{--c1:var(--ink);--c2:var(--ink-2);position:relative}:is(.row,.project-card,.project-group):after{content:"";background:var(--lamp);transform-origin:100%;pointer-events:none;height:1px;transition:transform .4s cubic-bezier(.5,0,.3,1);position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}:is(.row,.project-card,.project-group):is(:hover,:focus-within):after{transform-origin:0;transition-duration:.85s;transition-timing-function:cubic-bezier(.2,.7,.15,1);transform:scaleX(1)}:is(.row,.project-card,.project-group) :is(h3,p,span,a,li){transition:color .45s}.ix:has(>:is(.row,.project-card,.project-group):is(:hover,:focus-within))>:is(.row,.project-card,.project-group):not(:hover):not(:focus-within){--c1:var(--dim);--c2:var(--dim)}.job+.job{margin-top:clamp(3.5rem,6vw,6rem)}.job-h{font-family:var(--display);font-size:var(--row-fs);color:var(--ink);line-height:1.3}.job-meta{flex-wrap:wrap;align-items:baseline;gap:0 1.25rem;margin-top:.2rem;display:flex}.job-meta .c-emp{color:var(--ink);font-weight:500}.job-body{--groups-top:clamp(1.75rem, 3vw, 2.75rem)}.job-body>p{max-width:46ch;color:var(--ink);margin-top:1.25rem;font-size:1.625rem;line-height:1.35}.job-body>ul{margin-top:1.25rem}.job-body>h4{border-top:1px solid var(--rule);font-family:var(--display);color:var(--ink);margin-top:2rem;padding-top:1.25rem;font-size:1.625rem;line-height:1.3}.job-body>h4:first-of-type{margin-top:var(--groups-top)}.job-body>h4+ul{margin-top:.9rem}.job-body ul{align-content:start;gap:.75rem;display:grid}.job-body li{max-width:var(--measure);padding-left:1.1rem;line-height:1.5;position:relative}.job-body li:before{content:"";background:var(--muted);width:.5rem;height:1px;position:absolute;top:.78em;left:0}.job-body .titles{gap:.5rem}.job-body .titles li{justify-content:space-between;align-items:baseline;gap:1.5rem;max-width:26rem;padding-left:0;display:flex}.job-body .titles li:before{content:none}.titles .c-title{color:var(--ink)}.titles .c-period{color:var(--muted);flex:none;font-size:1.125rem;line-height:1.5}.sk{align-items:baseline;padding:1.1rem 0}.sk+.sk{border-top:1px solid var(--rule)}.sk:first-child{padding-top:0}.sk:last-child{padding-bottom:0}.sk h3{font-family:var(--display);color:var(--ink);font-size:1.625rem;line-height:1.3}.sk ul{max-width:var(--measure);flex-wrap:wrap;margin-top:.4rem;display:flex}.sk li:not(:last-child):after{content:",";margin-right:.4em}.project-card,.project-group{align-items:baseline;row-gap:.3rem;padding:1.25rem 0}.project-list>*+*{border-top:1px solid var(--rule)}.project-list>:first-child{padding-top:0}.project-list>:last-child{padding-bottom:0}.project-name{font-family:var(--display);color:var(--c1);overflow-wrap:anywhere;grid-row:1;font-size:1.625rem;line-height:1.3}.project-card .project-name a{text-decoration:none}.project-card .project-name a:before{content:"";z-index:1;position:absolute;inset:0}.project-desc{max-width:var(--measure);color:var(--c2);overflow-wrap:anywhere;grid-row:3}.project-desc--empty{color:var(--muted)}.project-meta{column-gap:var(--gap);color:var(--muted);flex-wrap:wrap;grid-row:2;font-size:1.125rem;line-height:1.5;display:flex}.group-members{color:var(--c2);grid-row:4;gap:.4rem;margin-top:.5rem;display:grid}.group-members .project-lang{color:var(--muted)}@media (pointer:coarse){.group-members{gap:0}.group-members a{padding-block:.45rem;display:inline-block}}.contact{flex-wrap:wrap;gap:.25rem clamp(1.75rem,4vw,4rem);display:flex}.contact a{font-family:var(--display);font-weight:500;font-size:var(--row-fs);color:var(--ink);padding-block:.35rem;line-height:1.3;display:inline-block}main{padding-bottom:clamp(4rem,8vw,8rem)}.nf{padding-block:clamp(2.5rem,7vw,8rem)}.nf h1{font-family:var(--display);letter-spacing:-.01em;color:var(--ink);font-size:clamp(2.25rem,1.5rem + 1.6vw,4.25rem);line-height:1.3}.nf p{margin-top:1.5rem}.nf a{color:var(--ink)}@media (width>=760px){:root{--cols:12;--bcols:12}.sec{padding-top:1.25rem}}@media (width>=1000px){.job-body:has(>h4)>h4{margin-right:calc(-1 * var(--gap));padding-right:var(--gap);grid-column:1/4}.job-body:has(>h4)>h4+ul{border-top:1px solid var(--rule);grid-column:4/13;margin-top:2rem;padding-top:1.47rem}.job-body:has(>h4)>h4:first-of-type+ul{margin-top:var(--groups-top)}.job-body:has(>h4)>h4+ul:not(.titles) li{padding-left:0}.job-body:has(>h4)>h4+ul:not(.titles) li:before{left:-1rem}.sk h3{grid-column:1/4}.sk ul{grid-column:4/13;margin-top:0}.project-name,.project-meta{grid-column:1/4}.project-desc{grid-area:1/4/span 2/13}.group-members{grid-area:3/4/auto/13}}@media (width>=1280px){.sec{padding-top:1.75rem}}@media (width>=1700px){.id .id-name{grid-row:1}.id .id-lead{grid-area:2/1/auto/9;max-width:none;font-size:clamp(4.5rem,4.4vw,11rem)}.id .id-tag{grid-area:2/9/auto/-1;align-self:end;margin-top:0}}@media (width>=2300px){:root{--cols:15}.id .id-lead{grid-column:1/11}.id .id-tag{grid-column:11/-1;font-size:1.5rem;line-height:1.45}.sec .sec-head{grid-column:1/4;align-self:start;margin-bottom:0;position:sticky;top:clamp(1.5rem,2vw,3rem)}.sec .sec-body{grid-column:4/-1}}@media (prefers-reduced-motion:reduce){:is(.row,.project-card,.project-group):after,:is(.row,.project-card,.project-group):is(:hover,:focus-within):after,:is(.row,.project-card,.project-group) :is(h3,p,span,a,li),a{transition:none}}
