.research-item[data-astro-cid-s63xvgl2]{display:grid;grid-template-columns:260px 1fr;gap:36px;padding:28px 0;border-bottom:1px solid #e5e7eb}.research-title[data-astro-cid-s63xvgl2]{display:flex;align-items:center;gap:10px;font-size:1.25rem;font-weight:600;margin-bottom:6px}---[data-astro-cid-s63xvgl2] interface[data-astro-cid-s63xvgl2] Author[data-astro-cid-s63xvgl2]{name:string;url?: string;me?: boolean}interface[data-astro-cid-s63xvgl2] Res[data-astro-cid-s63xvgl2]{type:string;url:string;label?: string}interface[data-astro-cid-s63xvgl2] Props[data-astro-cid-s63xvgl2]{gif?: string;title:string;authors:Author[];venue?: string;year?: number;status?: string;meta2?: string;// 👈 NEW: optional extra meta line teaser?: string;thumbnail?: string;resources?: Res[]}const p = Astro.props as Props; const LINK_META: Record<string,{icon:string,label:string}> ={pdf:{icon:"📄",label: "PDF"},poster:{icon:"🪧",label: "Poster"},slides:{icon:"🖼️",label: "Slides"},demo:{icon:"🧪",label: "Demo"},project:{icon:"🔗",label: "Project"},video:{icon:"🎥",label: "Video"},code:{icon:"💻",label: "Code"},press:{icon:"📰",label: "Press"},bibtex:{icon:"🧾",label: "BibTeX"},}; function renderAuthors(list: Author[]){const parts = list.map(a => {if (a.url) {return a.me ? `<a href="${a.url}" target="_blank" rel="noreferrer"><span class="author-me">${a.name}</span></a>` : `<a href="${a.url}" target="_blank" rel="noreferrer">${a.name}</a>`;} return a.me ? `<span class="author-me">${a.name}</span>` : a.name;});if (parts.length <= 2) return parts.join(", ");return parts.slice(0,-1).join(", ") + ", " + parts.at(-1)}--- <article class="research-item">{p.thumbnail && (<div class="research-thumb"> <img src={p.thumbnail} alt="" loading="lazy" /> </div>)}<div class="research-main"> <h3 class="research-title">{p.gif && (<img src={p.gif} class="research-gif" alt="" aria-hidden="true" loading="lazy" />)}<span>{p.title}</span> </h3> <div class="research-authors" set:html={renderAuthors(p.authors)}/> <div class="research-meta"> <div>{[p.venue,p.year,p.status].filter(Boolean).join(" · ")}</div>{p.meta2 && (<div>{p.meta2}</div>)}</div>{p.teaser && <p class="research-teaser">{p.teaser}</p>}{p.resources && (<div class="research-links"> {p.resources.map(r => {const m = LINK_META[r.type] ?? {icon: "🔗",label: r.type}; return (<a href={r.url} target="_blank" rel="noreferrer"> {m.icon} {r.label ?? m.label} </a>);})} </div>)}</div> </article> <style> .research-item{display:grid;grid-template-columns:260px 1fr;gap:36px;padding:2px 0;border-bottom:1px solid #e5e7eb}.research-thumb[data-astro-cid-s63xvgl2]{height:150px;overflow:hidden}.research-thumb[data-astro-cid-s63xvgl2] img[data-astro-cid-s63xvgl2]{width:100%;height:auto;display:block;transform:translateY(-28px)}.research-title[data-astro-cid-s63xvgl2]{display:flex;align-items:center;gap:10px;font-size:1rem;font-weight:600;margin-bottom:6px}.research-gif[data-astro-cid-s63xvgl2]{height:1.8em;width:auto;flex-shrink:0;display:block}.research-authors[data-astro-cid-s63xvgl2]{font-size:.95rem}.research-authors[data-astro-cid-s63xvgl2] a[data-astro-cid-s63xvgl2]{color:var(--ink)!important;text-decoration:none}.research-authors[data-astro-cid-s63xvgl2] .author-me[data-astro-cid-s63xvgl2]{color:var(--ink)!important;font-weight:600;text-decoration-line:underline;text-decoration-style:dotted;text-decoration-color:#9ca3af;text-underline-offset:3px}.research-authors[data-astro-cid-s63xvgl2] a[data-astro-cid-s63xvgl2]:hover .author-me[data-astro-cid-s63xvgl2]{color:var(--ink)!important;text-decoration-color:#9ca3af}.research-meta[data-astro-cid-s63xvgl2]{font-size:.9rem;color:#6b7280;margin-bottom:8px}.research-meta[data-astro-cid-s63xvgl2]>div[data-astro-cid-s63xvgl2]{line-height:1.4}.research-teaser[data-astro-cid-s63xvgl2]{font-size:.95rem;line-height:1.5;margin-bottom:8px}.research-links[data-astro-cid-s63xvgl2]{display:flex;flex-wrap:wrap;gap:16px;font-size:.9rem}.research-links[data-astro-cid-s63xvgl2] a[data-astro-cid-s63xvgl2]{text-decoration:none;color:inherit;border-bottom:1px solid rgba(0,0,0,.15)}.research-links[data-astro-cid-s63xvgl2] a[data-astro-cid-s63xvgl2]:hover{border-bottom-color:#111827}.research-thumb[data-astro-cid-s63xvgl2] img[data-astro-cid-s63xvgl2]{opacity:.9;filter:grayscale(8%) contrast(.9);transition:opacity .25s ease,filter .25s ease}.research-item[data-astro-cid-s63xvgl2]:hover .research-thumb[data-astro-cid-s63xvgl2] img[data-astro-cid-s63xvgl2]{opacity:.95;filter:grayscale(0%) contrast(1)}#teaching[data-astro-cid-j7pv25f6]{font-size:15px}.teaching-list[data-astro-cid-j7pv25f6]{list-style:none;padding:0;margin:0}.teaching-item[data-astro-cid-j7pv25f6]{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:baseline;margin-bottom:10px;font-size:12px;line-height:1.2}.teaching-left[data-astro-cid-j7pv25f6]{min-width:0}.teaching-term[data-astro-cid-j7pv25f6]{text-align:right;white-space:nowrap;font-weight:300;color:var(--muted)}.teaching-course[data-astro-cid-j7pv25f6]{font-weight:700;color:var(--ink)}.teaching-with[data-astro-cid-j7pv25f6],.teaching-description[data-astro-cid-j7pv25f6]{color:var(--muted);font-weight:400}@media (max-width: 640px){.teaching-item[data-astro-cid-j7pv25f6]{grid-template-columns:1fr}.teaching-term[data-astro-cid-j7pv25f6]{text-align:left;margin-top:4px}}.inline-logo-link[data-astro-cid-j7pv25f6]{display:inline-flex;align-items:baseline;gap:.35em;color:inherit;text-decoration:none}.inline-logo-link[data-astro-cid-j7pv25f6]{display:inline-flex;align-items:baseline;gap:.18em;color:inherit;text-decoration:none}.inline-logo[data-astro-cid-j7pv25f6]{height:1.1em;width:auto;vertical-align:baseline;transform:translate(.06em,.05em)}.inline-logo[data-astro-cid-j7pv25f6]{height:1em;width:auto;vertical-align:baseline;transform:translateY(.05em)}.hero-icon[data-astro-cid-j7pv25f6]{height:1.4em;width:auto;display:inline-block;vertical-align:middle;flex-shrink:0;margin-right:.3em;transform:translateY(-.1em)}.pixel-rain[data-astro-cid-j7pv25f6]{position:relative;overflow:hidden}.pixel-rain[data-astro-cid-j7pv25f6] .hero-img[data-astro-cid-j7pv25f6]{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 35%;transform:scale(1.45);transition:none}.pixel-rain[data-astro-cid-j7pv25f6] .portrait[data-astro-cid-j7pv25f6]{z-index:1}.pixel-rain[data-astro-cid-j7pv25f6] .pixel[data-astro-cid-j7pv25f6]{z-index:2;image-rendering:pixelated;clip-path:inset(0 0 100% 0)}@media (hover: hover){.pixel-rain[data-astro-cid-j7pv25f6]:hover .pixel[data-astro-cid-j7pv25f6]{animation:pixelRainDown 2.1s steps(65) forwards}.pixel-rain[data-astro-cid-j7pv25f6]:not(:hover) .pixel[data-astro-cid-j7pv25f6]{animation:pixelRainUp 2.8s steps(25) forwards}}@keyframes pixelRainDown{0%{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}@keyframes pixelRainUp{0%{clip-path:inset(0 0 0 0)}to{clip-path:inset(0 0 100% 0)}}@media (prefers-reduced-motion: reduce){.pixel-rain[data-astro-cid-j7pv25f6] .pixel[data-astro-cid-j7pv25f6]{animation:none!important;clip-path:inset(0 0 0 0)}}#misc[data-astro-cid-j7pv25f6]{max-width:900px}.talk-group[data-astro-cid-j7pv25f6]{padding:18px 0;border-bottom:1px solid var(--ring)}.talk-group[data-astro-cid-j7pv25f6]:last-child{border-bottom:none}.talk-title[data-astro-cid-j7pv25f6]{font-size:.95rem;font-weight:600;color:var(--ink);margin-bottom:6px}.talk-entries[data-astro-cid-j7pv25f6]{list-style:none;padding:0;margin:0}.talk-entry[data-astro-cid-j7pv25f6]{font-size:.9rem;color:var(--muted);line-height:1.45;padding-left:1.2rem;text-indent:-1.2rem}@media (max-width: 640px){.talk-entry[data-astro-cid-j7pv25f6]{padding-left:0;text-indent:0}}#news-grid[data-astro-cid-j7pv25f6]{width:100%;max-width:var(--maxw);margin:0 auto}#news-section[data-astro-cid-j7pv25f6]{position:relative;display:flex;flex-direction:column;align-items:center}.hidden-news[data-astro-cid-j7pv25f6]{display:none}.toggle-btn[data-astro-cid-j7pv25f6]{margin-top:13px;background:#f8f9fb;border:1px solid var(--ring);border-radius:999px;padding:6px 12px;font-size:.86rem;font-weight:600;color:var(--ink);cursor:pointer;transition:all .2s ease}.toggle-btn[data-astro-cid-j7pv25f6]:hover{background:var(--mango-light);border-color:var(--mango-dark)}.news-item[data-astro-cid-j7pv25f6]{transition:opacity .3s ease,transform .3s ease}.news-item[data-astro-cid-j7pv25f6].show{display:block!important;opacity:1;transform:translateY(0)}.news-item[data-astro-cid-j7pv25f6].hide{opacity:0;transform:translateY(10px)}
