@font-face{font-family:DM Sans;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/dm-sans-latin-ext-italic-400.woff2)format("woff2");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:DM Sans;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/dm-sans-latin-italic-400.woff2)format("woff2");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}@font-face{font-family:DM Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/dm-sans-latin-ext-normal-wght.woff2)format("woff2");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:DM Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/dm-sans-latin-normal-wght.woff2)format("woff2");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}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-latin-ext-normal-400.woff2)format("woff2");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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-latin-normal-400.woff2)format("woff2");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}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/source-serif-4-latin-ext-italic-400.woff2)format("woff2");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:"Source Serif 4";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/source-serif-4-latin-italic-400.woff2)format("woff2");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}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/source-serif-4-latin-ext-normal-wght.woff2)format("woff2");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:"Source Serif 4";font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/source-serif-4-latin-normal-wght.woff2)format("woff2");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{--accent-base:#8c1d24;--accent:var(--accent-base);--accent-hover:color-mix(in srgb, var(--accent-base) 82%, black);--accent-light:color-mix(in srgb, var(--accent-base) 8%, transparent);--on-accent:#fff;--bg-primary:#f8f6f1;--bg-secondary:#f0ece4;--bg-card:#fff;--text-primary:#2c2a25;--text-secondary:#5c5850;--text-muted:#6f6a61;--border-color:#e2ded6;--shadow-sm:0 1px 3px #2c2a250f;--shadow-md:0 4px 12px #2c2a2514;--shadow-lg:0 8px 24px #2c2a251a;--shadow-navbar:0 1px 4px #2c2a251a;--container-max:1100px;--container-padding:1.5rem;--header-h:64px;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-full:9999px;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s cubic-bezier(.22, 1, .36, 1);--font-sans:"DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-serif:"Source Serif 4", Georgia, "Times New Roman", serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--text-hero:clamp(2rem, 1.35rem + 2.6vw, 3.1rem);--text-h1:clamp(1.5rem, 1.2rem + 1.2vw, 2rem);--text-h2:clamp(1.2rem, 1.05rem + .6vw, 1.45rem);--text-h3:1.05rem;--danger:#b3261e;--danger-glow:#b3261e1a;--ok:#2f8a4e;--input-bg:var(--bg-card);--input-border:var(--border-color);--input-text:var(--text-primary);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:var(--bg-primary);--bg-elev:var(--bg-secondary);--card:var(--bg-card);--text:var(--text-primary);--muted:var(--text-muted);--border:var(--border-color);--line:var(--border-color);--brand:var(--accent);--brand-dark:var(--accent-hover);--brand-50:var(--accent-light);--brand-glow:var(--accent-light);--radius:var(--radius-md);--ease:var(--transition-base);--container-w:var(--container-max)}:root[data-theme=dark]{--accent:color-mix(in srgb, var(--accent-base) 62%, white);--accent-hover:color-mix(in srgb, var(--accent-base) 45%, white);--accent-light:color-mix(in srgb, var(--accent-base) 14%, transparent);--on-accent:#1c1b18;--bg-primary:#1c1b18;--bg-secondary:#262520;--bg-card:#2a2924;--text-primary:#e8e4dc;--text-secondary:#b5b0a5;--text-muted:#9a958a;--border-color:#3d3a33;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #00000059;--shadow-lg:0 8px 24px #0006;--shadow-navbar:0 1px 4px #0006;--danger:#f2938c;--danger-glow:#f2938c24;--ok:#4ade80;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--accent:color-mix(in srgb, var(--accent-base) 62%, white);--accent-hover:color-mix(in srgb, var(--accent-base) 45%, white);--accent-light:color-mix(in srgb, var(--accent-base) 14%, transparent);--on-accent:#1c1b18;--bg-primary:#1c1b18;--bg-secondary:#262520;--bg-card:#2a2924;--text-primary:#e8e4dc;--text-secondary:#b5b0a5;--text-muted:#9a958a;--border-color:#3d3a33;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #00000059;--shadow-lg:0 8px 24px #0006;--shadow-navbar:0 1px 4px #0006;--danger:#f2938c;--danger-glow:#f2938c24;--ok:#4ade80;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-sans);font-optical-sizing:auto;font-size-adjust:from-font;-webkit-font-smoothing:antialiased;margin:0;font-size:1rem;line-height:1.75}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);letter-spacing:-.01em;color:var(--text-primary);margin-top:var(--space-10);margin-bottom:var(--space-4);text-wrap:balance;font-weight:700;line-height:1.3}h1,h2{font-size:1.875rem}h1:after,h2:after{content:"";background-color:var(--accent);width:2rem;height:2px;margin-top:var(--space-3);border-radius:1px;display:block}h3{font-size:1.375rem}h4{font-size:1.125rem}p{color:var(--text-secondary);margin:0 0 var(--space-4);text-wrap:pretty;text-align:justify;-webkit-hyphens:auto;hyphens:auto;max-width:65ch}li{max-width:65ch}.prose-wide p,.prose-wide li{max-width:none}strong,b{color:var(--text-primary)}em,i{font-style:italic}small,.muted,.text-muted{font-size:.875rem;color:var(--text-muted)!important}code,pre{font-family:var(--font-mono);font-size:.875em}pre{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-4);white-space:pre-wrap;word-wrap:break-word;overflow-x:auto}hr{border:none;border-top:1px solid var(--border-color);margin:var(--space-8) 0}img{max-width:100%;display:block}.skip-link{background:var(--accent);color:var(--on-accent);z-index:200;border-radius:0 0 8px;padding:.6rem 1rem;position:absolute;top:0;left:-999px}.skip-link:focus{left:0}.icon{vertical-align:-.125em;fill:currentColor;flex-shrink:0;width:1em;height:1em;display:inline-block}.container{width:100%;max-width:var(--container-max);padding:0 var(--container-padding);margin:0 auto}.grid-auto{gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.site-header{height:var(--header-h);z-index:100;border-bottom:1px solid var(--border-color);transition:box-shadow var(--transition-base);-webkit-backdrop-filter:saturate(180%)blur(16px);background-color:color-mix(in srgb, var(--bg-primary) 80%, transparent);position:fixed;inset:0 0 auto}.site-header.scrolled{box-shadow:var(--shadow-navbar)}.header-inner{justify-content:space-between;align-items:center;gap:1.25rem;height:100%;display:flex}.brand{color:var(--text-primary);align-items:center;gap:.6rem;display:flex}.brand:hover{text-decoration:none}.brand-logo{opacity:.9;width:auto;height:28px}.brand-name{font-family:var(--font-serif);letter-spacing:-.01em;white-space:nowrap;font-size:1.125rem;font-weight:700}.nav-menu{gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.nav-menu a{white-space:nowrap;color:var(--text-secondary);letter-spacing:.02em;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);transition:color var(--transition-fast), background-color var(--transition-fast);font-size:.8125rem;font-weight:500;display:inline-block;position:relative}.nav-menu a:hover{color:var(--accent);background-color:var(--accent-light);text-decoration:none}.nav-menu a.is-active{color:var(--accent)}.nav-menu a.is-active:after{content:"";bottom:2px;left:var(--space-3);right:var(--space-3);background-color:var(--accent);border-radius:1px;height:2px;position:absolute}.nav-item-group{position:relative}.nav-group-toggle{cursor:pointer;font:inherit;color:var(--text-secondary);letter-spacing:.02em;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);transition:color var(--transition-fast), background-color var(--transition-fast);background:0 0;border:none;align-items:center;gap:.3rem;font-size:.8125rem;font-weight:500;display:inline-flex;position:relative}.nav-group-toggle:hover{color:var(--accent);background-color:var(--accent-light)}.nav-group-toggle.is-active{color:var(--accent)}.nav-group-toggle.is-active:after{content:"";bottom:2px;left:var(--space-3);right:var(--space-3);background-color:var(--accent);border-radius:1px;height:2px;position:absolute}.nav-caret{transition:transform var(--transition-fast);font-size:.7em;display:inline-block}.nav-caret.is-open{transform:rotate(180deg)}.nav-dropdown{padding:var(--space-2);top:calc(100% + var(--space-2));background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);min-width:200px;box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:opacity var(--transition-fast), transform var(--transition-fast);z-index:10;margin:0;list-style:none;position:absolute;left:0;transform:translateY(-6px)}.nav-dropdown.is-open{opacity:1;pointer-events:auto;transform:none}.nav-dropdown a{white-space:nowrap;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.8125rem;font-weight:500;display:block}.nav-dropdown a:hover,.nav-dropdown a.is-active{color:var(--accent);background-color:var(--accent-light);text-decoration:none}.nav-dropdown a.is-active:after{display:none}.menu-toggle{border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:8px;display:none}.menu-toggle .bar{background:var(--text-primary);width:22px;height:2px;margin:4px 0;display:block}.theme-toggle,.search-toggle{border-radius:var(--radius-full);border:1px solid var(--border-color);width:2rem;height:2rem;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;justify-content:center;align-items:center;display:inline-flex}.theme-toggle:hover,.search-toggle:hover{color:var(--accent);border-color:var(--accent);background-color:var(--accent-light)}@media (width<=767px){.menu-toggle{display:block}.site-nav{inset:var(--header-h) 0 auto 0;max-height:calc(100vh - var(--header-h));background:var(--bg-primary);border-bottom:1px solid var(--border-color);padding:var(--space-4) var(--container-padding) var(--space-6);opacity:0;pointer-events:none;transition:opacity var(--transition-base), transform var(--transition-base);position:fixed;overflow-y:auto;transform:translateY(-8px)}.site-nav.is-open{opacity:1;pointer-events:auto;transform:translateY(0)}.nav-menu{flex-direction:column;gap:.2rem}.nav-menu a.is-active:after{display:none}.nav-menu a.is-active{background-color:var(--accent-light)}.nav-item-group{position:static}.nav-group-toggle{border-radius:var(--radius-md);justify-content:space-between;width:100%;padding:var(--space-3) var(--space-4)!important;font-size:.9375rem!important}.nav-group-toggle.is-active{background-color:var(--accent-light)}.nav-group-toggle.is-active:after{display:none}.nav-dropdown{box-shadow:none;padding:0 0 0 var(--space-4);margin-top:var(--space-1);background:0 0;border:none;display:none;position:static}.nav-dropdown.is-open{display:block}.nav-dropdown a{padding:var(--space-3) var(--space-4);font-size:.9375rem}}.page{padding-top:calc(var(--header-h) + var(--space-8));padding-bottom:var(--space-16);min-height:100%}.page-header{margin-bottom:var(--space-8)}.eyebrow{letter-spacing:.09em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-2);font-size:.75rem;font-weight:700;display:inline-block}.page-header h1{font-size:var(--text-h1);margin-top:0}.card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-slow), transform var(--transition-slow)}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.card h3,.card h4{margin-top:0}.card-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.section-card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:var(--shadow-sm)}.section-card h1,.section-card h2,.section-card h3,.section-card h4{margin-top:0}.section-card h1:after,.section-card h2:after,.section-card h3:after,.section-card h4:after{display:none}.section-card h2{font-size:1.375rem}.section{margin-bottom:var(--space-10)}.section:last-child{margin-bottom:0}.btn{border-radius:var(--radius-md);background:var(--accent);color:var(--on-accent);font-size:.88rem;font-weight:600;font-family:var(--font-sans);border:1px solid var(--accent);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast);align-items:center;gap:.4rem;padding:.6rem 1.1rem;display:inline-flex}.btn:hover{background:var(--accent-hover);border-color:var(--accent-hover);text-decoration:none}.btn-outline{color:var(--text-primary);border-color:var(--border-color);background:0 0}.btn-outline:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light)}.btn-danger{border-color:var(--danger);color:var(--danger);opacity:.85;background:0 0}.btn-danger:hover{background:var(--danger-glow);opacity:1}.btn-sm{padding:4px 12px;font-size:.8rem}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-pill{font-size:.75rem;font-weight:600;font-family:var(--font-sans);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast);text-transform:uppercase;letter-spacing:.04em;border:1px solid #0000;padding:.25rem .875rem;line-height:1.6;text-decoration:none;display:inline-block}.btn-pill.btn-doi,.btn-pill.btn-git{background-color:var(--text-primary);color:var(--bg-primary)}.btn-pill.btn-doi:hover,.btn-pill.btn-git:hover{opacity:.85;color:var(--bg-primary)}.btn-pill.btn-website,.btn-pill.btn-pdf{background-color:var(--accent);color:var(--on-accent)}.btn-pill.btn-website:hover,.btn-pill.btn-pdf:hover{background-color:var(--accent-hover);color:var(--on-accent)}.btn-pill.btn-arxiv,.btn-pill.btn-paper{color:#fff;background-color:#b31b1b}.btn-pill.btn-arxiv:hover,.btn-pill.btn-paper:hover{color:#fff;background-color:#8c1515}.btn-pill.btn-link,.btn-pill.btn-slides,.btn-pill.btn-video,.btn-pill.btn-docs{color:var(--text-secondary);border-color:var(--border-color);background-color:#0000}.btn-pill.btn-link:hover,.btn-pill.btn-slides:hover,.btn-pill.btn-video:hover,.btn-pill.btn-docs:hover{border-color:var(--accent);color:var(--accent)}.icon-link{border-radius:var(--radius-full);width:2.25rem;height:2.25rem;color:var(--text-muted);transition:all var(--transition-fast);justify-content:center;align-items:center;display:inline-flex}.icon-link:hover{color:var(--accent);background-color:var(--accent-light);text-decoration:none}.chip-container{gap:var(--space-2);margin:var(--space-4) 0 var(--space-6);flex-wrap:wrap;display:flex}.chip{font-family:var(--font-sans);letter-spacing:.02em;border-radius:var(--radius-full);background-color:var(--accent-light);color:var(--accent);border:1px solid var(--accent);transition:all var(--transition-fast);padding:.25rem .875rem;font-size:.75rem;font-weight:600;text-decoration:none;display:inline-block}.chip:hover{background-color:var(--accent);color:var(--on-accent);text-decoration:none}.chip-muted{background-color:var(--bg-secondary);color:var(--text-secondary);border-color:var(--border-color)}.chip-muted:hover{background-color:var(--border-color);color:var(--text-primary)}.callout{border-left:4px solid var(--accent);background:linear-gradient(135deg, var(--accent-light), transparent);border-radius:0 var(--radius-lg) var(--radius-lg) 0;padding:var(--space-6);margin:var(--space-6) 0}.callout-title{font-family:var(--font-serif);color:var(--text-primary);margin-top:0;margin-bottom:var(--space-2);align-items:center;gap:var(--space-2);font-size:1.0625rem;font-weight:700;display:flex}.callout-icon{color:var(--accent);font-size:1.125rem}.callout p{margin-bottom:0;font-size:.9375rem}.callout a{font-weight:600}.callout-success{background:linear-gradient(135deg,#16a34a14,#0000);border-left-color:#16a34a}.callout-success .callout-icon{color:#16a34a}.callout-warning{background:linear-gradient(135deg,#d9770614,#0000);border-left-color:#d97706}.callout-warning .callout-icon{color:#d97706}.profile-card{text-align:center;background:linear-gradient(145deg, var(--bg-card) 0%, var(--bg-secondary) 100%);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:var(--space-10) var(--space-6) var(--space-8);box-shadow:var(--shadow-md);position:relative;overflow:hidden}.profile-card:before{content:"";background:linear-gradient(90deg, var(--accent), var(--accent-hover));height:3px;position:absolute;top:0;left:0;right:0}.profile-photo{object-fit:cover;width:140px;height:140px;margin:0 auto var(--space-4);border:3px solid var(--bg-primary);box-shadow:0 0 0 1px var(--border-color), var(--shadow-md);border-radius:50%;transition:transform .5s cubic-bezier(.22,1,.36,1);display:block}.profile-card:hover .profile-photo{transform:scale(1.04)}.profile-name{font-family:var(--font-serif);color:var(--text-primary);max-width:none;margin:0 0 var(--space-1);font-size:1.375rem;font-weight:700}.profile-title{color:var(--text-secondary);margin-bottom:0;font-size:.875rem}.profile-institution{color:var(--text-muted);margin-bottom:var(--space-1);font-size:.8125rem}.profile-links{justify-content:center;gap:var(--space-1);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border-color);flex-wrap:wrap;display:flex}.profile-lab-group{text-align:left;margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border-color)}.profile-lab-group-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:var(--space-2);font-size:.6875rem;font-weight:700;display:block}.profile-lab-group-link{align-items:center;gap:var(--space-2);color:var(--text-primary);font-size:.9rem;font-weight:600;display:flex}a.profile-lab-group-link:hover{color:var(--accent);text-decoration:none}.profile-lab-group-logo{object-fit:contain;border-radius:var(--radius-sm);flex-shrink:0;width:32px;height:32px}.profile-activity-groups{text-align:left}.profile-activity-group{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border-color)}.activity-list-vertical{gap:var(--space-2);flex-direction:column;display:flex}.activity-list-vertical li a,.activity-list-vertical li span{align-items:center;gap:var(--space-2);color:var(--text-primary);font-size:.875rem;font-weight:500;display:flex}.activity-list-vertical li a:hover{color:var(--accent);text-decoration:none}.activity-icon{object-fit:contain;border-radius:var(--radius-sm);flex-shrink:0;width:24px;height:24px}.activity-icon-grid{gap:var(--space-3);grid-template-columns:repeat(3,1fr);display:grid}.activity-icon-grid a,.activity-icon-grid span:not(.activity-chip-fallback){justify-content:center;align-items:center;display:flex}.activity-icon-grid img{object-fit:contain;border-radius:var(--radius-sm);width:72px;height:auto;transition:transform var(--transition-fast)}.activity-icon-grid a:hover img{transform:scale(1.08)}.activity-chip-fallback{text-align:center;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:var(--space-2);justify-content:center;align-items:center;font-size:.6875rem;font-weight:600;line-height:1.3;display:flex}a.activity-chip-fallback:hover{color:var(--accent);border-color:var(--accent);text-decoration:none}.profile-education{text-align:left;margin-top:var(--space-4);padding-left:0;list-style:none}.profile-education li{color:var(--text-secondary);padding:var(--space-1) 0;max-width:none;font-size:.875rem}.pi-card{gap:var(--space-8);grid-template-columns:auto 1fr;align-items:center;display:grid}.pi-photo{border-radius:var(--radius-xl);object-fit:cover;border:2px solid var(--bg-primary);width:160px;height:160px;box-shadow:0 0 0 1px var(--border-color), var(--shadow-md)}.pi-name{font-family:var(--font-serif);margin-top:0;font-size:1.5rem}.pi-name:after{display:none}.pi-links{gap:var(--space-1);margin-top:var(--space-3);flex-wrap:wrap;display:flex}@media (width<=640px){.pi-card{text-align:center;grid-template-columns:1fr}.pi-photo{margin:0 auto}.pi-links{justify-content:center}}.home-grid{gap:var(--space-12);grid-template-columns:1fr 340px;align-items:start;display:grid}.home-content{min-width:0}.home-content>p:first-of-type{color:var(--text-primary);font-size:1.0625rem;line-height:1.8}.home-hero{font-family:var(--font-serif);font-size:var(--text-hero);letter-spacing:-.02em;margin:0 0 var(--space-1);color:var(--text-primary);font-weight:800;line-height:1.15}.home-hero:after{display:none}.home-hero-sub{color:var(--text-muted);margin-bottom:var(--space-8);max-width:none;font-size:1.0625rem;font-style:italic}.arrow-list{margin:0;padding:0;list-style:none}.arrow-list-item{justify-content:space-between;align-items:baseline;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--border-color);display:flex}.arrow-list-item:last-child{border-bottom:none}.arrow-list-item-title{align-items:baseline;gap:var(--space-2);color:var(--text-primary);font-size:.9375rem;font-weight:600;display:flex}.arrow-list-item-title:before{content:"→";color:var(--accent);flex-shrink:0}.arrow-list-item-date{color:var(--text-muted);white-space:nowrap;flex-shrink:0;font-size:.8125rem}@media (width<=768px){.home-grid{gap:var(--space-8);grid-template-columns:1fr}.home-hero{font-size:2rem}}.research-grid,.team-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));display:grid}.research-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.research-card,.team-card{background:linear-gradient(160deg, var(--bg-card) 0%, var(--bg-secondary) 100%);border:1px solid var(--border-color);border-radius:var(--radius-xl);transition:box-shadow var(--transition-slow), transform var(--transition-slow);overflow:hidden}.research-card:hover,.team-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}.research-thumb{object-fit:cover;width:100%;height:180px;transition:transform .6s cubic-bezier(.22,1,.36,1)}.research-card:hover .research-thumb{transform:scale(1.04)}.research-body{padding:var(--space-6)}.research-title{font-family:var(--font-serif);margin:0 0 var(--space-2);font-size:1.125rem;font-weight:700}.research-title:after{display:none}.research-desc{color:var(--text-secondary);margin:0;font-size:.875rem;line-height:1.7}.team-card{padding:var(--space-8) var(--space-6);text-align:center}.team-photo{object-fit:cover;width:100px;height:100px;margin:0 auto var(--space-4);border:2px solid var(--bg-primary);box-shadow:0 0 0 1px var(--border-color);border-radius:50%;transition:transform .5s cubic-bezier(.22,1,.36,1);display:block}.team-card:hover .team-photo{transform:scale(1.06)}.team-name{font-family:var(--font-serif);margin:0 0 var(--space-1);font-size:1rem;font-weight:700}.team-info{color:var(--text-muted);margin-bottom:var(--space-3);font-size:.8125rem;font-style:italic}.team-links{justify-content:center;gap:var(--space-1);padding-top:var(--space-3);border-top:1px solid var(--border-color);display:flex}.alumni-table{border-collapse:collapse;width:100%}.alumni-table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;padding:var(--space-3) var(--space-4);border-bottom:2px solid var(--border-color);font-size:.6875rem;font-weight:700}.alumni-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-color);color:var(--text-secondary);font-size:.875rem}.alumni-table tr:last-child td{border-bottom:none}.pub-toolbar{padding-bottom:var(--space-6);margin-bottom:var(--space-2);border-bottom:1px solid var(--border-color);flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.pub-search{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--border-color);border-radius:var(--radius-full);background-color:var(--bg-card);color:var(--text-primary);font-family:var(--font-sans);font-size:.875rem}.pub-search:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light);outline:none}.pub-year-heading{font-family:var(--font-serif);color:var(--text-muted);margin:var(--space-8) 0 var(--space-3);font-size:1.15rem;font-weight:700}.pub-year-heading:first-child{margin-top:0}.pub-list{margin:0;padding:0;list-style:none}.pub-entry,.talk-entry,.software-entry{padding:var(--space-6) 0;border-bottom:1px solid var(--border-color)}.pub-entry:last-child,.talk-entry:last-child,.software-entry:last-child{border-bottom:none}.pub-entry-meta{gap:var(--space-2);margin-bottom:var(--space-1);flex-wrap:wrap;align-items:center;display:flex}.pub-entry-title{color:var(--text-primary);font-weight:600}a.pub-entry-title:hover{color:var(--accent)}.pub-entry-venue{font-style:italic}.pub-entry-authors{color:var(--text-secondary);margin-top:.2rem;font-size:.9375rem}.year-badge{font-family:var(--font-sans);letter-spacing:.04em;border-radius:var(--radius-full);background-color:var(--accent-light);color:var(--accent);border:1px solid var(--accent);padding:.15rem .625rem;font-size:.6875rem;font-weight:700;display:inline-flex}.badge{border:1px solid var(--border-color);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);background:0 0;border-radius:4px;align-items:center;padding:1px 7px;font-size:.68rem;font-weight:600;display:inline-flex}.pub-actions{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}#main{min-height:100svh}.site-footer{background-color:var(--bg-secondary);border-top:1px solid var(--border-color);padding:var(--space-12) 0 var(--space-8);margin-top:var(--space-16)}.footer-grid{gap:var(--space-8);max-width:var(--container-max);padding:0 var(--container-padding);grid-template-columns:repeat(3,1fr);margin:0 auto;display:grid}.footer-heading{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);margin:0 0 var(--space-4);font-size:.6875rem;font-weight:700}.footer-heading:after{display:none}.footer-grid p,.footer-grid a{color:var(--text-secondary);font-size:.8125rem;line-height:1.9}.footer-grid a:hover{color:var(--accent)}.footer-copyright{text-align:center;margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--border-color);color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;font-size:.6875rem}.footer-affiliations{max-width:var(--container-max);margin:var(--space-8) auto 0;padding:0 var(--container-padding);justify-content:center;gap:var(--space-8)}@media (width<=640px){.footer-grid{gap:var(--space-6);grid-template-columns:1fr}.footer-affiliations{gap:var(--space-5)}}.search-overlay{z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity var(--transition-base);background-color:#0006;justify-content:center;align-items:flex-start;padding-top:15vh;display:flex;position:fixed;inset:0}.search-overlay.open{opacity:1;pointer-events:auto}.search-modal{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xl);width:100%;max-width:560px;box-shadow:var(--shadow-lg);transition:transform var(--transition-slow);overflow:hidden;transform:translateY(-8px)scale(.98)}.search-overlay.open .search-modal{transform:translateY(0)scale(1)}.search-input-wrapper{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border-color);align-items:center;gap:var(--space-3);display:flex}.search-input-icon{color:var(--text-muted);flex-shrink:0}.search-input{font-family:var(--font-sans);color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-size:1rem}.search-input::placeholder{color:var(--text-muted)}.search-kbd{color:var(--text-muted);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);flex-shrink:0;padding:.1rem .4rem;font-size:.6875rem;font-weight:600}.search-results{max-height:50vh;overflow-y:auto}.search-result-item{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border-color);color:var(--text-primary);display:block}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background-color:var(--accent-light);color:var(--text-primary);text-decoration:none}.search-result-title{font-family:var(--font-serif);margin-bottom:var(--space-1);font-size:.9375rem;font-weight:700}.search-result-meta{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-1);font-size:.75rem}.search-result-snippet{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.8125rem;line-height:1.5;display:-webkit-box;overflow:hidden}.search-no-results{padding:var(--space-8) var(--space-6);text-align:center;color:var(--text-muted);font-size:.875rem}.fade-in-section{opacity:0;transition:opacity .6s cubic-bezier(.22,1,.36,1),transform .6s cubic-bezier(.22,1,.36,1);transform:translateY(16px)}.fade-in-section.visible{opacity:1;transform:none}.back-to-top{bottom:var(--space-8);right:var(--space-8);border-radius:var(--radius-full);background-color:var(--bg-card);border:1px solid var(--border-color);width:2.5rem;height:2.5rem;color:var(--text-muted);cursor:pointer;box-shadow:var(--shadow-md);opacity:0;pointer-events:none;transition:opacity var(--transition-base), transform var(--transition-base), color var(--transition-fast), border-color var(--transition-fast);z-index:100;justify-content:center;align-items:center;display:flex;position:fixed;transform:translateY(10px)}.back-to-top.visible{opacity:1;pointer-events:auto;transform:none}.back-to-top:hover{color:var(--accent);border-color:var(--accent);box-shadow:var(--shadow-lg)}@media (prefers-reduced-motion:reduce){.fade-in-section,.back-to-top{transition:none}}.field-group{margin-bottom:var(--space-4);flex-direction:column;gap:.3rem;display:flex}.field-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.78rem;font-weight:600}.field-error{color:var(--danger);font-size:.78rem}input[type=text],input[type=email],input[type=url],input[type=number],input[type=password],input[type=date],input[type=search],textarea,select{background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius-md);width:100%;color:var(--input-text);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:.6rem .8rem;font-family:inherit;font-size:.9rem}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light);outline:none}textarea{resize:vertical;min-height:6rem}label{color:var(--text-muted);margin-bottom:var(--space-4);flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.spinner{border:2px solid var(--border-color);border-top-color:var(--accent);border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.status-message{min-height:1.2em;font-size:.85rem;font-weight:600}.status-message.ok{color:var(--ok)}.status-message.err{color:var(--danger)}.stack{gap:var(--space-6);flex-direction:column;display:flex}.stack-sm{gap:var(--space-3);flex-direction:column;display:flex}.list-plain{margin:0;padding:0;list-style:none}.two-col{gap:var(--space-8);grid-template-columns:2fr 1fr;align-items:start;display:grid}.avatar-lg{aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius-md);border:1px solid var(--border-color);flex-shrink:0;width:100%;max-width:220px}.avatar-sm{object-fit:cover;border:1px solid var(--border-color);border-radius:50%;flex-shrink:0;width:56px;height:56px}.logo-strip{align-items:center;gap:var(--space-6);flex-wrap:wrap;display:flex}.logo-strip img{opacity:.9;width:auto;height:40px}.entry-date{color:var(--text-muted);font-size:.82rem}.text-link{color:var(--accent);align-items:center;gap:.35rem;font-size:.9rem;font-weight:600;display:inline-flex}.text-link:hover{gap:.55rem;text-decoration:none}.text-link .arrow{transition:transform var(--transition-fast)}@media (width<=780px){.two-col{grid-template-columns:1fr}}
