:root{--color-bg:#fcfbf8;--color-surface:#f3f0e9;--color-text:#23211d;--color-text-muted:#6d675f;--color-accent:#7a2b26;--color-accent-hover:#571c18;--color-border:#e3ded4;--color-rule:#d8d2c6;--color-on-accent:#ffffff}@font-face{font-family:lxgw zhenkai gb;src:url(../fonts/zhenkai-subset.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+4F1F,U+5355,U+5609}@font-face{font-family:noto serif sc;src:url(../fonts/notoserifsc-subset.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+4F1F,U+5355,U+5609}:root{--nav-height:3.4rem;--content-width:760px;--font-serif-brand:"Iowan Old Style", Constantia, "Palatino Linotype",
                      Palatino, "Book Antiqua", "URW Palladio L", Georgia,
                      "Times New Roman", serif;--font-serif:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua",
                "URW Palladio L", Georgia, "Times New Roman", serif;--font-body:-apple-system, BlinkMacSystemFont, "system-ui", "Segoe UI",
               Roboto, "Helvetica Neue", Arial, var(--font-han);--font-cjk:"LXGW ZhenKai GB", "Noto Serif SC", var(--font-han);--font-han:"PingFang SC", "PingFang HK", "Hiragino Sans GB",
              "Microsoft YaHei UI", "Microsoft YaHei", "Microsoft JhengHei UI",
              "Noto Sans CJK SC", "Source Han Sans SC", "Noto Sans SC",
              "WenQuanYi Micro Hei", "Heiti SC", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{max-width:100%;height:auto}a{color:var(--color-accent);text-decoration:var(--link-decoration,none)}a:hover,a:focus-visible{color:var(--color-accent-hover);text-decoration:underline}a:visited{color:var(--color-accent)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}code{font-family:var(--font-mono);font-size:.9em}.wrap{max-width:var(--content-width);margin-inline:auto;padding-inline:1.5rem}.skip-link{position:absolute;left:-9999px;top:0;background:var(--color-accent);color:var(--color-on-accent,#fff);padding:.5rem 1rem;z-index:100}.skip-link:focus{left:0;color:var(--color-on-accent,#fff)}.site-nav{position:sticky;top:0;z-index:50;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.nav-inner{max-width:var(--content-width);margin-inline:auto;padding:.8rem 1.5rem;display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.nav-brand{color:var(--color-text);text-decoration:none;font-family:var(--font-serif-brand);font-size:1.125rem;letter-spacing:.005em}.nav-brand strong{font-weight:600}.nav-brand:hover{color:var(--color-accent);text-decoration:none}.nav-brand-zh{font-family:var(--font-cjk);font-size:1.05rem;font-weight:400;color:var(--color-text-muted);margin-left:.5rem;letter-spacing:.05em;white-space:nowrap}.nav-brand:hover .nav-brand-zh{color:var(--color-accent)}.nav-links{list-style:none;display:flex;gap:1.35rem;margin:0;padding:0;font-size:.9375rem;letter-spacing:.01em}.nav-links a{color:var(--color-text-muted);text-decoration:none}.nav-links a:hover{color:var(--color-accent);text-decoration:none}.nav-toggle-input,.nav-toggle{display:none}.hero{display:flex;align-items:center;gap:2.25rem;padding-top:3.5rem;padding-bottom:.5rem}.hero-photo{flex:none;width:180px;height:180px;border-radius:50%;object-fit:cover;border:1px solid var(--color-border)}.hero-name{font-family:var(--font-serif-brand);font-size:2.5rem;font-weight:600;letter-spacing:-.01em;line-height:1.1;margin:0 0 .65rem}.hero-role{margin:0 0 .4rem;font-family:var(--font-serif-brand);font-size:1.1875rem;font-style:italic;color:var(--color-accent);line-height:1.3}.hero-affil{margin:0 0 1.2rem;color:var(--color-text-muted);font-size:.9375rem;line-height:1.55}.hero-affil a,.hero-affil a:visited{color:inherit;text-decoration:none!important}.hero-affil a:hover,.hero-affil a:focus-visible{color:var(--color-accent);text-decoration:underline!important}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0}.button,.hero-link{display:inline-block;text-decoration:none;padding:.5rem 1.1rem;border:1px solid var(--color-accent);border-radius:2px;font-size:.875rem;line-height:1.2;letter-spacing:.02em;white-space:nowrap;transition:background-color .15s ease,color .15s ease}.hero-link{background:0 0;color:var(--color-accent)}.hero-link:hover,.hero-link:focus-visible{background:var(--color-accent);color:var(--color-on-accent,#fff);text-decoration:none}.button{background:var(--color-accent);color:var(--color-on-accent,#fff)}.button:hover,.button:focus-visible{background:var(--color-accent-hover);border-color:var(--color-accent-hover);color:var(--color-on-accent,#fff);text-decoration:none}.section{padding-top:2.75rem;padding-bottom:.5rem;scroll-margin-top:var(--nav-height)}.section h2{font-family:var(--font-serif);font-size:1.0625rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--color-accent);margin:0 0 .5rem;padding-bottom:.55rem;border-bottom:1px solid var(--color-rule)}.section h3{font-family:var(--font-serif);font-size:1.0625rem;font-weight:600;letter-spacing:.01em;color:var(--color-text);margin:2.4rem 0 1rem;line-height:1.2}.section h3:first-of-type{margin-top:1.85rem}.section-note{font-size:.8125rem;color:var(--color-text-muted);margin:.7rem 0 0}.prose p{margin:0 0 1.05rem}.prose p:last-child{margin-bottom:0}.paper-list,.talk-list,.project-list,.plain-list{list-style:none;margin:0;padding:0}.paper{margin-bottom:1.45rem}.paper:last-child{margin-bottom:0}.paper-authors{margin:0;font-size:.875rem;color:var(--color-text-muted)}.paper-authors strong{color:var(--color-text);font-weight:600}.paper-authors a.coauthor,.paper-authors a.coauthor:visited{color:inherit;text-decoration:none!important}.paper-authors a.coauthor:hover,.paper-authors a.coauthor:focus-visible{color:var(--color-accent);text-decoration:underline!important}.paper-title{margin:.12rem 0;font-size:1rem;line-height:1.45}.paper-meta{margin:0;font-size:.875rem;color:var(--color-text-muted)}.paper-meta em{font-style:italic}.paper-link{white-space:nowrap}.talk-list{margin-top:1.5rem}.talk{display:grid;grid-template-columns:1fr max-content;gap:0 1.5rem;align-items:baseline;margin-bottom:.95rem;font-size:.9375rem;line-height:1.5}.talk:last-child{margin-bottom:0}.talk-place{display:block;color:var(--color-text-muted);font-size:.875rem}.talk-note{color:var(--color-text-muted)}.talk-date{position:relative;padding-right:.6em;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;font-feature-settings:"tnum";color:var(--color-text-muted);font-size:.875rem}.talk-star{position:absolute;right:0}.project-list{margin-top:1.5rem}.project-list li{margin-bottom:1.15rem;padding-left:1rem;border-left:2px solid var(--color-rule)}.project-list li:last-child{margin-bottom:0}.project-desc{margin:.15rem 0 0;font-size:.9375rem;color:var(--color-text-muted)}.badge{display:inline-block;font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);background:var(--color-surface);border-radius:2px;padding:.1rem .4rem;vertical-align:.1em}.venue-list{margin:0;font-size:.9375rem;line-height:1.75}.venue-years{margin:0;display:grid;grid-template-columns:3.5rem 1fr;gap:.55rem 1rem;font-size:.9375rem;line-height:1.75}.venue-years dt{font-weight:700;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.venue-years dd{margin:0}.contact-list{margin:1.5rem 0 0;display:grid;grid-template-columns:6rem 1fr;gap:.55rem 1rem;font-size:.9375rem}.contact-list dt{font-size:.8125rem;text-transform:uppercase;letter-spacing:.09em;font-weight:700;color:var(--color-text-muted);padding-top:.1rem}.contact-list dd{margin:0}.contact-email{display:block}.prose h1{font-family:var(--font-serif);font-size:1.9rem;font-weight:600;margin:0 0 1rem}.wrap.prose{padding-top:3rem;padding-bottom:2rem}.plain-list li{margin-bottom:.6rem}.back-link{margin-top:2.5rem;font-size:.9375rem}.site-footer{margin-top:4rem;border-top:1px solid var(--color-border)}.footer-inner{max-width:var(--content-width);margin-inline:auto;padding:1.5rem;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.35rem;font-size:.8125rem;color:var(--color-text-muted)}.footer-credit a{color:var(--color-text-muted);text-decoration:underline}.footer-credit a:hover{color:var(--color-accent)}@media(max-width:768px){body{font-size:1rem}.hero{flex-direction:column;align-items:center;text-align:center;gap:1.25rem;padding-top:2.5rem}.hero-photo{width:150px;height:150px}.hero-name{font-size:2rem}.hero-actions{justify-content:center}.prose,.section{text-align:left}.nav-inner{flex-wrap:wrap;align-items:center}.nav-toggle{display:flex;align-items:center;gap:.4rem;cursor:pointer;font-size:.875rem;letter-spacing:.01em;color:var(--color-text-muted);padding:.25rem 0;-webkit-tap-highlight-color:transparent}.nav-toggle-bars,.nav-toggle-bars::before,.nav-toggle-bars::after{display:block;width:18px;height:2px;background:var(--color-text);content:""}.nav-toggle-bars{position:relative}.nav-toggle-bars::before{position:absolute;top:-6px}.nav-toggle-bars::after{position:absolute;top:6px}.nav-links{display:none;flex-direction:column;width:100%;gap:0;order:3;border-top:1px solid var(--color-border);margin-top:.6rem}.nav-toggle-input:checked~.nav-links{display:flex}.nav-links li{border-bottom:1px solid var(--color-border)}.nav-links li:last-child{border-bottom:0}.nav-links a{display:block;padding:.7rem .15rem}.talk{grid-template-columns:1fr;gap:.1rem}.talk-date{text-align:left;padding-right:0}.talk-star{position:static;margin-left:.25em}.contact-list{grid-template-columns:1fr;gap:.15rem}.contact-list dt{margin-top:.9rem}.contact-list dt:first-child{margin-top:0}}@media(max-width:380px){.hero-photo{width:128px;height:128px}.hero-name{font-size:1.75rem}.nav-brand{font-size:1rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media print{.site-nav,.skip-link,.site-footer{display:none}body{background:#fff}a{color:var(--color-text)}}