@font-face{font-family:dfdk_mini;src:url(/fonts/dfdk/mini/Alimama_DongFangDaKai_Regular.woff)format('woff');font-display:swap}@font-face{font-family:daoli_mini;src:url(/fonts/daoli/mini/AlimamaDaoLiTi.woff)format('woff');font-display:swap}@font-face{font-family:dfdk;src:url(/fonts/dfdk/Alimama_DongFangDaKai_Regular.woff2)format('woff2');font-display:swap}@font-face{font-family:daoli;src:url(/fonts/daoli/AlimamaDaoLiTi.woff2)format('woff2');font-display:swap}:root{--cv-ink:#243447;--cv-muted:#586b7d;--cv-accent:#284f7a;--cv-soft:#edf3f8;--cv-paper:#fff;--cv-wash:#f7f9fb;--cv-line:#dce5ed;--cv-font:'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;--cv-xs:.75rem;--cv-sm:.875rem;--cv-body:1rem;--cv-intro:1.125rem;--cv-title:1.25rem;--cv-s1:.25rem;--cv-s2:.5rem;--cv-s3:.75rem;--cv-s4:1rem;--cv-s6:1.5rem;--cv-s8:2rem;--cv-s12:3rem;--cv-s16:4rem;--cv-s20:5rem;--cv-radius:.75rem;--cv-max:70rem;--cv-ease:cubic-bezier(.2,.65,.3,1)}.dark{--cv-ink:#e5edf5;--cv-muted:#afc0d1;--cv-accent:#aecff0;--cv-soft:#23374a;--cv-paper:#142231;--cv-wash:#101b27;--cv-line:#33485c}html{scroll-behavior:smooth;scroll-padding-top:6rem}body{font-family:var(--cv-font);color:var(--cv-ink);background:var(--cv-paper)}h1,h2,h3,h4,.navbar{font-family:var(--cv-font)}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--cv-accent);outline-offset:4px;border-radius:var(--cv-s1)}::selection{background:var(--cv-soft);color:var(--cv-accent)}.cv-container{width:min(var(--cv-max),calc(100% - 3rem));margin-inline:auto}.page-header{border-bottom:1px solid var(--cv-line);box-shadow:none;background:var(--cv-paper)}.navbar{max-width:76rem;margin-inline:auto;min-height:3rem;font-size:var(--cv-sm)}.navbar-brand{font-weight:650;letter-spacing:-.04em}.navbar .nav-link{font-weight:500}.navbar a{color:var(--cv-ink)}.navbar a:hover{color:var(--cv-accent)}#about{padding:0;background:var(--cv-paper)}#about::after{content:'';position:absolute;inset:auto 0 0;height:8rem;background:url(/img/mountains.png)50% 100%/auto 100% repeat-x;opacity:.2;pointer-events:none;z-index:-1}.dark #about::after{opacity:.09;filter:invert(1)}.cv-hero{display:grid;grid-template-columns:15rem minmax(0,1fr);gap:var(--cv-s16);padding-block:var(--cv-s12)var(--cv-s20)}.cv-profile{text-align:center;padding-top:var(--cv-s4)}.cv-avatar{display:block;width:14rem;height:14rem;border-radius:50%;margin-inline:auto;border:6px solid var(--cv-paper);box-shadow:0 0 0 1px color-mix(in srgb,var(--cv-accent) 16%,transparent),0 0 72px 8px color-mix(in srgb,var(--cv-accent) 7%,transparent),0 18px 44px -18px color-mix(in srgb,var(--cv-accent) 34%,transparent)}.cv-affiliation{margin-top:var(--cv-s6);font-size:var(--cv-intro);font-weight:600}.cv-affiliation a,.cv-role a{color:var(--cv-accent)}.cv-role{font-size:var(--cv-sm);color:var(--cv-muted);line-height:1.7;margin-top:var(--cv-s2)}.cv-social{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--cv-s1);margin-top:var(--cv-s6)}.cv-social a{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--cv-line);border-radius:50%;color:var(--cv-accent);transition:transform 200ms var(--cv-ease)}.cv-social a:hover{transform:translateY(-3px);background:var(--cv-soft)}.cv-social svg{width:20px;height:20px}.cv-eyebrow{color:var(--cv-muted);font-size:var(--cv-xs);font-weight:600;letter-spacing:.12em;text-transform:uppercase;margin:0 0 var(--cv-s4)}.cv-name{font-family:Georgia,times new roman,serif;font-size:clamp(2.75rem,4.6vw,3.75rem);font-weight:400;letter-spacing:-.045em;line-height:1.2;margin:0 0 var(--cv-s6);color:var(--cv-ink)}.cv-name span{font-family:dfdk_mini,songti sc,serif;white-space:nowrap;font-size:.82em;letter-spacing:.02em;margin-left:var(--cv-s3)}.cv-bio{font-size:var(--cv-intro);line-height:1.85;color:var(--cv-ink);max-width:78ch}.cv-bio p{text-align:left!important;margin:0}.cv-bio a{color:var(--cv-accent);text-decoration:underline;text-decoration-color:var(--cv-line);text-underline-offset:4px}.cv-research-link{display:inline-flex;align-items:center;gap:var(--cv-s3);color:var(--cv-accent);font-size:var(--cv-sm);font-weight:650;padding-block:var(--cv-s3);margin-top:var(--cv-s3)}.cv-research-link span{display:inline-block;transition:transform 200ms var(--cv-ease)}.cv-research-link:hover span{transform:translate(3px,-3px)}.cv-background{display:grid;grid-template-columns:1fr 1.6fr;gap:var(--cv-s8);margin-top:var(--cv-s6);padding-top:var(--cv-s6);border-top:1px solid var(--cv-line)}.cv-small-heading{font-size:var(--cv-sm);font-weight:650;margin:0 0 var(--cv-s3);color:var(--cv-ink)}.cv-interests{display:flex;flex-wrap:wrap;align-content:start;gap:var(--cv-s2);list-style:none;margin:0;padding:0}.cv-interests li{font-size:var(--cv-xs);padding:var(--cv-s1)var(--cv-s3);background:var(--cv-soft);color:var(--cv-accent);border-radius:var(--cv-s1);line-height:1.7}.cv-education{list-style:none;padding:0;margin:0}.cv-education li{margin-bottom:var(--cv-s3);padding-left:var(--cv-s4);border-left:2px solid var(--cv-line)}.cv-degree{font-size:var(--cv-sm);line-height:1.5;font-weight:500}.cv-school{color:var(--cv-muted);font-size:var(--cv-xs);line-height:1.8}.cv-school span{display:inline-block;margin-left:var(--cv-s2);font-variant-numeric:tabular-nums}#featured,#allpub,#posts,#section-resume-experience{padding-block:var(--cv-s20)}#featured,#posts{background:var(--cv-wash)}#allpub,#section-resume-experience{background:var(--cv-paper)}:is(#featured,#allpub,#posts)>.flex.max-w-prose{align-items:flex-start;max-width:var(--cv-max);padding:0;width:calc(100% - 3rem);margin:0 auto var(--cv-s8)}:is(#featured,#allpub,#posts)>.flex.max-w-prose>div{font-family:var(--cv-font);font-size:clamp(1.75rem,3vw,2.25rem);line-height:1.3;font-weight:600;letter-spacing:-.035em;margin:0;color:var(--cv-ink)}:is(#featured,#allpub,#posts)>.flex:not(.max-w-prose){padding-inline:var(--cv-s6)}.cv-research-toolbar{width:100%;max-width:var(--cv-max);display:flex;justify-content:space-between;align-items:center;gap:var(--cv-s4);margin-bottom:var(--cv-s4);color:var(--cv-muted);font-size:var(--cv-sm)}.cv-motion-button{min-height:44px;padding:var(--cv-s2)var(--cv-s4);color:var(--cv-accent);font-size:var(--cv-xs);border:1px solid var(--cv-line);border-radius:var(--cv-s2);cursor:pointer;background:var(--cv-paper)}.cv-motion-button:hover{background:var(--cv-soft)}.cv-paper-list,.cv-citation-list{width:100%;max-width:var(--cv-max)}.cv-paper{display:grid;grid-template-columns:15rem minmax(0,1fr);gap:var(--cv-s8);padding-block:var(--cv-s8);border-top:1px solid var(--cv-line);align-items:center}.cv-paper-image{display:block;overflow:hidden;border-radius:var(--cv-s2);aspect-ratio:16/10;background:var(--cv-paper);border:1px solid var(--cv-line)}.cv-paper-image img{width:100%;height:100%;object-fit:contain;transition:transform 200ms var(--cv-ease)}.cv-paper:has(a:hover) .cv-paper-image img{transform:scale(1.025)}.cv-paper-body{min-width:0}.cv-venue{font-size:var(--cv-xs);color:var(--cv-accent);font-weight:600;line-height:1.6;margin-bottom:var(--cv-s2)}.cv-venue p{margin:0}.cv-venue em{font-style:normal}.cv-venue small{font-size:inherit;font-weight:400;color:var(--cv-muted)}.cv-paper-title{font-size:var(--cv-title);font-weight:600;line-height:1.45;margin:0 0 var(--cv-s3);letter-spacing:-.015em;text-wrap:pretty}.cv-paper-title a,.cv-citation h3 a{color:var(--cv-ink);text-decoration:none}.cv-paper-title a:hover,.cv-citation h3 a:hover{color:var(--cv-accent);text-decoration:underline;text-underline-offset:4px}.cv-authors{font-size:var(--cv-sm);color:var(--cv-muted);line-height:1.75}.cv-authors a{color:inherit}.cv-authors a:hover{color:var(--cv-accent);text-decoration:underline}.cv-authors .author-highlighted{font-weight:650;color:var(--cv-ink)}.cv-paper-links{display:flex;align-items:center;flex-wrap:wrap;gap:var(--cv-s2);margin-top:var(--cv-s3)}.cv-paper-links:empty{display:none}.cv-paper-links .hb-attachment-link{margin:0;min-height:32px;padding:var(--cv-s1)var(--cv-s2);font-size:var(--cv-xs);border:1px solid var(--cv-line);border-radius:var(--cv-s1);color:var(--cv-accent);background:var(--cv-paper);box-shadow:none}.cv-paper-links .hb-attachment-link:hover{background:var(--cv-soft)}.hb-attachment-link{display:inline-flex;align-items:center;justify-content:center;gap:var(--cv-s1);line-height:1;vertical-align:middle}.hb-attachment-link>svg{display:block;flex:0 0 1em;width:1em;height:1em}.cv-citation{display:grid;grid-template-columns:4rem minmax(0,1fr);gap:var(--cv-s6);border-top:1px solid var(--cv-line);padding-block:var(--cv-s6)}.cv-citation-year{font-size:var(--cv-sm);color:var(--cv-muted);padding-top:var(--cv-s1);font-variant-numeric:tabular-nums}.cv-citation h3{font-size:var(--cv-body);font-weight:600;line-height:1.6;margin:0 0 var(--cv-s2)}.cv-citation .cv-venue{margin-bottom:var(--cv-s1)}.cv-section-heading{margin-bottom:var(--cv-s12)}.cv-section-heading h2{font-size:clamp(1.75rem,3vw,2.25rem);letter-spacing:-.035em;font-weight:600;line-height:1.3}.cv-section-heading .cv-eyebrow{margin-bottom:var(--cv-s3)}.cv-timeline{list-style:none;margin:0;padding:0}.cv-experience-item{display:grid;grid-template-columns:15rem minmax(0,1fr);gap:var(--cv-s8)}.cv-dates{padding-top:var(--cv-s1);color:var(--cv-muted);font-size:var(--cv-sm);font-variant-numeric:tabular-nums}.cv-job{position:relative;padding:0 0 var(--cv-s12)var(--cv-s8);border-left:1px solid var(--cv-line)}.cv-job::before{content:'';position:absolute;left:-5px;top:var(--cv-s2);width:9px;height:9px;background:var(--cv-accent);border-radius:50%;box-shadow:0 0 0 5px var(--cv-paper)}.cv-job-heading{display:flex;align-items:flex-start;gap:var(--cv-s4)}.cv-job-heading img{flex:0 0 40px;object-fit:contain}.cv-job h3{font-size:var(--cv-intro);font-weight:600;line-height:1.5;margin:0 0 var(--cv-s1)}.cv-job-heading a{font-size:var(--cv-sm);color:var(--cv-accent)}.cv-location{display:inline-block;color:var(--cv-muted);font-size:var(--cv-xs);margin-left:var(--cv-s3)}.cv-job-description{margin-top:var(--cv-s4);font-size:var(--cv-sm);color:var(--cv-muted);line-height:1.85}.cv-job-description ul{padding-left:var(--cv-s4);list-style:disc}.cv-job-description p{margin-bottom:var(--cv-s2)}.cv-job-description a{color:var(--cv-accent)}.cv-project{grid-template-columns:20rem minmax(0,1fr);align-items:start}.cv-project .cv-paper-image{aspect-ratio:4/3}.cv-project-summary{font-size:var(--cv-sm);line-height:1.8;color:var(--cv-muted)}.page-footer{border-top:1px solid var(--cv-line);background:var(--cv-paper)}.page-footer p{font-size:var(--cv-xs);color:var(--cv-muted)}.page-footer [style*='350px']{max-width:100%}@media(max-width:1023px){.cv-hero{grid-template-columns:12rem minmax(0,1fr);gap:var(--cv-s8)}.cv-avatar{width:12rem;height:12rem}.cv-background{grid-template-columns:1fr;gap:var(--cv-s6)}.cv-paper,.cv-project{grid-template-columns:12.5rem minmax(0,1fr);gap:var(--cv-s6)}.cv-experience-item{grid-template-columns:11rem minmax(0,1fr)}}@media(max-width:767px){.cv-container{width:calc(100% - 2.5rem)}.cv-hero{grid-template-columns:1fr;gap:var(--cv-s8);padding-top:var(--cv-s8);padding-bottom:var(--cv-s20)}.cv-profile{padding-top:0}.cv-avatar{width:11rem;height:11rem}.cv-affiliation{margin-top:var(--cv-s4)}.cv-role{max-width:20rem;margin-inline:auto}.cv-social{margin-top:var(--cv-s4)}.cv-intro .cv-eyebrow,.cv-name{text-align:center}.cv-name{font-size:2.75rem;margin-bottom:var(--cv-s4)}.cv-name span{margin-left:var(--cv-s2)}.cv-bio{font-size:var(--cv-body);line-height:1.85}.cv-eyebrow{font-size:var(--cv-xs);letter-spacing:.08em}.cv-background{margin-top:var(--cv-s6);padding-top:var(--cv-s6)}.cv-school span{display:inline-block;margin-left:var(--cv-s2)}#featured,#allpub,#posts,#section-resume-experience{padding-block:var(--cv-s12)}:is(#featured,#allpub,#posts)>.flex.max-w-prose{width:calc(100% - 2.5rem);margin-bottom:var(--cv-s6)}:is(#featured,#allpub,#posts)>.flex:not(.max-w-prose){padding-inline:var(--cv-title)}.cv-research-toolbar{font-size:var(--cv-xs)}.cv-motion-button{white-space:nowrap;padding-inline:var(--cv-s3)}.cv-paper,.cv-project{grid-template-columns:1fr;gap:var(--cv-s6);padding-block:var(--cv-s6)}.cv-paper-image{width:100%}.cv-paper-title{font-size:var(--cv-intro)}.cv-citation{grid-template-columns:2.5rem minmax(0,1fr);gap:var(--cv-s3)}.cv-experience-item{grid-template-columns:1fr;gap:var(--cv-s4)}.cv-dates{padding-left:var(--cv-s8)}.cv-job{padding-bottom:var(--cv-s8)}.cv-location{display:block;margin:var(--cv-s1)0 0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cv-social a,.cv-research-link span,.cv-paper-image img{transition:none;transform:none!important}}html.cv-motion-paused{scroll-behavior:auto}.cv-motion-paused .cv-paper-image img{transition:none;transform:none!important}@media print{.cv-social,.cv-motion-button,.cv-research-link{display:none}.cv-hero{padding-block:var(--cv-s6)}#about::after{display:none}.cv-paper,.cv-experience-item{break-inside:avoid}}.cv-education li:last-child{margin-bottom:0}.cv-intro:lang(zh) .cv-bio{line-height:1.95}@media(max-width:479px){.navbar [data-hb-language-chooser] span{display:none}.navbar [data-hb-language-chooser]{min-width:44px;min-height:44px}.navbar label[for=nav-toggle]{min-width:32px;min-height:44px;justify-content:center}}.navbar label[for=nav-toggle]:focus-visible{outline:2px solid var(--cv-accent);outline-offset:4px;border-radius:var(--cv-s1)}.article-cover{max-width:var(--cv-max);margin:var(--cv-s6)auto 0;border-radius:var(--cv-radius);background:var(--cv-wash);overflow:hidden}.article-cover img{object-fit:contain;padding:var(--cv-s4)}.article-cover [style*=mask-image]{mask-image:none!important;-webkit-mask-image:none!important}.article-cover .bg-gradient-to-b{background:0 0}@media(max-width:767px){.article-cover{width:calc(100% - 2.5rem);height:240px!important}}