@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/fonts/space-grotesk-latin.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/fonts/space-grotesk-latin-ext.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/space-mono-latin-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/space-mono-latin-ext-400.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Space Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/fonts/space-mono-latin-400-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/fonts/space-mono-latin-ext-400-italic.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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}*,*:before,*:after{box-sizing:border-box}:root{--site-max-inline: 38rem;--site-bg: #f6f3ed;--site-fg: #143a86;--site-fg-deep: #0a2466;--site-muted: #5a6b82;--site-rule: #c9c2b3;--site-link: #d4521c;--site-link-hover: #0047ab;--site-mark: #d4521c;--font-serif: "Space Grotesk Variable", system-ui, -apple-system, sans-serif;--font-mono: "Space Mono", ui-monospace, "SFMono-Regular", Menlo, monospace}:root:has(.theme-input:checked){--site-bg: #0a1a35;--site-fg: #e8ecf5;--site-fg-deep: #ffffff;--site-muted: #8a96a8;--site-rule: #1f2d4a;--site-link: #ff8a4c;--site-link-hover: #6b9aff;--site-mark: #ff8a4c}@media(prefers-color-scheme:dark){:root{--site-bg: #0a1a35;--site-fg: #e8ecf5;--site-fg-deep: #ffffff;--site-muted: #8a96a8;--site-rule: #1f2d4a;--site-link: #ff8a4c;--site-link-hover: #6b9aff;--site-mark: #ff8a4c}:root:has(.theme-input:checked){--site-bg: #f6f3ed;--site-fg: #143a86;--site-fg-deep: #0a2466;--site-muted: #5a6b82;--site-rule: #c9c2b3;--site-link: #d4521c;--site-link-hover: #0047ab;--site-mark: #d4521c}}.theme-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}label[for=theme-toggle]{position:relative;display:inline-block;cursor:pointer;user-select:none}label[for=theme-toggle]:before{content:"";position:absolute;top:.19em;left:calc(50% + .02em);width:.14em;height:.14em;transform:translate(-50%,-50%);background:var(--site-mark);border-radius:50%;box-shadow:inset .04em -.02em 0 0 transparent}:root:has(.theme-input:checked) label[for=theme-toggle]:before{background:var(--site-bg);box-shadow:inset .05em -.02em 0 0 var(--site-mark)}@media(prefers-color-scheme:dark){:root:not(:has(.theme-input:checked)) label[for=theme-toggle]:before{background:var(--site-bg);box-shadow:inset .05em -.02em 0 0 var(--site-mark)}:root:has(.theme-input:checked) label[for=theme-toggle]:before{background:var(--site-mark);box-shadow:inset .05em -.02em 0 0 transparent}}.theme-input:focus-visible+.name label[for=theme-toggle]:before{outline:.06em solid var(--site-mark);outline-offset:.05em}@media(prefers-reduced-motion:no-preference){label[for=theme-toggle]:before{transition:box-shadow .3s ease,background-color .3s ease,transform .25s ease}}@keyframes tittle-wink{0%{transform:translate(-50%,-50%) scale(1)}40%{transform:translate(-50%,-50%) scale(1.35)}70%{transform:translate(-50%,-50%) scale(1.1)}to{transform:translate(-50%,-50%) scale(1)}}@media(prefers-reduced-motion:no-preference){label[for=theme-toggle]:before{animation:tittle-wink .7s cubic-bezier(.2,.7,.2,1) 1.2s backwards}header.site .name:hover label[for=theme-toggle]:before{transform:translate(-50%,-50%) scale(1.35)}}html{background:var(--site-bg);color:var(--site-fg);font-family:var(--font-serif);font-size:15px;line-height:1.55;font-feature-settings:"liga" 1,"kern" 1,"onum" 1;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color .22s ease,color .22s ease}body{margin:0}.skip-link{position:absolute;top:-100%;left:1rem;padding:.5em 1em;background:var(--site-fg-deep);color:var(--site-bg);font-family:var(--font-mono);font-size:.78rem;text-decoration:none;z-index:100;border-radius:0 0 .25rem .25rem}.skip-link:focus{top:0;color:var(--site-bg)}.wrap{max-inline-size:var(--site-max-inline);margin-inline:auto;padding-inline:1.5rem;padding-block:clamp(3.5rem,10vh,7rem) 6rem}header.site{margin-block-end:5rem}header.site .name{display:block;font-family:var(--font-serif);font-weight:500;font-size:clamp(2.5rem,12vw,6.25rem);letter-spacing:-.04em;line-height:.95;margin:0;color:var(--site-fg-deep);overflow-wrap:break-word}header.site .name .surname{font-style:normal;font-weight:400}header.site .role{display:block;margin-block-start:1.25rem;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:var(--site-muted)}header.site .role .sep{color:var(--site-mark);font-style:normal;font-family:var(--font-mono);padding-inline:.35em}section{margin-block:4rem 0;position:relative}h2{font-family:var(--font-serif);font-weight:500;font-size:2rem;letter-spacing:-.025em;line-height:1.05;margin:0 0 2rem;padding-block-end:.75rem;border-block-end:1px solid var(--site-rule);color:var(--site-fg-deep)}p{margin-block:0 1rem}.about p{font-size:1rem;line-height:1.65;text-wrap:pretty;hanging-punctuation:first}.about p:first-child:first-line{font-variant-caps:small-caps;letter-spacing:.04em}a{color:var(--site-link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em;text-decoration-color:color-mix(in srgb,var(--site-link) 35%,transparent);transition:color .16s ease,text-decoration-color .16s ease}a:hover{color:var(--site-link-hover);text-decoration-color:currentColor}.projects-list,.publications-list{list-style:none;padding:0;margin:0}.projects-list>li{border-block-end:1px solid var(--site-rule)}details{padding-block:1.1rem}details>summary{cursor:pointer;list-style:none;display:grid;grid-template-columns:1.25rem 1fr auto;column-gap:.85rem;align-items:baseline}details>summary::-webkit-details-marker{display:none}details>summary .title{font-family:var(--font-serif);font-weight:450;font-size:1rem;letter-spacing:-.01em;color:var(--site-fg-deep);line-height:1.3;text-wrap:balance}details>summary .type{font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--site-muted);white-space:nowrap;justify-self:end}details .body .years{font-family:var(--font-mono);font-size:.78rem;color:var(--site-muted);font-variant-numeric:tabular-nums;letter-spacing:.04em;margin-block-end:.4rem}details>summary:hover .title{color:var(--site-mark)}details[open]>summary{margin-block-end:.5rem}details[open]>summary .title{color:var(--site-mark);font-weight:500}details>summary .marker{display:inline-block;width:.9em;font-family:var(--font-mono);color:var(--site-mark);transition:transform .2s ease}details[open]>summary .marker{transform:rotate(45deg)}details .body{padding-inline-start:2.1rem;padding-block-start:.25rem;color:var(--site-fg)}details .body p{margin-block-end:.65rem;font-size:.97rem;line-height:1.55;text-wrap:pretty}details .body .links{list-style:none;padding:0;margin:0 0 .65rem;display:flex;flex-wrap:wrap;gap:.9rem 1.25rem}details .body .visit{font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;text-decoration:none;border-block-end:1px solid currentColor;padding-block-end:1px}details .body .visit:after{content:" ↗"}.publications-list>li{border-block-end:1px solid var(--site-rule)}footer.site{margin-block-start:6rem;padding-block-start:1.5rem;border-block-start:1px solid var(--site-rule);color:var(--site-muted);font-family:var(--font-mono);font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;display:flex;flex-wrap:wrap;align-items:baseline;gap:1.25rem}footer.site .social{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:1.25rem}footer.site a{color:var(--site-fg-deep);text-decoration:none;border-block-end:1px solid var(--site-rule);padding-block-end:2px}footer.site a:hover{color:var(--site-mark);border-block-end-color:currentColor}footer.site .colophon{margin-inline-start:auto;text-transform:none;letter-spacing:.02em;font-family:var(--font-serif);font-size:.78rem;color:var(--site-muted)}.vcard-page{display:flex;flex-direction:column;min-height:100dvh;padding-block-start:0;padding-block-end:0}.vcard-page>.site{margin-block:0}.vcard-page footer.site{margin-block-start:0}.vcard-main{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0}.qr-code{display:block;aspect-ratio:1;color:var(--site-fg-deep)}.qr-code svg{max-width:85vw;max-height:85vh;width:auto;height:auto}.qr-caption{margin-block-start:.5rem;text-align:center;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.04em;color:var(--site-muted)}@media(prefers-reduced-motion:no-preference){header.site .name,header.site .role,section{animation:rise .7s cubic-bezier(.2,.7,.2,1) both}header.site .name{animation-delay:0ms}header.site .role{animation-delay:.12s}section:nth-of-type(1){animation-delay:.2s}section:nth-of-type(2){animation-delay:.32s}section:nth-of-type(3){animation-delay:.44s}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}}::selection{background:var(--site-mark);color:var(--site-bg)}
