@font-face{font-family:inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin-normal.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin-ext-normal.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin-italic.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin-ext-italic.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'source serif 4';font-style:normal;font-weight:200 900;font-display:swap;src:url(/fonts/source-serif-4-latin-normal.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'source serif 4';font-style:normal;font-weight:200 900;font-display:swap;src:url(/fonts/source-serif-4-latin-ext-normal.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'source serif 4';font-style:italic;font-weight:200 900;font-display:swap;src:url(/fonts/source-serif-4-latin-italic.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'source serif 4';font-style:italic;font-weight:200 900;font-display:swap;src:url(/fonts/source-serif-4-latin-ext-italic.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:inter cjk;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin-normal.woff2)format('woff2');unicode-range:U+0-B6,U+B8-FF,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-2013,U+2015-2017,U+201E-2025,U+2027-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:inter cjk;font-style:italic;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin-italic.woff2)format('woff2');unicode-range:U+0-B6,U+B8-FF,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-2013,U+2015-2017,U+201E-2025,U+2027-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-sans:'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;--font-serif:'Source Serif 4', ui-serif, Georgia, 'Times New Roman', serif;--font-mono:ui-monospace, 'SF Mono', 'JetBrains Mono', 'Cascadia Code', Menlo, Consolas, monospace;--header-h:60px;--radius:14px;--container:1120px;--gutter:16px;color-scheme:light;--bg:#fafaf8;--bg-elev:#ffffff;--bg-subtle:#f1f1ed;--text:#191b20;--text-2:#464b56;--text-3:#686d7a;--border:#e4e4de;--border-strong:#cfcfc7;--accent:#3446c2;--accent-hover:#232f8f;--accent-soft:#eef0fd;--code-bg:#f4f4f0;--seg-1:#4f5bd5;--seg-2:#0d9488;--seg-3:#d97706;--seg-4:#db2777;--shadow-sm:0 1px 2px rgb(24 24 32 / 0.04);--shadow:0 1px 2px rgb(24 24 32 / 0.04), 0 8px 24px -8px rgb(24 24 32 / 0.10)}:root[data-theme=dark]{color-scheme:dark;--bg:#0f1115;--bg-elev:#161920;--bg-subtle:#1c2029;--text:#e8e9ec;--text-2:#b6bac4;--text-3:#8f95a2;--border:#272c36;--border-strong:#3a404c;--accent:#a3aeff;--accent-hover:#c8ceff;--accent-soft:rgb(163 174 255 / 0.12);--code-bg:#14171d;--seg-1:#818cf8;--seg-2:#2dd4bf;--seg-3:#fbbf24;--seg-4:#f472b6;--shadow-sm:0 1px 2px rgb(0 0 0 / 0.3);--shadow:0 1px 2px rgb(0 0 0 / 0.3), 0 8px 24px -8px rgb(0 0 0 / 0.5)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#0f1115;--bg-elev:#161920;--bg-subtle:#1c2029;--text:#e8e9ec;--text-2:#b6bac4;--text-3:#8f95a2;--border:#272c36;--border-strong:#3a404c;--accent:#a3aeff;--accent-hover:#c8ceff;--accent-soft:rgb(163 174 255 / 0.12);--code-bg:#14171d;--seg-1:#818cf8;--seg-2:#2dd4bf;--seg-3:#fbbf24;--seg-4:#f472b6;--shadow-sm:0 1px 2px rgb(0 0 0 / 0.3);--shadow:0 1px 2px rgb(0 0 0 / 0.3), 0 8px 24px -8px rgb(0 0 0 / 0.5)}}:lang(zh-hans){--font-sans:'Inter CJK', -apple-system, 'PingFang SC', 'Hiragino Sans GB', 'Noto Sans SC', 'Noto Sans CJK SC', 'Source Han Sans SC', 'Microsoft YaHei', sans-serif;--font-serif:'Source Serif 4', -apple-system, 'PingFang SC', 'Hiragino Sans GB', 'Noto Sans SC', 'Noto Sans CJK SC', 'Source Han Sans SC', 'Microsoft YaHei', sans-serif}:lang(zh-hant){--font-sans:'Inter CJK', -apple-system, 'PingFang HK', 'PingFang TC', 'Noto Sans HK', 'Noto Sans TC', 'Noto Sans CJK TC', 'Source Han Sans TC', 'Microsoft JhengHei', sans-serif;--font-serif:'Source Serif 4', -apple-system, 'PingFang HK', 'PingFang TC', 'Noto Sans HK', 'Noto Sans TC', 'Noto Sans CJK TC', 'Source Han Sans TC', 'Microsoft JhengHei', sans-serif}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 16px)}body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:1rem;line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}html:lang(zh) body{line-height:1.8}main{flex:1 0 auto}main:focus{outline:none}img{max-width:100%;height:auto}.icon{display:inline-block;flex-shrink:0;width:1em;height:1em;vertical-align:-.125em}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:.2em}a:hover{color:var(--accent-hover)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}::selection{background:color-mix(in srgb,var(--accent) 24%,transparent)}h1,h2,h3,h4{font-family:var(--font-serif);font-weight:600;line-height:1.25;letter-spacing:-.01em;color:var(--text);text-wrap:balance}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}.narrow{max-width:calc(720px + 2 * var(--gutter))}@media(min-width:640px){:root{--gutter:24px}}@media(min-width:960px){:root{--gutter:32px}}.muted{color:var(--text-3)}.skip-link{position:absolute;top:-100px;left:var(--gutter);z-index:100;padding:8px 14px;border-radius:8px;background:var(--text);color:var(--bg);text-decoration:none;font-weight:500}.skip-link:focus{top:12px;color:var(--bg)}.icon-btn{display:inline-grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid var(--border);border-radius:10px;background:var(--bg-elev);color:var(--text-2);cursor:pointer;transition:color .15s,border-color .15s,background-color .15s,transform .15s}.icon-btn .icon{width:18px;height:18px}.icon-btn:hover{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,var(--border));background:var(--accent-soft);transform:translateY(-1px)}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border-radius:999px;background:var(--bg-subtle);color:var(--text-2);font-size:.6875rem;font-weight:600;line-height:1.7;letter-spacing:.04em;text-transform:uppercase}.badge::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--dot,var(--text-3))}.badge-journal{--dot:var(--seg-1)}.badge-conference,.badge-workshop{--dot:var(--seg-2)}.badge-preprint{--dot:var(--seg-3)}.badge-thesis,.badge-chapter{--dot:var(--seg-4)}.badge-status{background:0 0;box-shadow:inset 0 0 0 1px var(--border-strong);color:var(--text-3)}.badge-status::before,.badge-award::before{display:none}.badge-award{color:color-mix(in srgb,var(--seg-3) 70%,var(--text));background:color-mix(in srgb,var(--seg-3) 14%,transparent)}.pill{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid var(--border);border-radius:999px;background:var(--bg);color:var(--text-2);font:inherit;font-size:.8125rem;font-weight:500;line-height:1;text-decoration:none;cursor:pointer;transition:color .15s,border-color .15s,background-color .15s}.pill .icon{width:14px;height:14px}.pill:hover{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:var(--accent-soft)}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;background:var(--text);color:var(--bg);font-weight:500;text-decoration:none;transition:opacity .15s}.btn:hover{color:var(--bg);opacity:.85}.site-header{position:sticky;top:0;z-index:50;height:var(--header-h);border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 85%,transparent);-webkit-backdrop-filter:saturate(180%)blur(12px);backdrop-filter:saturate(180%)blur(12px)}@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.site-header{background:var(--bg)}}.header-inner{display:flex;align-items:center;gap:12px;height:100%}.brand{display:inline-flex;align-items:center;gap:10px;margin-right:auto;color:var(--text);font-family:var(--font-serif);font-size:1.0625rem;font-weight:600;text-decoration:none;white-space:nowrap}.brand:hover{color:var(--text)}.brand-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--text);color:var(--bg);font-family:var(--font-sans);font-size:.8125rem;font-weight:700;letter-spacing:.02em}@media(max-width:479px){.brand-name{display:none}}.site-nav ul{display:flex;gap:2px;margin:0;padding:0;list-style:none}.site-nav a{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:8px;color:var(--text-2);font-size:.9375rem;font-weight:500;text-decoration:none;white-space:nowrap}.site-nav a:hover,.site-nav a[aria-current]{color:var(--text);background:var(--bg-subtle)}.nav-tag{padding:0 5px;border:1px solid var(--border-strong);border-radius:4px;color:var(--text-3);font-size:.625rem;font-weight:600;letter-spacing:.04em;line-height:1.6}@media(max-width:719px){.nav-section{display:none}}.header-tools{display:flex;align-items:center;gap:8px}.lang-switch ul{display:flex;gap:2px;margin:0;padding:3px;border:1px solid var(--border);border-radius:10px;background:var(--bg-elev);list-style:none}.lang-switch a{display:block;padding:3px 8px;border-radius:7px;color:var(--text-2);font-size:.8125rem;font-weight:500;line-height:1.5;text-decoration:none;white-space:nowrap}.lang-switch a:hover{color:var(--text);background:var(--bg-subtle)}.lang-switch a[aria-current]{background:var(--text);color:var(--bg)}@media(max-width:399px){.lang-switch a{padding-inline:6px}}.theme-toggle .icon-sun{display:none}:root[data-theme=dark] .theme-toggle .icon-sun{display:inline-block}:root[data-theme=dark] .theme-toggle .icon-moon{display:none}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-toggle .icon-sun{display:inline-block}:root:not([data-theme=light]) .theme-toggle .icon-moon{display:none}}html:not(.js) .theme-toggle{display:none}.home{padding-block:40px 72px}.home-main{min-width:0;max-width:720px}.profile{margin-bottom:48px;text-align:center}.avatar{position:relative;width:152px;height:152px;margin:12px auto 24px}.avatar img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;background:var(--bg-subtle)}.avatar-ring{position:absolute;inset:-10px;width:calc(100% + 20px);height:calc(100% + 20px);overflow:visible;transform:rotate(-80deg);transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}.avatar:hover .avatar-ring{transform:rotate(10deg)}.seg{fill:none;stroke:var(--accent);stroke-width:1.4;stroke-linecap:round;stroke-dasharray:20 80}.seg-2{stroke-dashoffset:-25}.seg-3{stroke-dashoffset:-50}.seg-4{stroke-dashoffset:-75}.profile-name{margin:0 0 6px;font-size:2rem;letter-spacing:-.02em}.profile-role{margin:0;color:var(--accent);font-size:.8125rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.profile-topic{max-width:30ch;margin:8px auto 24px;color:var(--text-2);font-family:var(--font-serif);font-size:1.0625rem;font-style:italic;line-height:1.45}:lang(zh) .profile-topic{font-style:normal}.profile-facts{display:grid;gap:10px;width:fit-content;max-width:100%;margin:0 auto 24px;padding:0;color:var(--text-2);font-size:.875rem;line-height:1.5;list-style:none;text-align:left}.profile-facts li{display:flex;gap:10px;align-items:flex-start}.profile-facts .icon{margin-top:.2em;color:var(--text-3)}.profile-facts a{color:inherit;text-decoration-color:var(--border-strong)}.profile-facts a:hover{color:var(--accent);text-decoration-color:initial}.profile-email{overflow-wrap:anywhere}.profile-links{display:grid;gap:8px}.link-row{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0;padding:0;list-style:none}.profile-links .icon-btn{width:40px;height:40px}@media(min-width:960px){.home{display:grid;grid-template-columns:264px minmax(0,1fr);gap:80px;align-items:start;padding-block:64px 112px}.profile{position:sticky;top:calc(var(--header-h) + 48px);margin-bottom:0;text-align:left}.avatar{width:184px;height:184px;margin:10px 0 28px 10px}.profile-topic{margin-inline:0}.profile-facts{margin-inline:0}.link-row{justify-content:flex-start}}.section+.section{margin-top:64px}.section-title{display:flex;align-items:center;gap:16px;margin:0 0 24px;font-size:1.5rem}.section-title::after{content:'';flex:1;height:1px;background:var(--border)}.pub-year+.pub-year{margin-top:32px}.pub-year-label{margin:0 0 12px;color:var(--text-3);font-size:1.0625rem;font-variant-numeric:tabular-nums}.pub-list{display:grid;gap:14px;margin:0;padding:0;list-style:none}@media(min-width:720px){.pub-year{display:grid;grid-template-columns:56px minmax(0,1fr);gap:20px}.pub-year-label{position:sticky;top:calc(var(--header-h) + 20px);align-self:start;margin:0;padding-top:18px}}.pub{padding:18px 20px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elev);box-shadow:var(--shadow-sm);transition:border-color .2s,box-shadow .2s}.pub:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}.pub-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.pub-tags .icon{width:12px;height:12px}.pub-title{margin:0 0 6px;text-wrap:pretty;font-size:1.125rem;line-height:1.35}.pub-title a{color:var(--text);text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0 1px;transition:background-size .25s,color .15s}.pub-title a:hover{color:var(--accent);background-size:100% 1px}.pub-authors,.pub-venue{margin:0;font-size:.9375rem}.pub-authors{color:var(--text-2)}.pub-authors .self{color:var(--text);font-weight:600}.pub-venue{margin-top:2px;color:var(--text-3)}.pub-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.bib-toggle .chev{transition:transform .2s}.bib-toggle[aria-expanded=true] .chev{transform:rotate(180deg)}.bib-toggle[aria-expanded=true]{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.bibtex{position:relative;margin-top:12px}.bibtex pre{margin:0;padding:14px 16px;overflow-x:auto;border:1px solid var(--border);border-radius:10px;background:var(--code-bg);color:var(--text-2);font-family:var(--font-mono);font-size:.8125rem;line-height:1.55}.copy-btn{position:absolute;top:8px;right:8px;display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border:1px solid var(--border);border-radius:7px;background:var(--bg-elev);color:var(--text-2);font:inherit;font-size:.75rem;cursor:pointer}.copy-btn:hover{color:var(--accent)}.copy-btn.is-copied{color:var(--seg-2);border-color:initial}.copy-btn .icon{width:13px;height:13px}html:not(.js) .bib-toggle,html:not(.js) .copy-btn{display:none}html:not(.js) .bibtex[hidden]{display:block}.prose{font-size:1.0625rem;overflow-wrap:break-word}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose p{margin:0 0 1.1em}.prose strong{font-weight:600}.prose h2{margin:2.2em 0 .6em;font-size:1.5rem}.prose h3{margin:1.8em 0 .5em;font-size:1.25rem}.prose h4{margin:1.6em 0 .4em;font-size:1.0625rem}.prose :is(ul,ol){margin:0 0 1.1em;padding-left:1.4em}.prose li+li{margin-top:.35em}.prose li::marker{color:var(--text-3)}.prose blockquote{margin:1.6em 0;padding:.2em 0 .2em 1.1em;border-left:3px solid var(--accent);color:var(--text-2)}.prose hr{margin:2.5em 0;border:0;border-top:1px solid var(--border)}.prose :not(pre)>code{padding:.12em .36em;border:1px solid var(--border);border-radius:5px;background:var(--code-bg);font-family:var(--font-mono);font-size:.86em}.prose pre{margin:1.6em 0;padding:16px 18px;overflow-x:auto;border:1px solid var(--border);border-radius:12px;background:var(--code-bg);font-size:.875rem;line-height:1.6}.prose pre code{font-family:var(--font-mono)}.prose .highlight{margin:1.6em 0}.prose .highlight pre{margin:0}.prose img{border-radius:10px}.prose figure{margin:2em 0}.prose figure img{display:block;margin-inline:auto}.prose figcaption{margin-top:.7em;color:var(--text-3);font-size:.875rem;text-align:center}.prose table{display:block;width:100%;margin:1.6em 0;overflow-x:auto;border-collapse:collapse;font-size:.9375rem}.prose th,.prose td{padding:.55em .8em;border-bottom:1px solid var(--border);text-align:left}.prose th{color:var(--text);font-weight:600}.prose .katex{font-size:1.08em}.prose .katex-display{margin:1.4em 0;padding:.2em 0;overflow-x:auto;overflow-y:hidden}.prose .footnotes{margin-top:3em;color:var(--text-2);font-size:.9375rem}.prose .footnotes hr{margin-bottom:1.5em}.heading-anchor{margin-left:.35em;color:var(--text-3);font-weight:400;text-decoration:none;opacity:0;transition:opacity .15s}.prose :is(h2,h3,h4):hover .heading-anchor{opacity:1}.page-header{padding-block:48px 28px}.page-title{margin:0 0 .35em;font-size:clamp(1.875rem,1.4rem + 2vw,2.5rem);letter-spacing:-.02em}.lead{margin:0;color:var(--text-2);font-size:1.125rem}.post-list{margin:0 0 80px;padding:0;border-top:1px solid var(--border);list-style:none}.post-item{padding:26px 0;border-bottom:1px solid var(--border)}.post-meta{margin:0 0 6px;color:var(--text-3);font-size:.875rem}.post-item-title{margin:0 0 8px;font-size:1.375rem}.post-item-title a{color:var(--text);text-decoration:none}.post-item-title a:hover{color:var(--accent)}.post-summary{margin:0;color:var(--text-2)}.post{padding-bottom:88px}.post .page-header{padding-top:20px}.back-link{display:inline-flex;align-items:center;gap:6px;margin-top:36px;color:var(--text-3);font-size:.875rem;text-decoration:none}.back-link:hover{color:var(--accent)}.toc{margin-bottom:36px;padding:16px 20px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elev);font-size:.9375rem}.toc-title{margin:0 0 8px;color:var(--text-3);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.toc ul{margin:0;padding:0;list-style:none}.toc ul ul{padding-left:1em}.toc li{margin:4px 0}.toc a{color:var(--text-2);text-decoration:none}.toc a:hover{color:var(--accent)}.not-found{padding-block:96px 120px;text-align:center}.not-found .page-header{padding:0}.not-found .lead{margin-bottom:32px}.not-found-code{display:inline-block;margin:0 0 12px;background:linear-gradient(90deg,var(--seg-1),var(--seg-2),var(--seg-3),var(--seg-4));-webkit-background-clip:text;background-clip:text;color:transparent;font-family:var(--font-serif);font-size:5.5rem;font-weight:700;line-height:1}.site-footer{padding-block:28px;border-top:1px solid var(--border);color:var(--text-3);font-size:.875rem}.footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 24px}.footer-inner p{margin:0}.site-footer a{color:var(--text-2);text-decoration-color:var(--border-strong)}.site-footer a:hover{color:var(--accent);text-decoration-color:initial}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}@media print{.site-header,.site-footer,.skip-link,.pub-actions,.bibtex,.avatar-ring{display:none!important}body{background:#fff;color:#000}.home{display:block;padding:0}.profile{position:static;text-align:left}.pub{padding:0 0 12px;border:0;box-shadow:none}a{color:inherit}}.chroma{-webkit-text-size-adjust:none}.chroma .err{color:#f6f8fa;background-color:#82071e}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#dedede}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .line{display:flex}.chroma .k{color:#cf222e}.chroma .kc{color:#cf222e}.chroma .kd{color:#cf222e}.chroma .kn{color:#cf222e}.chroma .kp{color:#cf222e}.chroma .kr{color:#cf222e}.chroma .kt{color:#cf222e}.chroma .na{color:#1f2328}.chroma .nc{color:#1f2328}.chroma .no{color:#0550ae}.chroma .nd{color:#0550ae}.chroma .ni{color:#6639ba}.chroma .nl{color:#900;font-weight:700}.chroma .nn{color:#24292e}.chroma .nx{color:#1f2328}.chroma .nt{color:#0550ae}.chroma .nb{color:#6639ba}.chroma .bp{color:#6a737d}.chroma .nv{color:#953800}.chroma .vc{color:#953800}.chroma .vg{color:#953800}.chroma .vi{color:#953800}.chroma .vm{color:#953800}.chroma .nf{color:#6639ba}.chroma .fm{color:#6639ba}.chroma .s{color:#0a3069}.chroma .sa{color:#0a3069}.chroma .sb{color:#0a3069}.chroma .sc{color:#0a3069}.chroma .dl{color:#0a3069}.chroma .sd{color:#0a3069}.chroma .s2{color:#0a3069}.chroma .se{color:#0a3069}.chroma .sh{color:#0a3069}.chroma .si{color:#0a3069}.chroma .sx{color:#0a3069}.chroma .sr{color:#0a3069}.chroma .s1{color:#0a3069}.chroma .ss{color:#032f62}.chroma .m{color:#0550ae}.chroma .mb{color:#0550ae}.chroma .mf{color:#0550ae}.chroma .mh{color:#0550ae}.chroma .mi{color:#0550ae}.chroma .il{color:#0550ae}.chroma .mo{color:#0550ae}.chroma .o{color:#0550ae}.chroma .ow{color:#0550ae}.chroma .or{color:#0550ae}.chroma .p{color:#1f2328}.chroma .c{color:#57606a}.chroma .ch{color:#57606a}.chroma .cm{color:#57606a}.chroma .c1{color:#57606a}.chroma .cs{color:#57606a}.chroma .cp{color:#57606a}.chroma .cpf{color:#57606a}.chroma .gd{color:#82071e;background-color:#ffebe9}.chroma .ge{color:#1f2328}.chroma .gi{color:#116329;background-color:#dafbe1}.chroma .go{color:#1f2328}.chroma .gl{text-decoration:underline}.chroma .w{color:#fff}:root[data-theme=dark] .chroma span{color:inherit;background-color:initial}:root[data-theme=dark] .chroma{-webkit-text-size-adjust:none}:root[data-theme=dark] .chroma .err{color:#f85149}:root[data-theme=dark] .chroma .lnlinks{outline:none;text-decoration:none;color:inherit}:root[data-theme=dark] .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}:root[data-theme=dark] .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}:root[data-theme=dark] .chroma .hl{background-color:#6e7681}:root[data-theme=dark] .chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#737679}:root[data-theme=dark] .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#6e7681}:root[data-theme=dark] .chroma .line{display:flex}:root[data-theme=dark] .chroma .k{color:#ff7b72}:root[data-theme=dark] .chroma .kc{color:#79c0ff}:root[data-theme=dark] .chroma .kd{color:#ff7b72}:root[data-theme=dark] .chroma .kn{color:#ff7b72}:root[data-theme=dark] .chroma .kp{color:#79c0ff}:root[data-theme=dark] .chroma .kr{color:#ff7b72}:root[data-theme=dark] .chroma .kt{color:#ff7b72}:root[data-theme=dark] .chroma .nc{color:#f0883e;font-weight:700}:root[data-theme=dark] .chroma .no{color:#79c0ff;font-weight:700}:root[data-theme=dark] .chroma .nd{color:#d2a8ff;font-weight:700}:root[data-theme=dark] .chroma .ni{color:#ffa657}:root[data-theme=dark] .chroma .ne{color:#f0883e;font-weight:700}:root[data-theme=dark] .chroma .nl{color:#79c0ff;font-weight:700}:root[data-theme=dark] .chroma .nn{color:#ff7b72}:root[data-theme=dark] .chroma .nx{color:#e6edf3}:root[data-theme=dark] .chroma .py{color:#79c0ff}:root[data-theme=dark] .chroma .nt{color:#7ee787}:root[data-theme=dark] .chroma .nv{color:#79c0ff}:root[data-theme=dark] .chroma .vc{color:#79c0ff}:root[data-theme=dark] .chroma .vg{color:#79c0ff}:root[data-theme=dark] .chroma .vi{color:#79c0ff}:root[data-theme=dark] .chroma .vm{color:#79c0ff}:root[data-theme=dark] .chroma .nf{color:#d2a8ff;font-weight:700}:root[data-theme=dark] .chroma .fm{color:#d2a8ff;font-weight:700}:root[data-theme=dark] .chroma .l{color:#a5d6ff}:root[data-theme=dark] .chroma .ld{color:#79c0ff}:root[data-theme=dark] .chroma .s{color:#a5d6ff}:root[data-theme=dark] .chroma .sa{color:#79c0ff}:root[data-theme=dark] .chroma .sb{color:#a5d6ff}:root[data-theme=dark] .chroma .sc{color:#a5d6ff}:root[data-theme=dark] .chroma .dl{color:#79c0ff}:root[data-theme=dark] .chroma .sd{color:#a5d6ff}:root[data-theme=dark] .chroma .s2{color:#a5d6ff}:root[data-theme=dark] .chroma .se{color:#79c0ff}:root[data-theme=dark] .chroma .sh{color:#79c0ff}:root[data-theme=dark] .chroma .si{color:#a5d6ff}:root[data-theme=dark] .chroma .sx{color:#a5d6ff}:root[data-theme=dark] .chroma .sr{color:#79c0ff}:root[data-theme=dark] .chroma .s1{color:#a5d6ff}:root[data-theme=dark] .chroma .ss{color:#a5d6ff}:root[data-theme=dark] .chroma .m{color:#a5d6ff}:root[data-theme=dark] .chroma .mb{color:#a5d6ff}:root[data-theme=dark] .chroma .mf{color:#a5d6ff}:root[data-theme=dark] .chroma .mh{color:#a5d6ff}:root[data-theme=dark] .chroma .mi{color:#a5d6ff}:root[data-theme=dark] .chroma .il{color:#a5d6ff}:root[data-theme=dark] .chroma .mo{color:#a5d6ff}:root[data-theme=dark] .chroma .o{color:#ff7b72;font-weight:700}:root[data-theme=dark] .chroma .ow{color:#ff7b72;font-weight:700}:root[data-theme=dark] .chroma .or{color:#ff7b72;font-weight:700}:root[data-theme=dark] .chroma .c{color:#8b949e;font-style:italic}:root[data-theme=dark] .chroma .ch{color:#8b949e;font-style:italic}:root[data-theme=dark] .chroma .cm{color:#8b949e;font-style:italic}:root[data-theme=dark] .chroma .c1{color:#8b949e;font-style:italic}:root[data-theme=dark] .chroma .cs{color:#8b949e;font-weight:700;font-style:italic}:root[data-theme=dark] .chroma .cp{color:#8b949e;font-weight:700;font-style:italic}:root[data-theme=dark] .chroma .cpf{color:#8b949e;font-weight:700;font-style:italic}:root[data-theme=dark] .chroma .gd{color:#ffa198;background-color:#490202}:root[data-theme=dark] .chroma .ge{font-style:italic}:root[data-theme=dark] .chroma .gr{color:#ffa198}:root[data-theme=dark] .chroma .gh{color:#79c0ff;font-weight:700}:root[data-theme=dark] .chroma .gi{color:#56d364;background-color:#0f5323}:root[data-theme=dark] .chroma .go{color:#8b949e}:root[data-theme=dark] .chroma .gp{color:#8b949e}:root[data-theme=dark] .chroma .gs{font-weight:700}:root[data-theme=dark] .chroma .gu{color:#79c0ff}:root[data-theme=dark] .chroma .gt{color:#ff7b72}:root[data-theme=dark] .chroma .gl{text-decoration:underline}:root[data-theme=dark] .chroma .w{color:#6e7681}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .chroma span{color:inherit;background-color:initial}:root:not([data-theme=light]) .chroma{-webkit-text-size-adjust:none}:root:not([data-theme=light]) .chroma .err{color:#f85149}:root:not([data-theme=light]) .chroma .lnlinks{outline:none;text-decoration:none;color:inherit}:root:not([data-theme=light]) .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}:root:not([data-theme=light]) .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}:root:not([data-theme=light]) .chroma .hl{background-color:#6e7681}:root:not([data-theme=light]) .chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#737679}:root:not([data-theme=light]) .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#6e7681}:root:not([data-theme=light]) .chroma .line{display:flex}:root:not([data-theme=light]) .chroma .k{color:#ff7b72}:root:not([data-theme=light]) .chroma .kc{color:#79c0ff}:root:not([data-theme=light]) .chroma .kd{color:#ff7b72}:root:not([data-theme=light]) .chroma .kn{color:#ff7b72}:root:not([data-theme=light]) .chroma .kp{color:#79c0ff}:root:not([data-theme=light]) .chroma .kr{color:#ff7b72}:root:not([data-theme=light]) .chroma .kt{color:#ff7b72}:root:not([data-theme=light]) .chroma .nc{color:#f0883e;font-weight:700}:root:not([data-theme=light]) .chroma .no{color:#79c0ff;font-weight:700}:root:not([data-theme=light]) .chroma .nd{color:#d2a8ff;font-weight:700}:root:not([data-theme=light]) .chroma .ni{color:#ffa657}:root:not([data-theme=light]) .chroma .ne{color:#f0883e;font-weight:700}:root:not([data-theme=light]) .chroma .nl{color:#79c0ff;font-weight:700}:root:not([data-theme=light]) .chroma .nn{color:#ff7b72}:root:not([data-theme=light]) .chroma .nx{color:#e6edf3}:root:not([data-theme=light]) .chroma .py{color:#79c0ff}:root:not([data-theme=light]) .chroma .nt{color:#7ee787}:root:not([data-theme=light]) .chroma .nv{color:#79c0ff}:root:not([data-theme=light]) .chroma .vc{color:#79c0ff}:root:not([data-theme=light]) .chroma .vg{color:#79c0ff}:root:not([data-theme=light]) .chroma .vi{color:#79c0ff}:root:not([data-theme=light]) .chroma .vm{color:#79c0ff}:root:not([data-theme=light]) .chroma .nf{color:#d2a8ff;font-weight:700}:root:not([data-theme=light]) .chroma .fm{color:#d2a8ff;font-weight:700}:root:not([data-theme=light]) .chroma .l{color:#a5d6ff}:root:not([data-theme=light]) .chroma .ld{color:#79c0ff}:root:not([data-theme=light]) .chroma .s{color:#a5d6ff}:root:not([data-theme=light]) .chroma .sa{color:#79c0ff}:root:not([data-theme=light]) .chroma .sb{color:#a5d6ff}:root:not([data-theme=light]) .chroma .sc{color:#a5d6ff}:root:not([data-theme=light]) .chroma .dl{color:#79c0ff}:root:not([data-theme=light]) .chroma .sd{color:#a5d6ff}:root:not([data-theme=light]) .chroma .s2{color:#a5d6ff}:root:not([data-theme=light]) .chroma .se{color:#79c0ff}:root:not([data-theme=light]) .chroma .sh{color:#79c0ff}:root:not([data-theme=light]) .chroma .si{color:#a5d6ff}:root:not([data-theme=light]) .chroma .sx{color:#a5d6ff}:root:not([data-theme=light]) .chroma .sr{color:#79c0ff}:root:not([data-theme=light]) .chroma .s1{color:#a5d6ff}:root:not([data-theme=light]) .chroma .ss{color:#a5d6ff}:root:not([data-theme=light]) .chroma .m{color:#a5d6ff}:root:not([data-theme=light]) .chroma .mb{color:#a5d6ff}:root:not([data-theme=light]) .chroma .mf{color:#a5d6ff}:root:not([data-theme=light]) .chroma .mh{color:#a5d6ff}:root:not([data-theme=light]) .chroma .mi{color:#a5d6ff}:root:not([data-theme=light]) .chroma .il{color:#a5d6ff}:root:not([data-theme=light]) .chroma .mo{color:#a5d6ff}:root:not([data-theme=light]) .chroma .o{color:#ff7b72;font-weight:700}:root:not([data-theme=light]) .chroma .ow{color:#ff7b72;font-weight:700}:root:not([data-theme=light]) .chroma .or{color:#ff7b72;font-weight:700}:root:not([data-theme=light]) .chroma .c{color:#8b949e;font-style:italic}:root:not([data-theme=light]) .chroma .ch{color:#8b949e;font-style:italic}:root:not([data-theme=light]) .chroma .cm{color:#8b949e;font-style:italic}:root:not([data-theme=light]) .chroma .c1{color:#8b949e;font-style:italic}:root:not([data-theme=light]) .chroma .cs{color:#8b949e;font-weight:700;font-style:italic}:root:not([data-theme=light]) .chroma .cp{color:#8b949e;font-weight:700;font-style:italic}:root:not([data-theme=light]) .chroma .cpf{color:#8b949e;font-weight:700;font-style:italic}:root:not([data-theme=light]) .chroma .gd{color:#ffa198;background-color:#490202}:root:not([data-theme=light]) .chroma .ge{font-style:italic}:root:not([data-theme=light]) .chroma .gr{color:#ffa198}:root:not([data-theme=light]) .chroma .gh{color:#79c0ff;font-weight:700}:root:not([data-theme=light]) .chroma .gi{color:#56d364;background-color:#0f5323}:root:not([data-theme=light]) .chroma .go{color:#8b949e}:root:not([data-theme=light]) .chroma .gp{color:#8b949e}:root:not([data-theme=light]) .chroma .gs{font-weight:700}:root:not([data-theme=light]) .chroma .gu{color:#79c0ff}:root:not([data-theme=light]) .chroma .gt{color:#ff7b72}:root:not([data-theme=light]) .chroma .gl{text-decoration:underline}:root:not([data-theme=light]) .chroma .w{color:#6e7681}}