:root{--color-text-primary: #000;--color-text-secondary: #444;--color-background: #fff;--color-placeholder: #ccc;--color-divider: #e0e0e0;--color-link: #0891b2;--font-family: "Google Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-size-base: 16px;--font-size-small: .9rem;--font-size-h1: 1.5rem;--font-size-h2: 1.25rem;--line-height: 1.6;--space-xs: .25rem;--space-sm: .75rem;--space-md: 1.5rem;--space-lg: 2rem;--space-xl: 3rem;--container-max-width: 650px;--profile-photo-size: 150px}*,*:before,*:after{box-sizing:border-box}body{margin:0;padding:var(--space-lg) 1rem;font-family:var(--font-family);font-size:var(--font-size-base);font-weight:400;line-height:var(--line-height);color:#333;background:var(--color-background)}.container{max-width:var(--container-max-width);margin:0 auto}nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xl)}footer{margin-top:var(--space-xl);padding-top:var(--space-md);border-top:1px solid var(--color-divider);color:#999;font-size:var(--font-size-small)}nav a{color:var(--color-text-primary);text-decoration:none}nav a:hover{text-decoration:underline}.site-title{font-weight:500}.nav-links a{margin-left:var(--space-md);font-size:var(--font-size-small)}.menu-toggle{display:none;flex-direction:column;justify-content:center;gap:6px;width:24px;height:24px;padding:0;background:none;border:none;cursor:pointer;z-index:1001}.menu-toggle span{display:block;width:100%;height:1.5px;background:var(--color-text-primary);transition:transform .3s ease,opacity .3s ease}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.75px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.75px) rotate(-45deg)}body.menu-open{overflow:hidden}@media(max-width:640px){body{padding-top:1rem}.menu-toggle{display:flex}.nav-links{position:fixed;inset:0;background:var(--color-background);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--space-lg);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;z-index:1000}.nav-links.open{opacity:1;visibility:visible}.nav-links a{margin-left:0;font-size:1.75rem;font-weight:500;opacity:0;transform:translateY(20px)}.nav-links.open a{animation:fadeInUp .4s ease forwards}.nav-links.open a:nth-child(1){animation-delay:.05s}.nav-links.open a:nth-child(2){animation-delay:.1s}.nav-links.open a:nth-child(3){animation-delay:.15s}.nav-links.open a:nth-child(4){animation-delay:.2s}.profile{flex-direction:column;align-items:center;text-align:center}.profile-photo{width:100px;height:100px;align-self:center}.profile-info{width:100%}}@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}a{color:var(--color-link)}a:hover{text-decoration:underline}h1{font-size:var(--font-size-h1);margin:0 0 var(--space-lg) 0;color:#333;font-weight:500}h2{font-size:var(--font-size-h2);margin:var(--space-lg) 0 1rem 0;color:#333;font-weight:500}.page-description{color:#999;margin-top:calc(-1 * var(--space-md));margin-bottom:var(--space-lg)}.profile{display:flex;gap:var(--space-lg);align-items:flex-start;margin-bottom:var(--space-lg)}.profile-photo{width:var(--profile-photo-size);height:var(--profile-photo-size);background:var(--color-placeholder);flex-shrink:0;border-radius:22%;object-fit:cover}.profile-info h1{margin-bottom:var(--space-xs)}.profile-info p{margin:var(--space-xs) 0}.social-links{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-xs) var(--space-sm);margin-top:var(--space-sm)}.social-links a{display:flex;align-items:center;gap:.25rem;color:var(--color-link);font-size:.8rem;text-decoration:none}.social-links a:hover{text-decoration:underline}.social-links svg{width:12px;height:12px}.publication{padding-bottom:var(--space-sm);margin-bottom:var(--space-sm);border-bottom:1px solid var(--color-divider)}.publication:last-child{border-bottom:none}.publication-title{font-weight:600;margin-bottom:var(--space-xs)}.publication-authors{color:var(--color-text-secondary)}.author-self{text-decoration:underline}.publication-venue{font-style:italic;margin-bottom:var(--space-xs)}.publication-links{display:flex;gap:var(--space-md)}.pub-link{display:inline-flex;align-items:center;gap:.35rem;font-size:var(--font-size-small);color:var(--color-link);text-decoration:none;background:none;border:none;padding:0;cursor:pointer;font-family:inherit;transition:opacity .2s}.pub-link:hover{opacity:.7;text-decoration:none}.pub-link svg{width:16px;height:16px}.pub-link.active{color:var(--color-text-primary)}.abstract-content{max-height:0;overflow:hidden;transition:max-height .3s ease,margin .3s ease,opacity .3s ease;opacity:0;margin-top:0}.abstract-content.expanded{max-height:500px;opacity:1;margin-top:var(--space-sm)}.abstract-content p{margin:0;padding:var(--space-sm);background:#f8f8f8;border-radius:4px;font-size:var(--font-size-small);line-height:1.5;color:var(--color-text-secondary)}.news-list{list-style:none;padding:0;margin:0}.news-list li{display:flex;gap:var(--space-md);padding:var(--space-sm) 0;border-bottom:1px solid var(--color-divider)}.news-list li:last-child{border-bottom:none}.news-date{color:var(--color-text-secondary);font-size:var(--font-size-small);flex-shrink:0;width:5rem}.news-content{flex:1}.talk,.course{padding-bottom:var(--space-md);margin-bottom:var(--space-md);border-bottom:1px solid var(--color-divider)}.talk:last-child,.course:last-child{border-bottom:none}.talk-title,.course-title{font-weight:600}.talk-event,.course-details{color:var(--color-text-secondary)}.talk-date,.course-semester{font-style:italic}.talk-links a{margin-right:var(--space-sm);font-size:var(--font-size-small)}
