@font-face{font-family:Newsreader;src:url('fonts/newsreader.woff2') format('woff2');font-weight:200 800;font-display:swap}
@font-face{font-family:'DM Sans';src:url('fonts/dm-sans.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--paper:#faf8f3;--ink:#45534b;--muted:#69756a;--sage:#98a99b;--clay:#c6927c;--accent:#986452;--line:#dddfd5;--wash:#eee9df;--serif:Newsreader,Georgia,serif;--sans:'DM Sans',sans-serif;--gutter:5.2vw;--ease:cubic-bezier(.16,1,.3,1);color-scheme:light;scroll-behavior:smooth;scroll-padding-top:115px}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin:0}a{color:inherit;text-decoration:none;text-underline-offset:5px}a:hover{color:var(--accent)}button,input{font:inherit}button{color:inherit;background:none;border:0;cursor:pointer;padding:0}button:disabled{opacity:.4;cursor:default}button,a,summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}::selection{background:#e7d0c2;color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:5px}html{scrollbar-color:#a9b4a5 var(--paper)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:10px;left:20px;z-index:50;padding:12px 16px;background:var(--ink);color:var(--paper);transform:translateY(-150%)}.skip-link:focus{transform:none}.skip-link:hover{color:var(--paper)}
.site-header{position:fixed;z-index:12;top:0;left:0;width:100%;padding:28px var(--gutter);display:flex;align-items:center;justify-content:space-between;transition:background .4s,backdrop-filter .4s}.scrolled .site-header{background:#faf8f3ef;backdrop-filter:blur(14px)}.wordmark{font-family:var(--serif);font-size:26px;font-weight:380;letter-spacing:-.025em;white-space:nowrap}.wordmark span{color:var(--muted);font-weight:320}.site-navigation{display:flex;gap:32px;align-items:center;font-size:12px}.site-navigation a{position:relative;padding:9px 0;display:inline-flex;align-items:center;gap:8px}.site-navigation svg{width:13px;height:13px}.site-navigation a::after{content:'';height:1px;position:absolute;left:0;right:0;bottom:4px;background:var(--sage);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}.site-navigation a:hover::after,.site-navigation a[aria-current=page]::after{transform:scaleX(1)}.menu-toggle{display:none}
.experience{height:240svh;position:relative}.stage{position:sticky;top:0;height:100svh;min-height:720px;isolation:isolate;overflow:hidden}.hero-intro{position:absolute;z-index:2;top:135px;left:var(--gutter);right:var(--gutter);text-align:center;pointer-events:none}.hero-intro h1{font-family:var(--serif);font-weight:350;font-size:clamp(42px,4.6vw,68px);letter-spacing:-.035em;line-height:1.07}.hero-intro p{font-size:13px;color:var(--muted);margin-top:14px;letter-spacing:.01em}.scene-container{position:absolute;inset:190px 0 133px;z-index:1}.scene-container canvas{display:block;width:100%;height:100%;touch-action:pan-y}.scene-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.scene-story{position:absolute;left:var(--gutter);bottom:118px;z-index:3;pointer-events:none}.scene-story h2{font-family:var(--serif);font-size:clamp(26px,2.45vw,37px);font-weight:360;line-height:1.15;letter-spacing:-.02em}.chapter-dots{display:flex;gap:7px;width:42px;height:4px;margin-top:16px}.chapter-dots i{position:relative;display:block;flex:0 0 4px;width:4px;height:4px;border-radius:50%;background:#d5dace;transition:transform .6s var(--ease)}.chapter-dots i::before{content:"";position:absolute;inset:0 auto auto 0;width:20px;height:4px;border-radius:2px;background:var(--clay);transform:scaleX(.2);transform-origin:left;opacity:0;transition:transform .6s var(--ease),opacity .3s}.chapter-dots i.active::before{transform:scaleX(1);opacity:1}.chapter-dots i.active~i{transform:translateX(16px)}.scene-console{position:absolute;right:var(--gutter);bottom:110px;z-index:3;width:348px}.lens-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}.lens{font-size:13px;padding:11px 10px 14px;position:relative;white-space:nowrap;transition:color .4s,background .4s}.lens::after{content:'';position:absolute;height:2px;bottom:-1px;left:10px;right:10px;background:var(--clay);transform:scaleX(0);transition:transform .65s var(--ease);transform-origin:left}.lens.is-active::after{transform:scaleX(1)}.lens:hover{color:var(--accent);background:#eee9df70}.scene-tools{display:flex;align-items:center;gap:17px;font-size:11px;color:var(--muted);margin-top:10px}.scene-hint{margin-right:auto;font-size:11px}.scene-tools button{display:inline-flex;align-items:center;gap:4px;min-height:32px;font-size:11px}.scene-tools svg{width:15px;height:15px}.scene-tools button:hover{color:var(--accent)}.play-icon{display:none}#motion-toggle[aria-pressed=true] .play-icon{display:block}#motion-toggle[aria-pressed=true] .pause-icon{display:none}.stage-bottom{position:absolute;bottom:30px;left:var(--gutter);right:var(--gutter);z-index:4;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:20px;font-size:11px;color:var(--muted)}.stage-bottom .hero-read{justify-self:center;display:flex;gap:17px;align-items:center;color:var(--ink);padding:10px 0;font-size:12px}.hero-read svg{width:19px;height:19px;transition:transform .45s var(--ease)}.hero-read:hover svg{transform:translateX(4px)}.scroll-cue,.chapter-next{justify-self:end;display:flex;align-items:center;gap:15px;font-size:11px}.scroll-cue svg,.chapter-next svg{width:17px;height:17px}.chapter-next{min-height:40px}.scene-progress{position:absolute;bottom:0;left:0;right:0;height:2px;background:#e9e9df}.scene-progress span{display:block;height:100%;width:100%;background:var(--sage);transform:scaleX(0);transform-origin:left}.ready .hero-intro{animation:soft-arrive 1.6s var(--ease) both}@keyframes soft-arrive{from{opacity:.4;transform:translateY(9px)}to{opacity:1;transform:none}}
[data-layout=pages] .experience{height:100svh;min-height:720px}[data-layout=pages] .stage{position:relative}[data-layout=pages] .scene-progress{display:none}[data-page=home][data-layout=pages]>.site-footer{display:none}.scene-unavailable .experience{height:100svh;min-height:720px}.scene-unavailable .stage{position:relative}.scene-unavailable .scene-console,.scene-unavailable .chapter-dots,.scene-unavailable .chapter-next,.scene-unavailable .scroll-cue,.scene-unavailable .scene-progress{display:none}.scene-unavailable .scene-container canvas{visibility:hidden}
.content-section,.page-content{max-width:1290px;margin:0 auto;padding:95px var(--gutter)}.content-section{border-top:1px solid var(--line)}.section-heading{margin-bottom:40px;display:flex;justify-content:space-between;gap:45px;align-items:end}.section-heading h2,.content-section>h2{font-family:var(--serif);font-size:clamp(38px,4vw,58px);font-weight:360;letter-spacing:-.03em;line-height:1.1}.section-heading p,.section-intro{font-size:14px;color:var(--muted);line-height:1.7;max-width:380px}.section-heading p:empty{display:none}.research-list,.research-rows{border-top:1px solid var(--line)}.research-row{border-bottom:1px solid var(--line)}.research-summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:30px;cursor:pointer;padding:22px 0}.research-summary::-webkit-details-marker{display:none}.research-summary h3{font-family:var(--serif);font-size:29px;font-weight:390;line-height:1.2;letter-spacing:-.025em}.research-summary p{font-size:14px;color:var(--muted);line-height:1.65;max-width:650px;margin-top:9px}.research-summary>svg,.research-toggle svg{width:19px;height:19px;flex-shrink:0;transition:transform .4s}.research-row[open] .research-summary>svg,.research-row[open] .research-toggle svg{transform:rotate(45deg)}.research-summary:hover h3{color:var(--accent)}.research-description{padding:0 50px 24px 0;max-width:720px;color:var(--muted);font-size:14px;line-height:1.75}.research-description p+p{margin-top:14px}.research-description .text-link,.research-description a{display:inline-flex;align-items:center;gap:18px;color:var(--ink);font-size:12px;margin-top:15px;border-bottom:1px solid var(--line);padding-bottom:3px}.research-description a svg{width:16px;height:16px}.research-detail-meta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:15px;font-size:11px;margin-top:18px}.status-note,.research-status{font-size:11px;color:var(--accent)}.text-link{display:inline-flex;gap:20px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:5px;font-size:12px}.text-link svg{width:17px;height:17px}.text-link:hover{border-color:var(--accent)}
.publication-tools{margin:26px 0 20px;display:flex;flex-wrap:wrap;gap:16px 30px;align-items:center;justify-content:space-between}.paper-filters{display:flex;gap:25px;align-items:center}.paper-filter{font-size:12px;color:var(--muted);border-bottom:1px solid transparent;padding:10px 0;min-height:38px}.paper-filter.is-active,.paper-filter[aria-pressed=true]{color:var(--ink);border-color:var(--clay)}.paper-filter:hover{color:var(--accent)}.paper-count{font-size:11px;color:var(--muted)}.publication-list,.paper-list{border-top:1px solid var(--line)}.paper{display:grid;grid-template-columns:1fr 26px;gap:28px;padding:27px 0;border-bottom:1px solid var(--line);scroll-margin-top:110px}.publication-year{font-family:var(--sans);font-weight:400;font-size:12px;font-variant-numeric:tabular-nums}.publication-body h3{font-family:var(--serif);font-size:27px;line-height:1.2;letter-spacing:-.012em;font-weight:390;max-width:68ch}.publication-category{font-size:11px;color:var(--muted);margin-top:12px}.publication-authors,.publication-source{font-size:12px;color:var(--muted);line-height:1.65;margin-top:4px;max-width:83ch}.publication-authors{margin-top:10px}.publication-authors strong{color:var(--ink);font-weight:500}.publication-source cite{font-style:normal}.publication-index svg{width:20px;height:20px}.publication-index{color:var(--sage)}.section-tail{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-top:26px}.section-note{font-size:11px;color:var(--muted)}
.page-content{padding-top:170px;min-height:calc(100svh - 90px)}.page-intro{margin-bottom:66px;max-width:760px}.page-intro h1{font-family:var(--serif);font-size:clamp(50px,6vw,82px);line-height:1.02;font-weight:350;letter-spacing:-.035em;margin-bottom:20px}.page-intro p{font-size:17px;line-height:1.7;max-width:530px;color:var(--muted)}.page-content>.content-section{padding:0;border-top:0}.page-content .research-summary{padding:30px 0}.page-content .research-summary h3{font-size:34px}.page-content .research-description{padding-bottom:32px}.paper-search{display:flex;flex-direction:column;gap:8px;min-width:270px;font-size:11px;color:var(--muted);margin-bottom:4px}.paper-search input,#paper-search{width:100%;font-family:var(--sans);font-size:14px;background:transparent;color:var(--ink);border:0;border-bottom:1px solid #b6c0b3;border-radius:0;padding:12px 0;outline-offset:4px;caret-color:var(--accent)}input::placeholder{color:var(--muted);opacity:1}.paper-pagination{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:32px;font-size:12px;color:var(--muted)}.paper-pagination button{display:flex;align-items:center;gap:12px;min-height:44px}.paper-pagination svg{width:17px;height:17px}.paper-pagination button:not(:disabled):hover{color:var(--accent)}.papers-empty{padding:32px 0;border-bottom:1px solid var(--line);font-size:15px;color:var(--muted)}
.about-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:90px}.about-statement{font-size:14px;line-height:1.8;max-width:60ch}.about-statement p+p{margin-top:17px}.about-lead{font-family:var(--serif);font-size:29px;line-height:1.35;font-weight:360;letter-spacing:-.015em;margin-bottom:22px}.about-statement .text-link{margin-top:22px}.name-zh{font-family:'Songti SC','Noto Serif SC',serif;font-size:.65em;font-weight:400}.record-label{font-size:12px;font-weight:500;margin:0 0 18px}.academic-timeline{margin:0}.timeline-row{display:grid;grid-template-columns:90px 1fr;gap:16px;border-top:1px solid var(--line);padding:13px 0}.timeline-row dt{font-size:11px;color:var(--muted)}.timeline-row dd{margin:0;font-size:13px;line-height:1.5}.timeline-row strong{font-weight:450}.timeline-row dd span{display:block;color:var(--muted);font-size:12px;margin-top:4px}.funding-record{margin-top:26px}.funding-record p{font-size:13px;line-height:1.6;border-top:1px solid var(--line);padding:13px 0}.funding-record strong{display:block;font-weight:450}.funding-record span{display:block;font-size:12px;color:var(--muted)}.funding-record .funding-status{font-size:11px;color:var(--accent);margin-top:5px}.contact-section{background:#eeeae1;max-width:none;padding:65px var(--gutter)}.contact-section h2{font-size:42px}.contact-email{display:flex;align-items:center;gap:25px;width:fit-content;font-family:var(--serif);font-size:clamp(25px,3vw,40px);font-weight:350;line-height:1.3;border-bottom:1px solid #b7c0b3;padding-bottom:10px;margin-top:24px}.contact-email svg{width:24px;height:24px}.contact-section p{font-size:13px;color:var(--muted);margin-top:15px}.page-content .contact-section{padding:40px 0 0;background:transparent;border-top:1px solid var(--line);margin-top:50px}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:24px var(--gutter);font-size:11px;color:var(--muted);border-top:1px solid var(--line)}.site-footer svg{width:13px;height:13px}.site-footer a{display:flex;align-items:center;gap:8px}
.comparison{font-family:var(--sans)}.compare-header{padding:30px var(--gutter);display:flex;justify-content:space-between;font-size:13px;border-bottom:1px solid var(--line)}.compare-header a{display:flex;align-items:center;gap:13px}.compare-header svg{width:18px;height:18px}.compare-main{padding:65px var(--gutter) 90px;max-width:1540px;margin:auto}.compare-main>h1{font-family:var(--sans);font-size:clamp(34px,4vw,56px);font-weight:400;letter-spacing:-.025em;line-height:1.35}.compare-intro{font-size:15px;color:var(--muted);line-height:1.9;margin-top:22px}.compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:42px;margin-top:50px}.compare-preview{display:block;aspect-ratio:1.5;background:var(--wash);overflow:hidden}.compare-preview img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}.compare-preview:hover img{transform:scale(1.025)}.compare-grid h2{font-size:26px;font-weight:400;margin:25px 0 12px}.compare-grid p{font-size:14px;color:var(--muted);max-width:44ch;line-height:1.9}.compare-link{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);margin-top:24px;padding:14px 0;font-size:14px}.compare-page-links{display:flex;gap:25px;font-size:12px;margin-top:18px;color:var(--muted)}.compare-recommendation{font-size:14px;color:var(--muted);line-height:1.9;border-top:1px solid var(--line);margin-top:60px;padding-top:25px}
@media(min-width:1700px){:root{--gutter:max(5.2vw,calc((100vw - 1600px)/2))}}
@media(max-width:1100px){.hero-intro{top:130px}.scene-console{width:310px}.lens{font-size:12px;padding-left:5px;padding-right:5px}.scene-story h2{font-size:29px}.scene-story{max-width:340px}.about-grid{gap:50px}.content-section,.page-content{padding-left:var(--gutter);padding-right:var(--gutter)}}
@media(min-width:741px) and (max-height:790px){.stage,[data-layout=pages] .experience,.scene-unavailable .experience{min-height:660px}.hero-intro{top:109px}.hero-intro h1{font-size:47px}.hero-intro p{margin-top:10px;font-size:12px}.scene-container{inset:140px 0 125px}.scene-story{bottom:110px}.scene-console{bottom:95px}.stage-bottom{bottom:20px}}
@media(max-width:740px){:root{--gutter:24px;scroll-padding-top:95px}.site-header{padding:22px var(--gutter)}.wordmark{font-size:23px}.menu-toggle{display:flex;align-items:center;gap:8px;font-size:12px;min-height:36px}.menu-toggle svg{width:18px;height:18px}.site-navigation{display:none;position:absolute;top:73px;left:0;right:0;padding:18px 24px 24px;background:var(--paper);border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:12px 24px;font-size:16px}.site-navigation.is-open{display:grid}.site-navigation a{min-height:40px}.experience{height:220svh}.stage,[data-layout=pages] .experience,.scene-unavailable .experience{min-height:750px}.hero-intro{top:120px}.hero-intro h1{font-size:44px}.hero-intro p{font-size:12px;line-height:1.65;max-width:280px;margin:13px auto 0}.scene-container{inset:210px -10% 210px}.scene-story{left:24px;right:24px;bottom:210px;text-align:center;max-width:none}.scene-story h2{font-size:29px}.chapter-dots{margin:13px auto 0}.scene-console{left:24px;right:24px;bottom:95px;width:auto}.lens{font-size:12px;padding:12px 7px;min-height:43px}.scene-tools{margin-top:7px;gap:16px}.scene-tools button{min-height:40px}.stage-bottom{grid-template-columns:1fr auto;left:24px;right:24px;bottom:20px;gap:5px 12px}.stage-bottom #scene-note{font-size:11px;grid-column:1;grid-row:2}.stage-bottom .hero-read{justify-self:start;grid-column:1;grid-row:1;font-size:12px;padding:5px 0;gap:13px}.scroll-cue,.chapter-next{grid-column:2;grid-row:1 / span 2;font-size:11px;gap:6px}.scroll-cue{max-width:86px;line-height:1.5}.chapter-next{max-width:112px;line-height:1.5;text-align:right}.scene-unavailable .scene-story{bottom:100px}.content-section{padding:64px 24px}.section-heading{display:block;margin-bottom:27px}.section-heading h2,.content-section>h2{font-size:40px}.section-heading p{font-size:14px;margin-top:16px}.research-summary{padding:21px 0;gap:18px}.research-summary h3{font-size:27px}.research-summary p{font-size:13px}.research-description{font-size:13px;line-height:1.75;padding-right:25px}.research-detail-meta{font-size:11px}.publication-tools{display:block;margin-top:24px}.paper-filters{gap:21px;justify-content:space-between}.paper-filter{font-size:12px;min-height:44px}.paper-count{margin-top:12px}.paper{grid-template-columns:1fr 22px;gap:0 16px;padding:24px 0}.publication-year{font-size:12px}.publication-body{grid-column:1;grid-row:1}.publication-body h3{font-size:24px;line-height:1.22}.publication-index{grid-column:2;grid-row:1}.publication-authors,.publication-source{font-size:12px}.publication-category{font-size:11px;margin-top:12px}.section-tail{align-items:start;flex-direction:column;gap:18px}.section-note{font-size:11px}.about-grid{display:block}.about-statement{font-size:14px}.about-lead{font-size:27px}.about-record{margin-top:35px}.record-label{font-size:12px}.timeline-row{grid-template-columns:81px 1fr;gap:13px}.contact-section{padding:45px 24px}.contact-section h2{font-size:36px}.contact-email{font-size:27px;gap:14px;margin-top:20px}.site-footer{padding:23px 24px;gap:14px;flex-wrap:wrap;font-size:11px}.site-footer>span{margin-left:auto}.site-footer>a{flex-basis:100%}.page-content{padding:135px 24px 65px}.page-intro{margin-bottom:42px}.page-intro h1{font-size:56px}.page-intro p{font-size:16px;max-width:320px}.page-content .research-summary h3{font-size:29px}.page-content .research-summary{padding:24px 0}.page-content .research-description{padding-bottom:25px}.paper-search{min-width:0;width:100%;margin-bottom:22px}.paper-pagination{font-size:12px;margin-top:23px}.compare-header{padding:24px;font-size:11px;gap:20px}.compare-header>a:last-child{gap:5px}.compare-main{padding:45px 24px 65px}.compare-main>h1{font-size:35px;line-height:1.4}.compare-intro{font-size:14px;margin-top:19px}.compare-grid{display:block;margin-top:35px}.compare-grid article+article{margin-top:49px}.compare-grid h2{font-size:25px;margin-top:22px}.compare-grid p{font-size:14px}.compare-recommendation{margin-top:40px;font-size:13px}}
@media(max-width:740px) and (max-height:760px){.stage,[data-layout=pages] .experience,.scene-unavailable .experience{min-height:650px}.hero-intro{top:100px}.hero-intro h1{font-size:39px}.hero-intro p{margin-top:10px}.scene-container{inset:178px -13% 203px}.scene-story{bottom:200px}.scene-story h2{font-size:27px}.scene-console{bottom:85px}.stage-bottom{bottom:15px}.hero-read{font-size:11px}}
@media(max-width:360px){:root{--gutter:20px}.site-header{padding-left:20px;padding-right:20px}.wordmark{font-size:21px}.hero-intro h1{font-size:37px}.scene-story,.scene-console{left:20px;right:20px}.scene-story h2{font-size:25px}.stage-bottom{left:20px;right:20px}.scene-hint{max-width:125px}.content-section,.page-content{padding-left:20px;padding-right:20px}.contact-email{font-size:23px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.experience{height:100svh}.stage{position:relative}.scroll-cue{display:none}}
@media print{.site-header{position:static}.scene-tools,.lens-controls,.scene-progress,.scroll-cue,.chapter-next,.scene-container,.chapter-dots{display:none}.experience,[data-layout=pages] .experience{height:auto;min-height:0}.stage{height:auto;min-height:0;position:static;padding:35px 24px}.hero-intro,.scene-story{position:static}.scene-story{margin-top:25px}.stage-bottom{position:static;margin-top:25px}.hero-intro h1{font-size:40px}.content-section,.page-content{padding:35px 24px}.site-navigation,.menu-toggle{display:none}.paper{break-inside:avoid}.site-footer{padding:20px 24px}}
/* Keep native navigation, with a brief dissolve and an honest waiting indicator. */
@view-transition{navigation:auto}
::view-transition-old(root){animation:site-page-out .14s ease-out both}
::view-transition-new(root){animation:site-page-in .2s ease-out both}
.site-route-progress{position:fixed;z-index:100;left:0;top:0;width:100%;height:2px;background:var(--sage);transform:scaleX(0);transform-origin:left;opacity:0;pointer-events:none}
.site-navigating .site-route-progress{opacity:1;animation:site-route-wait 4s cubic-bezier(.16,1,.3,1) forwards}
@keyframes site-route-wait{from{transform:scaleX(.08)}to{transform:scaleX(.88)}}
@keyframes site-page-out{to{opacity:0}}
@keyframes site-page-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}.site-navigating .site-route-progress{animation:none;transform:scaleX(1)}}
