:root{--page-width:1140px;--background-color:#ffffff;--text-color:#313131;--muted-color:#5b6770;--border-color:#e5e8eb;--subtle-color:#f5f7fa;--link-color:#1565c0;--link-hover-color:#0d4778}html{box-sizing:border-box;font-size:18px;background:var(--background-color)}*,:after,:before{box-sizing:inherit}body{margin:0;color:var(--text-color);background:var(--background-color);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.65}img{max-width:100%;height:auto}a{color:var(--link-color);text-decoration:none;text-underline-offset:.12em}a:hover{color:var(--link-hover-color)}h1,h2,h3,h4,h5,h6{margin:0 0 .75rem;line-height:1.25;font-weight:400}h1{font-size:2.2rem}h2{font-size:1.45rem;margin-top:.25rem}h3{font-size:1.15rem}blockquote,ol,p,pre,table,ul{margin:0 0 1rem}ol,ul{padding-left:1.35rem}li{margin:.3rem 0}hr,section{margin:2rem 0}hr{border:0;border-top:1px solid var(--border-color)}blockquote{padding-left:1rem;border-left:3px solid var(--border-color);color:var(--muted-color)}table{width:100%;border-collapse:collapse}td,th{padding:.55rem .7rem;border:1px solid var(--border-color);text-align:left;vertical-align:top}th{background:var(--subtle-color)}code,pre{font-family:Courier New,Courier,monospace}pre{overflow-x:auto;padding:.9rem 1rem;border:1px solid var(--border-color)}code,pre{background:var(--subtle-color)}code{padding:.05rem .25rem}.date-time,.entry-meta,.photo-caption,.tag-posts-count,time{color:var(--muted-color);font-size:.95rem}.home-page section{margin:0}.academic-inner{max-width:var(--page-width);margin:auto;padding:0 1.5rem}.academic-about{padding:5rem 0}.about-grid,.section-grid{display:grid;grid-template-columns:300px minmax(0,1fr);grid-gap:3rem;gap:3rem}.profile{text-align:center}.portrait{width:240px;height:240px;border-radius:50%;object-fit:cover}.profile h1{font-size:1.75rem;margin:1rem 0 .4rem}.profile-role{color:#666;font-size:1.05rem;margin:0 0 .1rem}.profile-affiliation{font-size:1rem;margin:0}.profile-email{font-size:.85rem;color:var(--muted-color);margin:.7rem 0 0}.social-links{display:flex;justify-content:center;gap:1rem;margin-top:1.2rem;font-size:1.65rem}.social-links a{display:inline-flex;padding:.2rem}.biography h2,.section-grid>header h2{font-size:2.3rem;font-weight:400;margin-bottom:1.2rem;letter-spacing:-.025em}.biography p{margin-bottom:1.1rem}.profile-details{display:grid;grid-template-columns:1.1fr 1fr;grid-gap:1.5rem;gap:1.5rem;margin-top:1.8rem}.profile-details h3{font-size:1.2rem;font-weight:600}.profile-details ul{font-size:.9rem;padding-left:1.2rem}.education{display:flex;align-items:flex-start;gap:.7rem;font-size:.9rem}.education svg{flex-shrink:0;margin-top:.2rem;font-size:1.4rem}.education p{color:var(--muted-color);font-size:.8rem;margin-top:.15rem}.academic-section{padding:4.5rem 0}.academic-section:nth-of-type(2n){background:#f7f7f7}.section-grid>header p{color:var(--muted-color);font-size:.9rem}.home-page .section-list li{border:0;padding:0 0 1.8rem}.home-page .entry-title{font-size:1.12rem;font-weight:600;line-height:1.45}.publication-venue{font-size:.9rem;margin:.4rem 0 .65rem}.paper-actions{display:flex;gap:.5rem}.paper-actions a{border:1px solid var(--link-color);border-radius:3px;padding:.1rem .5rem;font-size:.75rem}.paper-actions a:hover{background:var(--link-color);color:#fff}.section-more{display:inline-block;font-size:.9rem;margin-top:.5rem}.academic-post{display:grid;grid-template-columns:minmax(0,1fr) 150px;grid-gap:1.5rem;gap:1.5rem;align-items:start}.academic-post .post-thumbnail{width:150px;aspect-ratio:3/2}.news-list li{display:grid;grid-template-columns:140px minmax(0,1fr);grid-gap:1rem;gap:1rem}.news-list h3{font-size:1rem;font-weight:600;margin-bottom:.4rem}.news-description{font-size:.9rem}a:hover{text-decoration:underline}:focus-visible{outline:3px solid #1565c0;outline-offset:4px}.skip-link{position:fixed;left:1rem;top:-100px;z-index:30;background:#fff;padding:.6rem 1rem}.skip-link:focus{top:.5rem}section[id]{scroll-margin-top:5rem}@media(max-width:900px){.about-grid,.section-grid{grid-template-columns:250px minmax(0,1fr);gap:2rem}.portrait{width:210px;height:210px}.profile-details{grid-template-columns:1fr;gap:.5rem}}@media(max-width:720px){.academic-inner{padding:0 1.25rem}.academic-about{padding:2.5rem 0 3rem}.about-grid,.section-grid{grid-template-columns:1fr;gap:2rem}.biography h2,.section-grid>header h2{font-size:2rem;margin-bottom:1rem}.profile-details{grid-template-columns:1fr 1fr;gap:1rem}.academic-section{padding:3rem 0}.section-grid{gap:1rem}.academic-post{grid-template-columns:minmax(0,1fr) 95px;gap:1rem}.academic-post .post-thumbnail{width:95px}.news-list li{grid-template-columns:1fr;gap:.3rem}}.section-list{list-style:none;padding:0;margin:0}.section-list li{margin:0;padding:.9rem 0;border-top:1px solid var(--border-color)}.section-list li:last-child{border-bottom:1px solid var(--border-color)}.compact-list li{padding:.55rem 0}.post-list-item{display:grid;grid-template-columns:120px minmax(0,1fr);grid-gap:.9rem;gap:.9rem;align-items:start}.post-thumbnail{display:block;width:120px;aspect-ratio:16/9;border:1px solid var(--border-color);overflow:hidden}.post-thumbnail img{width:100%;height:100%;object-fit:cover}.entry-title{display:block;margin-bottom:.2rem;font-weight:700}.post-tags{display:flex;flex-wrap:wrap;gap:.2rem .45rem;margin-top:.35rem;font-size:.9rem}.post-tags a{color:var(--muted-color);text-decoration:none}.post-tags a:hover{color:var(--link-color);text-decoration:underline}.post-tags a:not(:last-child):after{content:",";color:var(--muted-color)}.archive-note,.compact-list .entry-links,.compact-list .entry-summary,.entry-summary>:last-child,.news-description>:last-child{margin-bottom:0}.docContainer{border:1px solid var(--border-color)}.docContainer,.docContainer object{width:100%;min-height:70vh}.photo-collection{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:1rem;gap:1rem;margin-bottom:1rem}.photo-border{border:1px solid var(--border-color);padding:.5rem;background:#fff}.photo-caption{margin:.5rem 0 0}.project-article{max-width:800px;margin:0 auto}.markdown-page,.project-article{padding-top:.25rem}.project-header{margin-bottom:1.5rem}.project-title{margin-bottom:.35rem}.project-tags{display:flex;flex-wrap:wrap;gap:.4rem .8rem;margin:.75rem 0 0}.project-tag{color:var(--muted-color);font-size:.95rem}.github-icon,.project-tech-icon{display:none}.back-to-blog,.back-to-portfolio,.project-links{margin-top:2rem}.markdownContent img,.project-content img{border:1px solid var(--border-color)}.back-link,.project-github-link{display:inline}.tagged-posts-list{list-style:none;padding:0;margin:0}.tagged-post-item{padding:.85rem 0;border-top:1px solid var(--border-color)}.tagged-post-item:last-child{border-bottom:1px solid var(--border-color)}.tagged-post-link{font-weight:700}.download-page{padding-top:1rem}.download-panel{border:1px solid var(--border-color);padding:1.25rem}.download-actions{display:flex;flex-wrap:wrap;gap:.75rem 1rem;margin-top:1rem}.download-button,.secondary-button{padding:0;border:0;background:none;color:var(--link-color);font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:.12em}.download-note,.secondary-button{color:var(--muted-color)}@media(max-width:640px){html{font-size:16px}.home-intro,.photo-collection{grid-template-columns:1fr}.post-list-item{grid-template-columns:80px minmax(0,1fr);gap:.8rem}.post-list-item .post-thumbnail{width:80px}}