:root{color-scheme:light;--font-display: "Fraunces", "Georgia", serif;--font-sans: "Libre Franklin", system-ui, sans-serif;--bg: #faf9f7;--bg-hero: #1a1918;--surface: #ffffff;--ink: #1f1e1d;--body: #4a4744;--muted: #7a7670;--faint: #b0aba3;--on-hero: #f5f3ef;--on-hero-soft: #c4bfba;--line: #e8e5e0;--line-strong: #ddd9d2;--link: #5a4f46;--link-hover: #2e2c2a;--btn: #2a2826;--btn-hover: #1a1918;--radius: 12px;--radius-lg: 20px;--page-gutter: clamp(1.25rem, 5vw, 4rem);background:var(--bg);color:var(--ink)}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:var(--font-sans);font-size:1rem;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background:var(--bg)}.page{width:100%;max-width:none;margin:0;padding:clamp(1.25rem,4vw,2rem) var(--page-gutter) 3.5rem}.page--home{padding:0 0 3.5rem;--home-top-banner-h: clamp(4.25rem, 12vw, 5.75rem)}.page--home .main{padding-left:var(--page-gutter);padding-right:var(--page-gutter)}a{color:var(--link)}a:hover{color:var(--link-hover)}.hero{color:var(--on-hero);background:var(--bg-hero);border-radius:var(--radius-lg);padding:clamp(1.25rem,3vw,1.75rem) clamp(1.25rem,3vw,2rem) clamp(2rem,4vw,2.75rem);margin-bottom:clamp(2.5rem,5vw,3.5rem);box-shadow:0 12px 40px #0000001f}.hero.hero--banner{border-radius:0;box-shadow:none;margin-bottom:clamp(2.5rem,5vw,3.5rem);padding:0;border-bottom:1px solid rgba(255,255,255,.08)}.page--home .hero.hero--banner{padding-top:calc(var(--home-top-banner-h) + env(safe-area-inset-top,0px))}.hero-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;padding-bottom:1rem;margin-bottom:clamp(1.5rem,3vw,2.25rem);border-bottom:1px solid rgba(255,255,255,.08)}.page--home .hero-bar{position:fixed;top:0;left:0;right:0;width:100%;z-index:50;margin-bottom:0;padding-top:max(env(safe-area-inset-top),clamp(.75rem,2vw,1rem));padding-right:var(--page-gutter);padding-bottom:1rem;padding-left:var(--page-gutter);box-sizing:border-box;background:var(--bg-hero);border-bottom:1px solid rgba(255,255,255,.1)}.page--home .hero-stage{padding:clamp(1.25rem,3vw,2rem) var(--page-gutter) clamp(2rem,4vw,2.75rem)}.wordmark{font-family:var(--font-display);font-weight:600;font-size:1rem;letter-spacing:.04em;color:var(--on-hero);text-decoration:none}.wordmark:hover{color:#fff}.top-nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.15rem .75rem;align-items:center}.top-nav a{color:var(--on-hero-soft);text-decoration:none;font-weight:500;font-size:.875rem}.top-nav a:hover{color:var(--on-hero)}.nav-muted{opacity:.55}.hero-stage{display:grid;gap:1.75rem;align-items:start}@media (min-width: 800px){.hero-stage{grid-template-columns:minmax(200px,270px) minmax(0,1fr);gap:clamp(2rem,4vw,3rem);align-items:start}}.hero-visual{justify-self:center;align-self:start;width:100%;max-width:280px}@media (min-width: 800px){.hero-visual{justify-self:start;max-width:none;width:auto}}.hero-figure{margin:0;width:100%}.hero-photo{display:block;width:100%;max-width:280px;height:auto;margin:0 auto;border-radius:var(--radius);border:1px solid rgba(255,255,255,.12)}@media (min-width: 800px){.hero-photo{margin:0;max-width:100%}}.hero-caption{margin:.5rem 0 0;font-size:.8125rem;color:var(--on-hero-soft);text-align:center}@media (min-width: 800px){.hero-caption{text-align:left;max-width:270px}}.hero-intro{min-width:0}.hero-name{margin:0 0 .25rem;font-family:var(--font-display);font-size:clamp(2.5rem,7vw,3.75rem);font-weight:500;line-height:1.05;letter-spacing:-.03em;color:var(--on-hero)}.hero-name-zh{margin:0 0 .75rem;font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",var(--font-sans);font-size:clamp(1.25rem,3vw,1.625rem);font-weight:500;letter-spacing:.14em;color:var(--on-hero-soft);line-height:1.3}.hero-tagline{margin:0 0 1rem;font-family:var(--font-sans);font-size:1rem;font-weight:500;line-height:1.45;color:var(--on-hero-soft);max-width:36ch}.hero-copy{margin:0;max-width:48ch;color:var(--on-hero-soft);line-height:1.7;font-size:.9375rem}.social-row{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;list-style:none;margin:1.25rem 0 0;padding:0}.social-row a{color:var(--on-hero-soft);font-weight:500;font-size:.875rem;text-decoration:none;border-bottom:1px solid transparent}.social-row a:hover{color:var(--on-hero);border-bottom-color:#ffffff40}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-top:1.35rem}.button{display:inline-flex;align-items:center;font-family:var(--font-sans);font-weight:500;font-size:.875rem;text-decoration:none;border-radius:999px;padding:.55rem 1.1rem;transition:background .15s ease,color .15s ease,border-color .15s ease}.button-primary{background:var(--on-hero);color:var(--btn);border:none}.button-primary:hover{background:#fff;color:var(--btn-hover)}.button-secondary{background:transparent;color:var(--on-hero);border:1px solid rgba(255,255,255,.28)}.button-secondary:hover{border-color:#ffffff73;color:#fff}.button-text{background:none;border:none;color:var(--on-hero-soft);padding-left:.25rem;padding-right:.25rem}.button-text:hover{color:var(--on-hero)}.main{display:flex;flex-direction:column}.section{padding:2.75rem 0;border-top:1px solid var(--line)}.section:first-of-type{border-top:none;padding-top:0}.section-head{margin-bottom:1.75rem}.section-title{margin:0 0 .5rem;font-family:var(--font-display);font-size:clamp(1.35rem,2.5vw,1.65rem);font-weight:600;letter-spacing:-.02em;line-height:1.2;color:var(--ink)}.section-deck{margin:0;max-width:36rem;font-size:.9375rem;line-height:1.6;color:var(--muted)}.section-grid-about{display:grid;gap:1.5rem}@media (min-width: 640px){.section-grid-about{grid-template-columns:1fr 1fr}}.prose{margin:0;color:var(--body);line-height:1.7;font-size:.9375rem;max-width:36rem}.prose a,.section-deck a,.text-link{color:var(--link);font-weight:500;text-decoration:underline;text-decoration-color:#5a4f4659;text-underline-offset:.2em}.prose a:hover,.section-deck a:hover,.text-link:hover{text-decoration-color:var(--link-hover)}.tag-list{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:0;padding:0}.tag-list li{padding:.3rem .65rem;font-size:.8125rem;font-weight:500;color:var(--body);background:var(--surface);border:1px solid var(--line);border-radius:999px}.news-list{list-style:none;margin:0;padding:0;max-width:40rem}.news-list li{display:grid;grid-template-columns:6.5rem 1fr;gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--line);font-size:.9375rem}@media (max-width: 520px){.news-list li{grid-template-columns:1fr;gap:.25rem}}.news-list li:last-child{border-bottom:none}.news-date{font-size:.8125rem;font-weight:600;color:var(--muted)}.news-body{color:var(--body);line-height:1.55}.section-split{display:grid;gap:2rem}@media (min-width: 840px){.section-split{grid-template-columns:1fr 240px;gap:2.5rem}}.section-split-talks{align-items:start}@media (min-width: 840px){.section-split-talks{grid-template-columns:1fr 1fr}}.timeline{list-style:none;margin:0;padding:0 0 0 1rem;border-left:1px solid var(--line-strong)}.timeline-item{padding-bottom:1.75rem;padding-left:.25rem}.timeline-item:last-child{padding-bottom:0}.timeline-meta{display:flex;flex-wrap:wrap;gap:.35rem .75rem;font-size:.75rem;color:var(--muted);margin-bottom:.35rem}.timeline-period{font-weight:600;color:var(--ink)}.timeline-title{margin:0 0 .45rem;font-family:var(--font-sans);font-size:1rem;font-weight:600;line-height:1.4;color:var(--ink)}.timeline-org{font-weight:500;color:var(--body)}.timeline-bullets{margin:0;padding-left:1rem;color:var(--body);font-size:.875rem;line-height:1.6}.timeline-bullets li{margin-bottom:.3rem}.education-aside{padding:1.25rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);align-self:start}.aside-title{margin:0 0 .85rem;font-family:var(--font-sans);font-size:.8125rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.education-list{list-style:none;margin:0;padding:0;display:grid;gap:.85rem}.education-list li{padding-bottom:.85rem;border-bottom:1px solid var(--line)}.education-list li:last-child{padding-bottom:0;border-bottom:none}.edu-degree{display:block;font-weight:600;font-size:.875rem;color:var(--ink);line-height:1.35}.edu-meta{font-size:.8125rem;color:var(--muted)}.card-grid{display:grid;gap:.75rem}.card-grid-papers{grid-template-columns:1fr}@media (min-width: 640px){.card-grid-papers{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 1200px){.card-grid-papers{grid-template-columns:repeat(3,minmax(0,1fr))}}.paper-card,.blog-card{display:flex;flex-direction:column;min-height:100%;padding:1.15rem 1.2rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.blog-card.blog-card--tile{position:relative;overflow:hidden;text-decoration:none;color:inherit;transition:border-color .15s ease,box-shadow .15s ease}.blog-card.blog-card--tile:hover{border-color:var(--line-strong);box-shadow:0 8px 28px #1f1e1d0f}.blog-card.blog-card--tile:focus-visible{outline:2px solid var(--btn);outline-offset:3px}.blog-card-body{display:flex;flex-direction:column;flex:1;min-height:0;transition:filter .22s ease,opacity .22s ease}.blog-card-hover{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:1rem;opacity:0;pointer-events:none;transition:opacity .22s ease;background:#faf9f7b8}.blog-card-hover-text{font-family:var(--font-sans);font-weight:600;font-size:.9375rem;letter-spacing:.02em;color:var(--ink)}.blog-card--tile:hover .blog-card-body,.blog-card--tile:focus-visible .blog-card-body{filter:blur(5px);opacity:.82}.blog-card--tile:hover .blog-card-hover,.blog-card--tile:focus-visible .blog-card-hover{opacity:1}@media (prefers-reduced-motion: reduce){.blog-card-body,.blog-card-hover,.blog-card.blog-card--tile{transition:none}.blog-card--tile:hover .blog-card-body,.blog-card--tile:focus-visible .blog-card-body{filter:none;opacity:1}.blog-card--tile:hover .blog-card-hover,.blog-card--tile:focus-visible .blog-card-hover{opacity:1;background:#faf9f7e0}}.paper-card-top{flex:1}.paper-title,.blog-title{margin:.3rem 0 .4rem;font-family:var(--font-display);font-size:1rem;font-weight:600;line-height:1.35;letter-spacing:-.015em;color:var(--ink)}.authors{margin:0 0 .5rem;font-size:.8125rem;line-height:1.45;color:var(--muted)}.excerpt{margin:0;font-size:.875rem;line-height:1.55;color:var(--body)}.paper-card .text-link{margin-top:auto;padding-top:.85rem;font-size:.8125rem;align-self:flex-start}.meta{display:flex;flex-wrap:wrap;gap:.35rem .5rem;align-items:center;font-size:.6875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.venue-pill{padding:.15rem .4rem;border-radius:4px;background:var(--bg);color:var(--body);font-weight:600;font-size:.625rem}.card-grid-blogs{grid-template-columns:1fr}@media (min-width: 640px){.card-grid-blogs{grid-template-columns:repeat(2,minmax(0,1fr))}}.inline-code{font-family:ui-monospace,Menlo,monospace;font-size:.84em;padding:.1rem .35rem;border-radius:4px;background:var(--bg);border:1px solid var(--line);color:var(--ink)}.empty-hint{margin:0;color:var(--muted);font-size:.9375rem}.talks-list{list-style:none;margin:0;padding:0;display:grid;gap:1rem}.talks-list a{font-family:var(--font-sans);font-weight:500;font-size:.9375rem;color:var(--link);text-decoration:underline;text-decoration-color:#5a4f464d;text-underline-offset:.2em}.talks-list a:hover{color:var(--link-hover)}.talk-venue{display:block;margin-top:.2rem;font-size:.8125rem;color:var(--muted)}.honors-list{margin:0;padding:0;list-style:none;display:grid;gap:.65rem}.honors-list li{font-size:.875rem;line-height:1.55;color:var(--body);padding-left:.85rem;border-left:2px solid var(--line-strong)}.honors-list strong{color:var(--ink);font-weight:600}.honor-year{color:var(--muted);font-weight:500}.site-footer{text-align:center;padding:2.5rem 0 0;margin-top:.5rem;border-top:1px solid var(--line);color:var(--muted);font-size:.875rem}.site-footer p{margin:0}.footer-name{font-family:var(--font-display);font-weight:600;color:var(--ink)}.footer-name-zh{margin-left:.35rem;font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",var(--font-sans);font-weight:500;letter-spacing:.1em;color:var(--muted)}.footer-sep{margin:0 .4rem;opacity:.5}.site-footer a{font-weight:500;text-decoration:underline;text-decoration-color:#5a4f4659;text-underline-offset:.2em}.site-footer a:hover{color:var(--link-hover)}.blog-layout{max-width:56rem;margin-inline:auto;padding-top:clamp(1.25rem,4vw,2rem);padding-bottom:3rem}.blog-layout .blog-masthead{margin-bottom:0;padding-bottom:clamp(1.75rem,4vw,2.25rem);border-bottom:1px solid var(--line)}.blog-masthead-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:clamp(1.5rem,4vw,2rem)}.wordmark--light-bg{color:var(--ink);text-decoration:none;font-family:var(--font-display);font-weight:600;font-size:1rem;letter-spacing:.04em}.wordmark--light-bg:hover{color:var(--link-hover)}.top-nav--light a{color:var(--muted);text-decoration:none;font-weight:500;font-size:.875rem}.top-nav--light a:hover{color:var(--ink)}.blog-masthead-grid{display:grid;gap:1.5rem;align-items:start}@media (min-width: 880px){.blog-masthead-grid{grid-template-columns:minmax(0,1fr) minmax(14rem,17rem);gap:2rem 2.5rem}}.blog-masthead-intro{min-width:0}.blog-page-title{margin:0 0 .65rem;font-family:var(--font-display);font-size:clamp(1.85rem,4vw,2.35rem);font-weight:600;letter-spacing:-.02em;line-height:1.15;color:var(--ink)}.blog-page-lede{margin:0;max-width:38rem;font-size:.9375rem;line-height:1.65;color:var(--muted)}.blog-toc{margin:0;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}.blog-toc-heading{display:block;margin-bottom:.65rem;font-size:.6875rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.blog-toc-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.blog-toc-list a{display:block;padding:.35rem 0;font-size:.8125rem;font-weight:500;color:var(--link);text-decoration:none;line-height:1.35;border-bottom:none;border-radius:4px}.blog-toc-list a:hover{color:var(--link-hover)}.blog-toc-list a:focus-visible{outline:2px solid var(--btn);outline-offset:2px}.blog-toc-list li{margin:0}.blog-main{padding-bottom:0}.blog-topic{padding:clamp(2rem,5vw,2.75rem) 0;border-bottom:1px solid var(--line)}.blog-topic:last-of-type{border-bottom:none;padding-bottom:0}.blog-topic-head{margin-bottom:1.35rem;max-width:40rem}.blog-topic-title{margin:0 0 .45rem;font-family:var(--font-display);font-size:clamp(1.2rem,2.2vw,1.45rem);font-weight:600;letter-spacing:-.02em;line-height:1.25;color:var(--ink)}.blog-topic-deck{margin:0;font-size:.875rem;line-height:1.6;color:var(--muted)}.blog-main .card-grid-blogs--blog-page{gap:1rem}@media (min-width: 640px){.blog-main .card-grid-blogs--blog-page{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem}}.domain-empty{margin:0;max-width:40rem;font-size:.9375rem;line-height:1.6;color:var(--muted)}.blog-layout .site-footer{margin-top:2.5rem;padding-top:2rem}.domain-featured-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-bottom:1.25rem}.domain-featured-cta{display:inline-flex;align-items:center;justify-content:center;padding:.65rem 1.15rem;font-family:var(--font-sans);font-weight:600;font-size:.875rem;letter-spacing:.02em;color:#fffdf9;background:var(--btn);text-decoration:none;border-radius:999px;border:none;transition:background .15s ease,transform .12s ease}.domain-featured-cta:hover{background:var(--btn-hover);color:#fffdf9}.domain-featured-cta:active{transform:scale(.98)}.blog-post-crumb{font-size:.8125rem;color:var(--muted);margin:-.25rem 0 1.5rem}.blog-post-crumb a{color:var(--link);font-weight:500;text-decoration:underline;text-decoration-color:#5a4f4659;text-underline-offset:.2em}.blog-post-crumb a:hover{color:var(--link-hover)}.blog-post-crumb-current{color:var(--body)}.blog-post-layout .blog-post-article{max-width:52rem;margin:0 auto;padding-bottom:2rem}.blog-post-header{margin-bottom:1.75rem;padding-bottom:1.25rem;border-bottom:1px solid var(--line)}.blog-post-h1{margin:0 0 .65rem;font-family:var(--font-display);font-size:clamp(1.6rem,3.5vw,2.15rem);font-weight:600;letter-spacing:-.02em;line-height:1.2;color:var(--ink)}.blog-post-meta{margin:0;display:flex;flex-wrap:wrap;gap:.5rem 1rem;font-size:.8125rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.markdown-post{font-size:1rem;line-height:1.72;color:var(--body)}.markdown-post h2{margin:2rem 0 .75rem;font-family:var(--font-display);font-size:1.35rem;font-weight:600;letter-spacing:-.02em;line-height:1.25;color:var(--ink)}.markdown-post h3{margin:1.5rem 0 .5rem;font-family:var(--font-sans);font-size:1.05rem;font-weight:600;color:var(--ink)}.markdown-post p{margin:0 0 1rem}.markdown-post ul{margin:0 0 1rem;padding-left:1.25rem}.markdown-post li{margin-bottom:.45rem}.markdown-post a{color:var(--link);font-weight:500;text-decoration:underline;text-decoration-color:#5a4f4659;text-underline-offset:.2em}.markdown-post a:hover{color:var(--link-hover)}.markdown-post strong{font-weight:600;color:var(--ink)}.blog-post-footer-nav{margin-top:2rem;padding-top:1.25rem;border-top:1px solid var(--line)}
