:root{--bg: #f5f5f7;--surface: #ffffff;--surface-soft: #f2f2f7;--surface-muted: #e5e5ea;--text: #1d1d1f;--muted: #6e6e73;--border: #d2d2d7;--border-strong: #c7c7cc;--accent: #0a67d1;--accent-strong: #005fcc;--accent-soft: #eaf3ff;--titlebar: #f9f9fb;--titlebar-bright: #ededf1;--button-highlight: #ffffff;--button-shadow: #d2d2d7;--shadow: 0 12px 28px rgba(0, 0, 0, .1);--radius: 14px;--shell: min(1180px, calc(100vw - 32px) )}:root[data-theme=night]{--bg: #1c1c1e;--surface: #2c2c2e;--surface-soft: #3a3a3c;--surface-muted: #242426;--text: #f5f5f7;--muted: #aeaeb2;--border: #48484a;--border-strong: #636366;--accent: #58a6ff;--accent-strong: #74b7ff;--accent-soft: #17365f;--titlebar: #343436;--titlebar-bright: #2b2b2d;--button-highlight: #565658;--button-shadow: #19191a;--shadow: 0 14px 32px rgba(0, 0, 0, .36)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--text);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Arial,sans-serif;line-height:1.6}:root[data-theme=night] body{background:var(--bg)}a{color:inherit;text-decoration:none}main{padding-bottom:24px}.shell{width:var(--shell);margin:0 auto}.page-section{padding:32px 0}.page-anchor{scroll-margin-top:112px}.card,.publication-item,.essay-article,.nav-shell{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);outline:0}.card:before,.publication-item:before,.essay-article:before,.nav-shell:before{content:"";position:absolute;inset:0 0 auto;height:32px;background:linear-gradient(180deg,var(--titlebar),var(--titlebar-bright));border-bottom:1px solid var(--border);pointer-events:none}.card:after,.publication-item:after,.essay-article:after,.nav-shell:after{content:"";position:absolute;top:10px;left:14px;width:12px;height:12px;border-radius:50%;background:#ff5f57;box-shadow:18px 0 #febc2e,36px 0 #28c840;pointer-events:none}.site-header{position:sticky;top:0;z-index:20;padding:14px 0 0;background:#f5f5f7d1;backdrop-filter:blur(18px)}:root[data-theme=night] .site-header{background:#1c1c1ed1}.nav-shell{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:44px 18px 12px}.brand{display:inline-flex;align-items:center;gap:14px;min-width:0}.brand-mark{width:34px;height:34px;border-radius:10px;border:1px solid var(--border);object-fit:cover;flex-shrink:0}.brand-copy{display:flex;flex-direction:column;min-width:0;gap:2px;color:var(--muted);font-size:.9rem}.brand-copy strong{color:var(--text);font-weight:700}.nav-links{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}.nav-controls,.theme-toggle{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.nav-link{padding:8px 12px;border-radius:8px;border:1px solid transparent;color:var(--muted)}.nav-link:hover,.nav-link.active{color:var(--accent-strong);border-color:var(--border);background:var(--accent-soft)}.control-button{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface-soft);color:var(--muted);font:inherit;font-size:.84rem;cursor:pointer}.control-button.active{color:var(--accent-strong);border-color:var(--accent);background:var(--accent-soft)}.icon-button{width:36px;min-width:36px;padding:0;font-size:1rem}.section-heading{display:grid;gap:10px;margin-bottom:20px;max-width:780px;padding-top:16px;border-top:1px solid var(--border-strong)}.eyebrow{margin:0;color:var(--accent-strong);text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;font-weight:700;font-family:Consolas,Segoe UI Mono,monospace}.section-heading h2{margin:0;font-size:clamp(1.9rem,4vw,2.8rem);line-height:1.04;font-weight:700;letter-spacing:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Helvetica Neue,Arial,sans-serif}.section-intro{margin:0;max-width:64ch;color:var(--muted)}.button-row{display:flex;flex-wrap:wrap;gap:12px}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:0 16px;border-radius:8px;border:1px solid var(--text);background:var(--text);color:var(--surface);font-weight:600}.button.secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.grid{display:grid;gap:16px}.research-grid,.essay-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.research-card,.project-card,.essay-card{padding:52px 20px 20px}.project-card{display:flex;flex-direction:column;min-height:260px}.research-card h3,.project-card h3,.essay-card h3{margin:0 0 10px;font-size:1.08rem}.research-card p,.project-card p,.essay-card p{margin:0;color:var(--muted)}.tag-list{display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:16px 0 0;list-style:none}.tag-list li{padding:5px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface-soft);color:var(--accent-strong);font-size:.84rem}.publication-list{display:grid;gap:14px}.publication-item{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:20px;padding:52px 22px 22px}.publication-visual{position:relative;z-index:1;align-self:start;width:100%;aspect-ratio:16 / 9;margin:0;overflow:hidden;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.publication-visual img{display:block;width:100%;height:100%;padding:8px;object-fit:contain}.publication-visual-placeholder{width:100%;height:100%;background:linear-gradient(135deg,rgba(0,0,0,.06),transparent 58%),linear-gradient(rgba(0,0,0,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.06) 1px,transparent 1px),var(--surface-muted);background-size:auto,18px 18px,18px 18px,auto}.status{color:var(--accent-strong);font-size:.88rem}.publication-body{display:flex;flex-direction:column}.publication-body h3{margin:0 0 6px;font-size:1.18rem;font-weight:700;line-height:1.35}.publication-authors{margin:0 0 4px;font-size:.92rem;font-weight:500;line-height:1.5;color:var(--text-secondary, var(--muted))}.publication-venue{margin:0 0 12px;font-size:.86rem;font-style:italic;line-height:1.4;color:var(--accent-strong)}.publication-abstract{margin:0 0 14px;font-size:.9rem;line-height:1.65;color:var(--muted)}.publication-links,.footer-links,.hero-links{display:flex;flex-wrap:wrap;gap:8px}.publication-links{margin-top:auto;padding-top:2px}.publication-links a{display:inline-flex;align-items:center;padding:5px 14px;border-radius:6px;background:var(--surface-soft);color:var(--accent-strong);font-weight:600;font-size:.84rem;line-height:1.4;text-decoration:none;transition:background .2s,color .2s}.publication-links a:hover{background:var(--accent-strong);color:var(--surface)}.text-link{color:var(--accent-strong);font-weight:600}.text-link:hover{text-decoration:underline}.footer-links a,.hero-links a{color:var(--accent-strong);font-weight:600}.project-topline{display:flex;align-items:center;justify-content:space-between;gap:10px}.project-actions{display:flex;justify-content:flex-end;margin-top:auto;padding-top:20px}.github-button{display:inline-flex;align-items:center;gap:8px;padding:5px 14px;border-radius:6px;background:var(--surface-soft);color:var(--accent-strong);font-weight:600;font-size:.84rem;line-height:1.4;text-decoration:none;transition:background .2s,color .2s}.github-button:hover{background:var(--accent-strong);color:var(--surface)}.github-mark{display:grid;place-items:center;width:22px;height:22px;border-radius:4px;background:var(--accent-soft);color:var(--accent-strong);font-size:.7rem;font-weight:700;letter-spacing:.04em;font-family:Consolas,Segoe UI Mono,monospace}.essay-date{margin:0 0 8px;color:var(--accent-strong);font-size:.88rem}.site-footer{padding:24px 0 48px}.footer-shell{display:flex;gap:24px;padding-top:18px;border-top:1px solid var(--border-strong)}.footer-title{margin:0 0 8px;font-weight:700}.footer-copy{margin:0;max-width:54ch;color:var(--muted)}.hero-layout{display:grid;grid-template-columns:1fr;gap:18px;padding:18px 0 12px}.hero-copy{padding:58px 28px 28px}.hero-copy h1{margin:0 0 12px;font-size:clamp(2.8rem,6vw,4.6rem);line-height:.95;font-weight:700;letter-spacing:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Helvetica Neue,Arial,sans-serif}.hero-subtitle{margin:0 0 18px;color:var(--muted);font-size:1rem}.profile-panel{display:flex;flex-direction:column;gap:18px;padding:22px;background:var(--surface-soft);border:1px solid var(--border);border-radius:12px}.profile-bio{margin:0;font-size:.96rem;line-height:1.7;color:var(--text);max-width:72ch}.profile-links{position:relative;display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.profile-link-btn{position:relative;display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--accent-strong);font-weight:600;font-size:.84rem;line-height:1.4;text-decoration:none;transition:background .2s,color .2s,border-color .2s}.profile-link-btn:hover{background:var(--accent-strong);color:var(--surface)}.section-footer{display:flex;justify-content:center;padding-top:20px}.hero-highlights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.highlight-card{padding:52px 18px 18px}.highlight-label{margin:0 0 8px;color:var(--muted);font-size:.82rem;letter-spacing:.1em;text-transform:uppercase}.highlight-value{margin:0;font-size:1.12rem;font-weight:700}.essay-layout{display:grid;gap:18px}.essay-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,280px);gap:18px;align-items:start}.essay-article{padding:54px 28px 28px}.essay-toc{position:sticky;top:124px;align-self:start;padding:18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.toc-title{margin:0 0 12px;color:var(--text);font-weight:700}.toc-body{display:grid;grid-template-columns:3px minmax(0,1fr);gap:12px}.toc-progress{position:relative;overflow:hidden;width:3px;min-height:100%;border-radius:999px;background:var(--surface-muted)}.toc-progress-bar{position:absolute;inset:0;transform:scaleY(0);transform-origin:top;border-radius:inherit;background:var(--accent)}.toc-links{display:grid;gap:8px}.toc-link{color:var(--muted);font-size:.9rem;line-height:1.35}.toc-link.active{color:var(--accent-strong);font-weight:700}.toc-h3{padding-left:12px}.toc-h4{padding-left:24px;font-size:.84rem}.essay-article h1,.essay-article h2,.essay-article h3{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Helvetica Neue,Arial,sans-serif;letter-spacing:0}.essay-article h1{margin:0 0 12px}.essay-article .section-intro{margin:0 0 8px}.essay-article .tag-list{margin-bottom:18px}.essay-article p,.essay-article li,.essay-article blockquote{color:var(--muted)}.essay-article blockquote{margin:20px 0;padding-left:16px;border-left:3px solid var(--border-strong)}.essay-article pre{overflow-x:auto;padding:16px;border-radius:10px;border:1px solid var(--border);background:#141414;color:#f2f2f2}.essay-article code{font-family:Cascadia Code,Consolas,monospace}.essay-article mjx-container{overflow-x:auto;overflow-y:hidden;max-width:100%;padding:4px 0}.essay-article img{max-width:100%;height:auto;border-radius:10px;border:1px solid var(--border)}.year-group{display:grid;gap:12px;margin-bottom:26px}.year-group h2{margin:0;font-size:1.42rem}@media(max-width:1024px){.research-grid,.project-grid,.essay-grid,.hero-highlights{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:1100px){.essay-detail-grid{grid-template-columns:1fr}.essay-toc{position:relative;top:auto;order:-1}}@media(max-width:900px){.nav-shell,.footer-shell,.publication-item{display:grid;grid-template-columns:1fr}.nav-shell{gap:14px}.nav-controls{justify-content:flex-start}.publication-visual{max-width:520px}}@media(max-width:720px){.research-grid,.project-grid,.essay-grid,.hero-highlights{grid-template-columns:1fr}}@media(max-width:640px){.site-header{padding-top:10px}.nav-shell{padding:44px 14px 12px}.hero-copy,.research-card,.project-card,.essay-card,.publication-item,.essay-article,.highlight-card{padding-inline:18px}.hero-copy{padding-top:56px;padding-bottom:24px}.research-card,.project-card,.essay-card,.publication-item,.essay-article,.highlight-card{padding-top:50px;padding-bottom:18px}.nav-links{justify-content:flex-start}.button-row{flex-direction:column}.button{width:100%}}
