@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--accent: #4361EE;--accent-soft: rgba(67,97,238,.1);--gold: #F59E0B;--gold-soft: rgba(245,158,11,.12);--c1: #0A0A0F;--c2: #18181F;--c3: #6B6B80;--c4: #A0A0B4;--bg: #FFFFFF;--bg-1: #F8F8FB;--bg-2: #F1F1F6;--line: rgba(0,0,0,.07);--font: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--hero-from: #0D0F1A;--hero-to: #1A1040}[data-theme=dark]{--c1: #EDEDF5;--c2: #C8C8D8;--c3: #6A6A80;--c4: #3A3A4E;--bg: #0A0A10;--bg-1: #111118;--bg-2: #18181F;--line: rgba(255,255,255,.06);--accent-soft: rgba(67,97,238,.15);--gold-soft: rgba(245,158,11,.1);--hero-from: #05050C;--hero-to: #120A30}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font);font-size:15px;line-height:1.65;color:var(--c2);background:var(--bg);-webkit-font-smoothing:antialiased;transition:background .2s,color .2s}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}img{display:block;max-width:100%}.nav{position:sticky;top:0;z-index:300;height:52px;background:#0a0a10eb;backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border-bottom:1px solid rgba(255,255,255,.07);transition:background .2s,border-color .2s}.nav-inner{max-width:1160px;margin:0 auto;padding:0 32px;height:100%;display:flex;align-items:center;justify-content:space-between}.nav-brand{font-size:15px;font-weight:700;letter-spacing:-.03em;color:#ffffffe6;text-decoration:none}.nav-brand:hover{text-decoration:none}.nav-right{display:flex;align-items:center;gap:20px}.nav-links{display:flex;gap:24px;list-style:none}.nav-links a{font-size:13.5px;font-weight:500;color:#ffffff8c;text-decoration:none;transition:color .14s}.nav-links a:hover{color:#fff;text-decoration:none}.nav-links a.active{color:var(--accent);font-weight:600}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:8px;cursor:pointer;color:#ffffff8c;transition:all .14s;flex-shrink:0}.theme-toggle:hover{color:#fff;border-color:#ffffff4d}.theme-toggle svg{pointer-events:none}.hero{position:relative;overflow:hidden;padding:100px 0 90px}.hero-bg{position:absolute;inset:0;z-index:0;background:center / cover no-repeat}.hero-bg:after{content:"";position:absolute;inset:0;background:#0a0a1099}.hero:before{content:"";position:absolute;border-radius:50%;filter:blur(100px);opacity:.12;pointer-events:none;width:560px;height:560px;background:radial-gradient(circle,#5B8DEF 0%,transparent 70%);top:-160px;right:-80px}.hero-inner{max-width:1160px;margin:0 auto;padding:0 32px;position:relative;z-index:1;display:flex;gap:48px;align-items:center}.hero-photo{flex-shrink:0;width:200px;height:200px;border-radius:50%;overflow:hidden;box-shadow:0 0 0 3px #ffffff26,0 0 0 6px #ffffff0f,0 16px 48px #0006}.hero-photo img{width:100%;height:100%;object-fit:cover}.hero-name{font-size:48px;font-weight:800;letter-spacing:-.04em;line-height:1;color:#fff;margin-bottom:4px}.hero-name-zh{font-size:22px;font-weight:300;color:#ffffff59;letter-spacing:.06em;margin-left:10px}.hero-role{font-size:14.5px;font-weight:400;color:#ffffff80;margin:10px 0 18px;letter-spacing:-.01em}.hero-role strong{color:#ffffffd1;font-weight:600}.hero-chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:20px}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;background:#ffffff12;border:1px solid rgba(255,255,255,.12);border-radius:20px;font-size:12.5px;font-weight:500;color:#ffffff9e;text-decoration:none;transition:all .14s}.chip:hover{background:#ffffff24;color:#fff;text-decoration:none;border-color:#ffffff47}.hero-socials{display:flex;flex-wrap:wrap;gap:7px}.sbtn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:#ffffff12;border:1px solid rgba(255,255,255,.12);border-radius:8px;font-size:12.5px;font-weight:500;color:#ffffffa6;text-decoration:none;transition:all .14s}.sbtn:hover{background:var(--accent);color:#fff;border-color:transparent;text-decoration:none}.sbtn svg{flex-shrink:0}.body-wrap,.body-wrap-wide{max-width:1160px;margin:0 auto;padding:0 32px}.bio{padding:48px 0 40px}.bio-text{font-size:15px;line-height:1.8;color:var(--c2);margin-bottom:14px}.bio-text a{color:var(--accent)}.bio-text strong{color:var(--c1);font-weight:600}.tag-row{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0 22px}.tag{display:inline-flex;align-items:center;padding:4px 12px;border-radius:20px;font-size:12.5px;font-weight:500;background:var(--accent-soft);color:var(--accent);border:1px solid rgba(67,97,238,.18)}.callout{display:flex;gap:12px;align-items:flex-start;padding:14px 18px;background:var(--bg-1);border:1px solid var(--line);border-radius:12px;font-size:14px;color:var(--c2);line-height:1.6}.callout-icon{font-size:18px;flex-shrink:0;margin-top:1px}.callout strong{color:var(--c1)}.callout a{color:var(--accent)}.divider{border:none;border-top:1px solid var(--line)}.two-col{padding:48px 0 88px;display:grid;grid-template-columns:1fr 210px;gap:60px;align-items:start}.sec-hd{display:flex;align-items:baseline;justify-content:space-between;padding-bottom:14px;margin-bottom:8px;border-bottom:2px solid var(--c1)}.sec-hd h2{font-size:13px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--c1)}.sec-hd a{font-size:12.5px;font-weight:500;color:var(--accent)}.pub-row.pub-row-featured{background:var(--gold-soft);border-left:3px solid var(--gold);padding-left:9px;border-radius:0 12px 12px 0}.pub-row.pub-row-featured:hover{background:var(--gold-soft);filter:brightness(.97)}.pub-list{display:flex;flex-direction:column}.pub-row{display:flex;gap:18px;align-items:flex-start;padding:16px 12px;border-radius:12px;transition:background .15s}.pub-row:hover{background:var(--bg-1)}.pub-thumb{flex-shrink:0;width:240px;height:150px;border-radius:4px;overflow:hidden;background:#fff;border:1px solid var(--line)}.pub-thumb img,.pub-thumb video{width:100%;height:100%;object-fit:contain;object-position:center}.pub-thumb-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:26px;color:var(--c4)}.pub-content{flex:1;min-width:0}.pub-top{display:flex;align-items:center;gap:8px;margin-bottom:5px;flex-wrap:wrap}.pub-venue{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--c2)}.pub-award{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:10px;font-size:10.5px;font-weight:700;background:var(--gold-soft);color:var(--gold);border:1px solid rgba(245,158,11,.22)}.pub-title{font-size:14.5px;font-weight:600;color:var(--c1);line-height:1.4;margin-bottom:5px}.pub-title a{color:inherit}.pub-title a:hover{color:var(--accent);text-decoration:none}.pub-authors{font-size:12.5px;color:var(--c2);line-height:1.55;margin-bottom:9px}.pub-authors .me,.pub-authors .author-highlight{color:var(--c1);font-weight:600;text-decoration-line:underline;text-decoration-color:var(--accent);text-decoration-thickness:1.5px;text-underline-offset:2px}.pub-authors .author-link{color:var(--c2);text-decoration-line:underline;text-decoration-style:dotted;text-decoration-color:var(--c4);text-underline-offset:2px}.pub-authors .author-link:hover{color:var(--accent);text-decoration-color:var(--accent);text-decoration:none}.pub-links{display:flex;gap:6px;flex-wrap:wrap}.pl{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:6px;font-size:11.5px;font-weight:500;border:1px solid var(--line);color:var(--c3);background:var(--bg);text-decoration:none;transition:all .12s}.pl:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}.pl.arxiv{background:#fff5ef;color:#c2440f;border-color:#c2440f2e}.pl.arxiv:hover{border-color:#c2440f}.pl.code{background:#f0fdf4;color:#15803d;border-color:#15803d2e}.pl.code:hover{border-color:#15803d}.pl.blog{background:#eef2ff;color:#4338ca;border-color:#4338ca2e}.pl.blog:hover{border-color:#4338ca}.pl.pdf{background:#fff2f2;color:#b91c1c;border-color:#b91c1c2e}.pl.pdf:hover{border-color:#b91c1c}.pl.bib-btn{background:#f0fdfa;color:#0d9488;border-color:#0d94882e}.pl.bib-btn:hover{border-color:#0d9488}.pl.bib-btn.active{background:#0d9488;color:#fff;border-color:#0d9488}[data-theme=dark] .pl.arxiv{background:#1c0a02;color:#f97316;border-color:#f973162e}[data-theme=dark] .pl.arxiv:hover{border-color:#f97316}[data-theme=dark] .pl.pdf{background:#1c0202;color:#f87171;border-color:#f871712e}[data-theme=dark] .pl.pdf:hover{border-color:#f87171}[data-theme=dark] .pl.bib-btn{background:#021c1a;color:#2dd4bf;border-color:#2dd4bf2e}[data-theme=dark] .pl.bib-btn:hover{border-color:#2dd4bf}[data-theme=dark] .pl.bib-btn.active{background:#0d9488;color:#fff;border-color:#0d9488}[data-theme=dark] .pl.code{background:#021c09;color:#4ade80;border-color:#4ade802e}[data-theme=dark] .pl.code:hover{border-color:#4ade80}[data-theme=dark] .pl.blog{background:#0d0b2a;color:#818cf8;border-color:#818cf82e}[data-theme=dark] .pl.blog:hover{border-color:#818cf8}.x-feed{margin-top:4px}.tweet-cards{display:flex;flex-direction:column;gap:10px;margin-top:10px}.tweet-card{padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--bg)}.tweet-head{display:flex;align-items:center;gap:9px;margin-bottom:9px}.tweet-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;flex-shrink:0}.tweet-who{flex:1;min-width:0}.tweet-name{font-size:13.5px;font-weight:700;color:var(--c1);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tweet-handle{font-size:12px;color:var(--c3);line-height:1.2}.tweet-logo{color:var(--c2);flex-shrink:0}.tweet-body{font-size:13.5px;color:var(--c1);line-height:1.65;margin-bottom:10px;white-space:pre-line;word-break:break-word}.tweet-body a{color:#1d9bf0;text-decoration:none}.tweet-body a:hover{text-decoration:underline}.tweet-foot{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--c3)}.tweet-foot a{font-size:12px;color:var(--c3);text-decoration:none;transition:color .12s}.tweet-foot a:hover{color:#1d9bf0;text-decoration:none}[data-theme=dark] .tweet-card{background:var(--bg-1)}.news-list{display:flex;flex-direction:column}.ni{display:grid;grid-template-columns:62px 1fr;gap:10px;align-items:start;padding:9px 0;border-bottom:1px solid var(--line)}.ni:last-child{border-bottom:none}.ni-date{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--c4);padding-top:2px}.ni-text{font-size:13px;color:var(--c2);line-height:1.55}.ni-text a{color:var(--accent)}.news-more{display:block;margin-top:12px;font-size:12.5px;font-weight:500;color:var(--accent);text-decoration:none}.news-more:hover{text-decoration:underline}.page-header{padding:52px 0 40px;border-bottom:1px solid var(--line);margin-bottom:48px}.page-header h1{font-size:36px;font-weight:800;letter-spacing:-.04em;color:var(--c1);margin-bottom:8px}.page-header p{font-size:15px;color:var(--c3)}.group-section{padding:44px 0 20px}.alumni-note{margin-top:20px}.group-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-top:4px}.group-card{padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--bg-1);display:flex;flex-direction:column;gap:4px;transition:border-color .14s,box-shadow .14s}.group-card:hover{border-color:var(--accent);box-shadow:0 2px 12px #4361ee14}.group-card-join{border-style:dashed;background:transparent}.group-name{font-size:14px;font-weight:600;color:var(--c1);text-decoration:none}.group-name:hover{color:var(--accent);text-decoration:none}.group-info{font-size:12px;color:var(--c3);line-height:1.4}.footer{border-top:1px solid var(--line);padding:28px 32px;text-align:center}.footer p{font-size:12px;color:var(--c4);margin-bottom:3px}.footer a{color:var(--c3)}.footer a:hover{color:var(--accent);text-decoration:none}@media (max-width: 740px){.hero-inner{flex-direction:column;gap:24px;text-align:center}.hero-photo{width:140px;height:140px}.hero-name{font-size:38px}.hero-name-zh{font-size:18px}.hero-chips,.hero-socials{justify-content:center}.two-col{grid-template-columns:1fr;gap:48px}.pub-thumb{width:120px;height:80px}.nav-links{gap:16px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important}}
