:root{color-scheme:light;--ink:#192f3b;--muted:#697775;--line:#d9ddd5;--accent:#2b685e;--paper:#f8f7f2;--soft:#efefe8;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;scroll-behavior:smooth;scroll-padding-top:36px}
*{box-sizing:border-box}body{margin:0;font-size:16px;line-height:1.8}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button:disabled{cursor:default}[hidden]{display:none!important}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:6px}h1,h2,h3,h4,p,figure{margin:0}h1,h2{font-family:Georgia,"Songti SC","STSong",serif;font-weight:500}h2{font-size:clamp(2rem,3.4vw,3rem);line-height:1.45}p{overflow-wrap:anywhere}.container{max-width:1240px;width:calc(100% - 112px);margin-inline:auto}.muted{color:var(--muted);font-size:.88rem}.eyebrow{font-size:.66rem;font-weight:600;letter-spacing:.2em;color:var(--accent);margin-bottom:24px}.site-header .container{border-bottom:1px solid var(--line)}.header-inner{display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:98px}.brand{display:flex;align-items:center;gap:13px;font-weight:600;letter-spacing:.05em}.brand-mark{font:2.1rem Georgia,serif;color:var(--accent)}.brand-caption{font-size:.58rem;letter-spacing:.15em;color:var(--muted);border-left:1px solid var(--line);padding-left:15px;margin-left:8px;font-weight:400}.site-header nav{display:flex;gap:32px;font-size:.8rem}.site-header nav a{padding:9px 0}.site-header nav a:hover,.text-link:hover{color:var(--accent)}
.hero{display:grid;grid-template-columns:.9fr 1.1fr;gap:76px;align-items:center;padding-block:100px 112px}.intro h1{font-size:clamp(4rem,6.2vw,6rem);line-height:1.15;letter-spacing:.12em;margin-left:-.04em}.affiliation{margin-top:26px;font-size:.88rem;line-height:1.9;max-width:360px}.bio{margin-top:30px;color:var(--muted);max-width:440px;line-height:2.1;font-size:.94rem;white-space:pre-line}.interests{display:flex;flex-wrap:wrap;gap:8px 17px;margin-top:24px}.interest{font-size:.72rem;color:var(--accent);padding-block:3px;border-bottom:1px solid #b6c8bc}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:25px;margin-top:38px}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:48px;padding:11px 23px;font-size:.8rem;border:1px solid var(--ink);border-radius:2px;transition:background .2s,color .2s}.primary{background:var(--ink);color:var(--paper)}.primary:hover{background:var(--accent);border-color:var(--accent)}.secondary:hover{background:var(--soft)}.text-link{font-size:.8rem;border-bottom:1px solid var(--line);padding-block:8px}
.math-figure{background:#10242a;color:#e6e8de;position:relative;padding:26px 30px 30px;box-shadow:18px 18px 0 #e8ebe2}.figure-label{display:flex;justify-content:space-between;gap:12px;font-size:.57rem;letter-spacing:.17em;color:#a4b5aa}.math-figure>img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:contain;margin-block:28px 22px;background:#000}.math-figure figcaption{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;border-top:1px solid #ffffff23;padding-top:24px}.math-figure figcaption>span{font:500 clamp(1.3rem,2vw,1.8rem)/1.7 Georgia,"Songti SC",serif;letter-spacing:.04em}.math-figure figcaption a{font-size:.72rem;white-space:nowrap;color:#c4d5c8}.math-figure figcaption a span{font-size:1.3rem;margin-left:14px}
.video-section{background:var(--soft);padding-block:88px 96px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:44px}.section-heading .eyebrow{margin-bottom:14px}.section-heading>p{color:var(--muted);font-size:.85rem;line-height:1.95;padding-bottom:7px}.section-note{font-size:.875rem;color:var(--muted)}.video-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:42px 28px}.video-card{display:flex;flex-direction:column;min-width:0}.video-cover{aspect-ratio:16/9;position:relative;display:grid;place-items:center;overflow:hidden;background:#132b30;color:#d2e1d2}.formula{font-family:Georgia,"Times New Roman",serif;font-style:italic;font-size:clamp(1.2rem,2.2vw,2rem);text-align:center;padding:16px}.cover-number{position:absolute;top:13px;left:15px;font-size:.6rem;letter-spacing:.1em;background:#10242ac9;color:#e6e8de;padding:2px 7px}.video-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000;transition:transform .45s}.video-card:hover .video-cover img{transform:scale(1.025)}.video-body{padding:21px 0 0;display:flex;flex-direction:column;flex:1}.category{font-size:.64rem;letter-spacing:.08em;color:var(--accent);margin-bottom:7px}.video-body h3{font-size:1.13rem;font-weight:500;line-height:1.65}.video-description{color:var(--muted);font-size:.8rem;line-height:1.9;margin-top:11px;margin-bottom:23px}.video-button{border:0;border-bottom:1px solid #a9bdb0;background:none;color:var(--accent);align-self:flex-start;text-align:left;padding:5px 0 8px;margin-top:auto;font-size:.76rem}.video-button:not(:disabled):hover{color:var(--ink);border-color:var(--ink)}.featured-video{grid-column:1/-1;display:grid;grid-template-columns:1.65fr 1fr;background:var(--ink);color:var(--paper);margin-bottom:6px}.featured-video .video-cover{aspect-ratio:16/9;align-self:center;background:#000}.featured-video .video-body{padding:34px 38px;justify-content:center}.featured-label{font-size:.6rem;letter-spacing:.13em;color:#adbea9;margin-bottom:25px}.featured-video .category{color:#b0c8b9}.featured-video h3{font:500 clamp(1.4rem,2.4vw,2.1rem)/1.65 Georgia,"Songti SC",serif}.featured-video .video-description{color:#b9c7c8;margin-bottom:25px}.featured-video .video-button{color:#edf2e9;border-color:#6c8880;margin-top:0}.teaching-section{border-top:1px solid #ccd3c8;margin-top:66px;padding-top:30px}.collection-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;font-size:.95rem}.collection-heading span:last-child{font-size:.6rem;letter-spacing:.15em;color:var(--muted)}.course-video{display:grid;grid-template-columns:240px 1fr;gap:32px}.course-video .video-body{padding:0}.course-video .video-description{margin-bottom:12px}.course-video .video-cover{align-self:center}.course-video .formula{font-size:1.45rem}
.cv-section{display:grid;grid-template-columns:1fr 1.8fr;gap:110px;padding-block:104px}.cv-heading>p:not(.eyebrow){color:var(--muted);margin-block:23px 27px;font-size:.85rem;line-height:2}.cv-group{padding-block:30px;border-bottom:1px solid var(--line)}.cv-group:first-child{padding-top:0}.cv-group h3{font-size:.83rem;font-weight:600;color:var(--accent);letter-spacing:.08em;margin-bottom:24px}.cv-row{display:grid;grid-template-columns:100px 1fr;gap:20px;margin-top:22px}.cv-period{color:var(--muted);font-size:.76rem;padding-top:2px;font-variant-numeric:tabular-nums}.cv-row h4{font-weight:500;font-size:.93rem;line-height:1.8}.cv-row .muted{font-size:.78rem;line-height:1.9;margin-top:5px}.contact-section{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:40px;padding-block:52px 64px}.contact-section p:not(.eyebrow){color:var(--muted);font-size:.9rem;margin-top:12px}.email-link{font-family:Georgia,serif;font-size:1.35rem;overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:6px}footer{display:flex;justify-content:space-between;gap:20px;padding-block:27px;border-top:1px solid var(--line);font-size:.7rem;color:var(--muted)}
dialog{padding:28px;border:0;border-radius:3px;color:var(--ink);background:var(--paper);width:min(960px,calc(100% - 32px));max-height:92dvh;box-shadow:0 24px 100px #0005}dialog::backdrop{background:#0b2025cc;backdrop-filter:blur(5px)}body:has(dialog[open]){overflow:hidden}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.dialog-header h2{font:500 1.2rem/1.6 system-ui,sans-serif}.dialog-header button{border:1px solid var(--line);background:transparent;padding:7px 14px;white-space:nowrap;font-size:.8rem}video,#bilibili-player{width:100%;aspect-ratio:16/9;display:block;background:#000;border:0}#player-description{font-size:.85rem;color:var(--muted);margin-top:18px}#player-error{margin-top:12px;color:#9b3829}.skip-link{position:absolute;top:-100px;left:20px;padding:10px 18px;background:white;z-index:10}.skip-link:focus{top:10px}
@media(max-width:1000px){.container{width:calc(100% - 64px)}.hero{gap:40px;padding-block:70px 86px}.brand-caption{display:none}.math-figure{padding:22px;box-shadow:10px 10px 0 #e8ebe2}.featured-video{grid-template-columns:1.3fr 1fr}.featured-video .video-body{padding:24px}.featured-label{margin-bottom:15px}.cv-section{gap:48px}.video-grid{gap:30px 20px}}
@media(max-width:720px){.container{width:calc(100% - 40px)}.header-inner{min-height:80px;gap:16px}.site-header nav{gap:18px;font-size:.72rem}.brand{font-size:.9rem;gap:8px}.brand-mark{font-size:1.7rem}.hero{grid-template-columns:1fr;gap:48px;padding-block:54px 70px}.intro h1{font-size:4.4rem}.intro .eyebrow{font-size:.58rem}.bio{max-width:none}.affiliation{max-width:none}.hero-actions{margin-top:28px}.math-figure{padding:22px}.math-figure>img{aspect-ratio:16/9;margin-block:22px}.math-figure figcaption>span{font-size:1.6rem}.video-section{padding-block:54px 60px}.section-heading{display:block;margin-bottom:30px}.section-heading>p{margin-top:18px}.video-grid{grid-template-columns:1fr;gap:34px}.featured-video{display:flex}.featured-video .video-body{padding:25px}.featured-video h3{font-size:1.7rem}.featured-label{margin-bottom:18px}.video-cover{aspect-ratio:16/9}.video-body h3{font-size:1.1rem}.video-description{font-size:.86rem}.video-button{font-size:.82rem}.course-video{grid-template-columns:1fr;gap:20px}.course-video .video-cover{max-width:100%}.collection-heading span:last-child{font-size:.49rem}.cv-section{grid-template-columns:1fr;gap:42px;padding-block:62px}.cv-row{grid-template-columns:82px 1fr;gap:14px}.cv-row h4{font-size:.88rem}.contact-section{flex-direction:column;align-items:flex-start;gap:16px;padding-block:38px}dialog{padding:18px}.dialog-header h2{font-size:1rem}.dialog-header{gap:12px}.dialog-header button{padding:6px 9px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
.reading-progress{position:fixed;inset:0 0 auto;height:3px;z-index:30;pointer-events:none}.reading-progress span{display:block;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:left}.math-lab{display:grid;grid-template-columns:1fr 1.6fr;gap:90px;padding-block:96px;border-bottom:1px solid var(--line);align-items:center}.lab-copy>p:not(.eyebrow){font-size:.85rem;line-height:2;color:var(--muted);margin-top:23px}.lab-formula{display:block;font:italic 1.7rem Georgia,serif;color:var(--accent);margin-top:28px}.lab-panel{background:#efefe7;padding:28px 32px}.lab-panel-heading{display:flex;justify-content:space-between;gap:14px;font-size:.75rem;color:var(--accent)}.lab-panel-heading>span:last-child{color:var(--muted);font-variant-numeric:tabular-nums}#riemann-chart{width:100%;height:auto;display:block;margin:22px 0}.chart-grid path{fill:none;stroke:#dce0d4;stroke-dasharray:3 6}.chart-axis{fill:none;stroke:#9da99d}.chart-curve{fill:none;stroke:#266052;stroke-width:2.5}#riemann-bars rect{fill:#85b2a7;fill-opacity:.35;stroke:#618f81;stroke-width:.7}.chart-label{fill:#6a786d;font:italic 15px Georgia,serif}.lab-control{display:flex;align-items:center;gap:20px;font-size:.72rem}.lab-control label{white-space:nowrap}.lab-control>span{white-space:nowrap;color:var(--muted);font-size:.64rem}.lab-control input{min-width:0;flex:1;accent-color:var(--accent);cursor:ew-resize;height:32px}.lab-control input:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.lab-results{display:flex;gap:30px;align-items:flex-end;border-top:1px solid #d2d9cd;padding-top:22px;margin-top:17px}.lab-results>div>span{display:block;font-size:.62rem;color:var(--muted)}.lab-results strong{display:block;font:400 1.45rem Georgia,serif;font-variant-numeric:tabular-nums;margin-top:5px}.lab-hint{margin-left:auto;font-size:.59rem;color:var(--muted);padding-bottom:5px}.reveal{opacity:0;transform:translateY(16px);transition:opacity .65s ease,transform .65s ease}.reveal.is-visible{opacity:1;transform:none}.button:active,.video-button:active{transform:translateY(1px)}.math-figure figcaption a span{display:inline-block;transition:transform .25s}.math-figure figcaption a:hover span{transform:translate(3px,-3px)}
@media(max-width:1000px){.math-lab{gap:40px}.lab-panel{padding:24px}.lab-hint{display:none}}
@media(max-width:720px){.math-lab{grid-template-columns:1fr;gap:35px;padding-block:60px}.lab-panel{padding:22px 18px}.lab-results{gap:26px}.lab-control{gap:12px}.lab-copy h2 br{display:none}}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}.math-figure figcaption a:hover span,.button:active,.video-button:active{transform:none}}
.affiliation-line{display:block}.affiliation{max-width:none}.lab-tabs{display:flex;gap:25px;margin-bottom:25px;border-bottom:1px solid #d2d9cd}.lab-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font-size:.79rem;padding:0 0 12px}.lab-tabs button[aria-pressed="true"]{color:var(--accent);border-color:var(--accent)}#circle-experiment svg{display:block;width:100%;height:auto;margin:22px 0}.unit-circle{fill:#85b2a714;stroke:#608f80;stroke-width:1.8}#circle-radius{stroke:#266052;stroke-width:2.5;fill:none}#circle-projection{stroke:#aa875a;stroke-width:1.6;stroke-dasharray:5 4;fill:none}#circle-dot{fill:#266052;stroke:var(--soft);stroke-width:2}.lab-formula{font-size:1.2rem}

.research-section{padding-block:0 80px}.research-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}.research-grid article{border-top:1px solid var(--line);padding-top:22px}.research-grid h3{font-weight:500;font-size:1.1rem;margin-bottom:14px}.research-grid p{font-size:.85rem;color:var(--muted);line-height:2}.research-grid p+p{margin-top:14px}.cv-row h4{overflow-wrap:anywhere}.math-figure figcaption>span{font-size:1.25rem}.hero{padding-bottom:80px}
@media(max-width:720px){.research-grid{grid-template-columns:1fr;gap:26px}.research-section{padding-bottom:55px}.site-header nav{gap:13px}.header-inner{gap:12px}.math-figure figcaption>span{font-size:1.05rem}}
