:root{--background:#fbfaf8;--surface:#fff;--ink:#171615;--muted:#635f59;--soft:#77716b;--faint:#77716b;--line:#ded8cf;--accent:#7b3830;--max-width:1080px;--reading-width:720px;--serif:"Songti SC", "SimSun", "Noto Serif SC", "Source Han Serif SC", Georgia, serif;--sans:"PingFang SC", "Microsoft YaHei", "Noto Sans SC", "Source Han Sans SC", Arial, sans-serif}*{box-sizing:border-box}html{background:var(--background);color:var(--ink);font-family:var(--sans);letter-spacing:0;font-size:16px}body{min-width:320px;color:var(--ink);text-rendering:optimizelegibility;margin:0;line-height:1.7}button,input,textarea{font:inherit}a{color:inherit;text-decoration:none;transition:border-color .16s,color .16s,background-color .16s}a:hover,a:focus-visible{color:var(--accent)}a:focus-visible{outline:1px solid var(--accent);outline-offset:4px}p,h1,h2,h3{overflow-wrap:break-word;word-break:normal;line-break:strict;margin:0}ul{margin:0;padding:0}.page-shell{flex-direction:column;min-height:100vh;display:flex}main{flex:1}.site-header{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--background) 92%, white)}.site-nav{max-width:var(--max-width);justify-content:space-between;align-items:center;gap:28px;margin:0 auto;padding:20px 28px;display:flex}.brand{gap:1px;min-width:220px;display:grid}.brand-name{font-family:var(--serif);font-size:1.05rem;font-weight:600}.brand-subtitle{max-width:420px;color:var(--muted);font-size:.76rem;line-height:1.5}.nav-links{color:var(--muted);flex-wrap:wrap;justify-content:flex-end;gap:8px 20px;font-size:.9rem;display:flex}.nav-links a{border-bottom:1px solid #0000;padding:2px 0}.nav-links a:hover,.nav-links a:focus-visible,.nav-links a[aria-current=page]{border-bottom-color:var(--accent);color:var(--ink)}.home-hero,.page-intro,.resume-header,.section{max-width:var(--max-width);margin:0 auto;padding-left:28px;padding-right:28px}.home-hero{padding-top:68px;padding-bottom:62px}.home-hero__main{max-width:790px}.home-hero h1,.page-intro h1,.resume-header h1{font-family:var(--serif);font-size:3.15rem;font-weight:500;line-height:1.18}.kicker,.item-category,.project-card__topline,.item-meta,.publication-meta{color:var(--soft);letter-spacing:.06em;text-transform:uppercase;font-size:.72rem}.kicker{margin-bottom:12px}.hero-headline{max-width:var(--reading-width);color:var(--accent);margin-top:20px;font-size:1.12rem;line-height:1.65}.hero-summary{max-width:var(--reading-width);color:var(--muted);gap:12px;margin-top:18px;font-size:1rem;display:grid}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:30px;display:flex}.button{border:1px solid var(--ink);border-radius:2px;justify-content:center;align-items:center;min-height:40px;padding:7px 18px;font-size:.92rem;display:inline-flex}.button--primary{background:var(--ink);color:var(--surface)}.button--primary:hover,.button--primary:focus-visible{border-color:var(--accent);background:var(--accent);color:var(--surface)}.button--secondary{background:0 0}.button--secondary:hover,.button--secondary:focus-visible{border-color:var(--accent)}.section{padding-top:60px;padding-bottom:60px}.section--divided{border-top:1px solid var(--line)}.section-title{max-width:var(--reading-width);gap:8px;margin-bottom:28px;display:grid}.section-title h2{font-family:var(--serif);font-size:1.75rem;font-weight:500;line-height:1.32}.section-title p:last-child{color:var(--muted)}.content-list,.project-list,.publication-list{border-top:1px solid var(--line);gap:0;max-width:960px;display:grid}.content-item{grid-template-columns:170px minmax(0, var(--reading-width));border-bottom:1px solid var(--line);gap:30px;padding:28px 0;display:grid}.content-item--compact{padding:21px 0}.item-meta{flex-direction:column;gap:4px;padding-top:3px;display:flex}.item-body{gap:9px;display:grid}.item-category{color:var(--faint);letter-spacing:.04em;font-size:.68rem}.item-body h3,.project-card h3,.publication-item h3,.skill-list h3,.focus-list h3{font-family:var(--serif);font-size:1.22rem;font-weight:500;line-height:1.4}.item-body p,.project-card p,.publication-item p,.skill-list p,.focus-list p{max-width:var(--reading-width);color:var(--muted)}.item-role{color:var(--muted)}.item-highlights{max-width:var(--reading-width);color:var(--muted);gap:7px;padding-left:18px;line-height:1.65;display:grid}.tag-list{flex-wrap:wrap;gap:6px;list-style:none;display:flex}.tag-list li{border-bottom:1px solid var(--line);color:var(--soft);padding:0 1px 2px;font-size:.76rem;line-height:1.35}.project-card{grid-template-columns:48px minmax(0, var(--reading-width)) auto;border-bottom:1px solid var(--line);gap:24px;padding:28px 0;display:grid}.project-index{color:var(--faint);font-family:Georgia,serif;font-size:.92rem;line-height:1.4}.project-body{gap:10px;display:grid}.project-card__topline{flex-wrap:wrap;gap:8px 18px;display:flex}.project-link,.publication-link{border-bottom:1px solid var(--line);color:var(--muted);white-space:nowrap;align-self:start;font-size:.86rem}.project-link:hover,.publication-link:hover{border-bottom-color:var(--accent)}.publication-item{grid-template-columns:92px minmax(0, var(--reading-width)) auto;border-bottom:1px solid var(--line);gap:28px;padding:28px 0;display:grid}.publication-year{color:var(--accent);font-family:Georgia,serif;font-size:.95rem;line-height:1.4}.publication-body{gap:10px;display:grid}.publication-meta{flex-wrap:wrap;gap:6px 14px;display:flex}.text-link{border-bottom:1px solid var(--accent);color:var(--accent);margin-top:22px;font-size:.92rem;display:inline-flex}.contact-section{border-top:1px solid var(--line);padding-top:46px;padding-bottom:48px}.contact-section .section-title{margin-bottom:22px}.contact-list{max-width:var(--reading-width);flex-wrap:wrap;gap:14px 28px;display:flex}.contact-list a,.contact-list p{gap:2px;min-width:220px;display:grid}.contact-list span{color:var(--soft);font-size:.82rem}.contact-list strong{overflow-wrap:anywhere;color:var(--ink);font-size:.95rem;font-weight:400}.page-intro{max-width:var(--max-width);padding-top:64px;padding-bottom:28px}.page-intro p:last-child{max-width:var(--reading-width);color:var(--muted);margin-top:18px;font-size:1rem}.about-intro{padding-bottom:38px}.prose{max-width:var(--reading-width);color:var(--muted)}.prose p+p{margin-top:12px}.resume-header{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(230px,.42fr);gap:32px;padding-top:64px;padding-bottom:44px;display:grid}.resume-header--single{grid-template-columns:1fr}.resume-header p{max-width:var(--reading-width);color:var(--muted)}.resume-location{margin-top:6px}.resume-contact{color:var(--muted);align-content:end;gap:7px;font-size:.92rem;display:grid}.resume-section{padding-top:38px;padding-bottom:38px}.skill-list,.focus-list{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;max-width:960px;display:grid}.skill-list article,.focus-list article{border-bottom:1px solid var(--line);gap:10px;padding:24px 0;display:grid}.site-footer{border-top:1px solid var(--line);background:#f5f2ee}.footer-inner{max-width:var(--max-width);color:var(--muted);justify-content:space-between;align-items:center;gap:20px;margin:0 auto;padding:22px 28px;font-size:.84rem;display:flex}.footer-name{color:var(--ink);font-family:var(--serif);font-size:.98rem;font-weight:500}.footer-links{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.footer-copy{white-space:nowrap}@media (width<=1024px){:root{--max-width:960px}.site-nav{align-items:flex-start}.brand{min-width:190px}.content-item{grid-template-columns:145px minmax(0,1fr)}}@media (width<=768px){.site-nav,.resume-header,.content-item,.project-card,.publication-item{grid-template-columns:1fr}.site-nav{flex-direction:column;gap:14px}.brand{min-width:0}.nav-links{justify-content:flex-start;gap:8px 16px}.home-hero{padding-top:52px;padding-bottom:50px}.home-hero h1,.page-intro h1,.resume-header h1{font-size:2.55rem}.item-meta,.project-card__topline,.publication-meta{flex-flow:wrap}.publication-meta{flex-direction:column}.project-card,.publication-item{gap:10px}.project-link,.publication-link{justify-self:start}.skill-list,.focus-list{grid-template-columns:1fr}.footer-inner{flex-wrap:wrap;justify-content:flex-start}}@media (width<=520px){.site-nav,.home-hero,.page-intro,.resume-header,.section,.footer-inner{padding-left:20px;padding-right:20px}.site-nav{padding-top:18px;padding-bottom:18px}.brand-subtitle{font-size:.72rem}.nav-links{gap:7px 14px;width:100%;font-size:.86rem}.home-hero h1,.page-intro h1,.resume-header h1{font-size:2.1rem}.hero-headline{font-size:1rem}.section{padding-top:46px;padding-bottom:46px}.section-title h2{font-size:1.52rem}.item-body h3,.project-card h3,.publication-item h3{max-width:16em}.content-item,.project-card,.publication-item{padding:24px 0}.contact-list{gap:14px;display:grid}.contact-list a,.contact-list p{min-width:0}.footer-inner{flex-direction:column;align-items:flex-start}.footer-links{gap:6px;display:grid}}
