.space-sky{display:none}html[data-theme=dark][data-sky=motion] .space-sky{z-index:-1;pointer-events:none;background:radial-gradient(55% 40% at 78% 22%,#5a69aa1a,#0000 70%),radial-gradient(45% 35% at 12% 88%,#7850960f,#0000 70%),linear-gradient(165deg,#02030a 0%,#000 55%,#010103 100%);animation:.8s both space-sky-in;display:block;position:fixed;inset:0;overflow:hidden}html[data-sky-restored] .space-sky{animation:none}html[data-sky-restored] .space-sky__canvas{transition-duration:.25s}@keyframes space-sky-in{0%{opacity:0}}html[data-theme=dark][data-sky=motion]{--surface:#0c0d12db;--header-bg:#030408c7;--footer-bg:#000000d1;background:#000}html[data-theme=dark][data-sky=motion] body,html[data-theme=dark][data-sky=motion] .masthead,html[data-theme=dark][data-sky=motion] .section:nth-of-type(odd){background:0 0}html[data-theme=dark][data-sky=motion] .pub-section{--pub-label-bg:#020308b8}.space-sky__band,.space-sky__stars--band{height:46%;position:absolute;top:18%;left:-20%;right:-20%;transform:rotate(-16deg)}.space-sky__band{filter:blur(14px);opacity:.4;background:radial-gradient(50% 9% at 50% 52%,#0000008c,#0000 100%),radial-gradient(48% 42% at 58%,#bec8eb1c,#0000 70%),radial-gradient(30% 30% at 34% 48%,#d7bedc12,#0000 70%)}.space-sky__stars{background-repeat:repeat;position:absolute;inset:0}.space-sky__stars--band{opacity:.45;mask-image:radial-gradient(50% 46% at 55%,#000 0%,#00000080 45%,#0000 75%)}.space-sky__stars--far{opacity:.85}.space-sky__canvas{opacity:0;width:100%;height:100%;transition:opacity .8s;display:block;position:absolute;inset:0}.space-sky__canvas[data-qr-motion-state=running]{opacity:1}.space-sky__meteors{width:100%;height:100%;display:block;position:absolute;inset:0}.qr-dialog{--qr-accent:#e2e8f0;--qr-accent-rgb:226, 232, 240;--qr-ice:#f8fafc;--qr-ink:#f8fafceb;z-index:1000;width:100%;min-height:100dvh;color:var(--qr-ice);background:#000;border:0;place-items:stretch stretch;padding:0;display:grid;position:fixed;inset:0}.qr-dialog[hidden]{display:none}body.qr-is-open{overflow:hidden}.qr-dialog__panel{z-index:1;isolation:isolate;width:100%;height:100dvh;max-height:100dvh;padding:max(.75rem, env(safe-area-inset-top)) max(.75rem, env(safe-area-inset-right)) max(.75rem, env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-left));position:relative;overflow:hidden auto}.qr-dialog:not([hidden]) .qr-dialog__panel{animation:.42s cubic-bezier(.22,1,.36,1) both qr-panel-enter}.qr-dialog:focus{outline:none}.qr-dialog__scene{z-index:0;pointer-events:none;background:radial-gradient(55% 40% at 78% 22%,#5a69aa1a,#0000 70%),radial-gradient(45% 35% at 12% 88%,#7850960f,#0000 70%),linear-gradient(165deg,#02030a 0%,#000 55%,#010103 100%);position:absolute;inset:0;overflow:hidden}.qr-dialog__canvas{opacity:0;width:100%;height:100%;transition:opacity .6s;display:block;position:absolute;inset:0}.qr-dialog__canvas[data-qr-motion-state=running],.qr-dialog__canvas[data-qr-motion-state=static]{opacity:1}.qr-dialog__close{top:max(.75rem, env(safe-area-inset-top));right:max(.75rem, env(safe-area-inset-right));z-index:5;width:2rem;height:2rem;color:var(--qr-ice);cursor:pointer;background:#020617d1;border:1px solid #ffffff24;border-radius:999px;justify-content:center;align-items:center;transition:background .2s,color .2s,border-color .2s,transform .2s;display:inline-flex;position:absolute}.qr-dialog__close:hover,.qr-dialog__close:focus-visible{border-color:var(--qr-accent);color:var(--qr-accent);transform:translateY(-1px)}.qr-dialog__body{z-index:4;text-align:center;pointer-events:auto;flex-direction:column;justify-content:center;align-items:center;gap:.68rem;min-height:100%;padding:2.25rem .1rem .1rem;display:flex;position:relative}.qr-dialog__header{justify-items:center;gap:.28rem;display:grid}.qr-dialog__eyebrow{color:var(--qr-accent);margin:0;font-size:.78rem;font-weight:700}.qr-dialog__header h2{color:var(--qr-ice);margin:0;font-size:1.22rem;line-height:1.2}.qr-dialog__viewport{--qr-viewport-bleed:.75rem;width:calc(100% + 2 * var(--qr-viewport-bleed));margin-inline:calc(-1 * var(--qr-viewport-bleed));touch-action:pan-y;cursor:grab;user-select:none;overflow:hidden}.qr-dialog__viewport.is-dragging{cursor:grabbing}.qr-dialog__track{will-change:transform;width:100%;transition:transform .42s cubic-bezier(.22,1,.36,1);display:flex;transform:translate(-100%)}.qr-dialog__track.is-dragging{transition:none}.qr-dialog__slide{min-width:0;padding:0 calc(var(--qr-viewport-bleed) + .1rem);flex-direction:column;flex:0 0 100%;align-items:center;gap:.64rem;display:flex}.qr-dialog__slide-heading{text-align:left;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.7rem;width:min(100%,21.5rem);display:grid}.qr-dialog__icon{border:1px solid rgba(var(--qr-accent-rgb), .34);background:rgba(var(--qr-accent-rgb), .14);width:2.25rem;height:2.25rem;color:var(--qr-accent);box-shadow:0 0 22px rgba(var(--qr-accent-rgb), .12);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.qr-dialog__slide-eyebrow{color:#f8fafca3;margin:0 0 .12rem;font-size:.72rem;font-weight:700}.qr-dialog__slide h3{color:var(--qr-ice);margin:0;font-size:1rem;line-height:1.18}.qr-dialog__code{width:min(100%,21.5rem,44dvh);box-shadow:0 20px 42px #0006, 0 0 32px rgba(var(--qr-accent-rgb), .16), inset 0 0 0 1px #ffffffe0;isolation:isolate;background:linear-gradient(#fffffffa,#f8fafcfa);border:1px solid #dbeafe3d;border-radius:18px;padding:.48rem;position:relative}.qr-dialog__code:before{content:"";z-index:0;background:radial-gradient(circle at 50% 50%, rgba(var(--qr-accent-rgb), .34), transparent 62%);filter:blur(12px);opacity:.78;pointer-events:none;border-radius:22px;transition:opacity .6s;position:absolute;inset:-.58rem}.qr-dialog__code:after{content:"";z-index:2;border:1px solid rgba(var(--qr-accent-rgb), .18);pointer-events:none;border-radius:13px;position:absolute;inset:.28rem}.qr-dialog__code img{z-index:1;pointer-events:none;user-select:none;-webkit-user-drag:none;border-radius:10px;width:100%;height:auto;display:block;position:relative}.qr-dialog__caption{color:#f8fafcbd;width:min(100%,21.5rem);margin:0;font-size:.82rem;line-height:1.45}.qr-dialog__url{border:1px solid rgba(var(--qr-accent-rgb), .22);color:#f8fafcc7;overflow-wrap:anywhere;background:#0f172ab8;border-radius:999px;justify-content:center;align-items:center;max-width:100%;margin:0;padding:.34rem .68rem;font-size:.85rem;font-weight:600;line-height:1.2;display:inline-flex}.qr-dialog__controls{justify-content:center;align-items:center;width:min(100%,21.5rem);min-height:2.25rem;display:flex}.qr-dialog__dot{border:1px solid rgba(var(--qr-accent-rgb), .22);color:var(--qr-ice);cursor:pointer;background:#0f172ab3;transition:width .28s,transform .2s}.qr-dialog__dot:hover,.qr-dialog__dot:focus-visible{border-color:var(--qr-accent);color:var(--qr-accent);transform:translateY(-1px)}.qr-dialog__dots{justify-content:center;align-items:center;gap:.42rem;display:inline-flex}.qr-dialog__dot{border-radius:999px;width:.62rem;height:.62rem;padding:0}.qr-dialog__dot.is-active{background:var(--qr-accent);border-color:var(--qr-accent);width:1.38rem;box-shadow:0 0 18px rgba(var(--qr-accent-rgb), .36)}html[data-theme=dark] .qr-dialog{--qr-ink:#ffffffe6}html[data-theme=dark] .qr-dialog__close{background:#020617d1;border-color:#ffffff24}html[data-theme=dark] .qr-dialog__code{box-shadow:0 20px 44px #0000007a, 0 0 38px rgba(var(--qr-accent-rgb), .16);background:linear-gradient(#fffffffa,#f8fafcfa);border-color:#ffffff1f}html[data-theme=dark] .qr-dialog__url{border-color:rgba(var(--qr-accent-rgb), .22);background:#0f172ab8}@keyframes qr-panel-enter{0%{opacity:0;transform:translateY(1.1rem)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@media (pointer:coarse),(width<=700px){.qr-dialog__code:before{filter:blur(8px);opacity:.62}}@media (prefers-reduced-motion:reduce){.qr-dialog__track{transition:none!important}}*,:before,:after{box-sizing:border-box}:root{--bg:#f6f7fb;--surface:#fff;--surface-soft:#f0f4ff;--text:#151924;--text-muted:#525252;--text-soft:#151924e0;--primary:#2563eb;--primary-soft:#dbeafe;--border:#e5e7eb;--primary-alpha-4:color-mix(in srgb, var(--primary) 4%, transparent);--primary-alpha-8:color-mix(in srgb, var(--primary) 8%, transparent);--primary-alpha-10:color-mix(in srgb, var(--primary) 10%, transparent);--primary-alpha-12:color-mix(in srgb, var(--primary) 12%, transparent);--primary-alpha-16:color-mix(in srgb, var(--primary) 16%, transparent);--primary-alpha-18:color-mix(in srgb, var(--primary) 18%, transparent);--primary-alpha-20:color-mix(in srgb, var(--primary) 20%, transparent);--primary-alpha-24:color-mix(in srgb, var(--primary) 24%, transparent);--primary-alpha-25:color-mix(in srgb, var(--primary) 25%, transparent);--primary-alpha-30:color-mix(in srgb, var(--primary) 30%, transparent);--primary-alpha-40:color-mix(in srgb, var(--primary) 40%, transparent);--transition-fast:.2s ease;--transition-std:.3s ease;--shadow:0 18px 40px #0f172a14;--header-bg:#f6f7fbe6;--chip-bg:#fffc;--chip-border:var(--primary-alpha-12);--chip-text:var(--text-muted);--btn-bg:#fff;--btn-border:transparent;--btn-text:var(--text);--btn-shadow:0 12px 24px var(--primary-alpha-12);--btn-outline-bg:var(--primary-alpha-8);--btn-outline-border:var(--primary-alpha-18);--footer-bg:#0f172a;--footer-text:#e2e8f0;--footer-link:#bfdbfe;--toggle-bg:var(--primary-alpha-10);--toggle-border:var(--primary-alpha-25);--toggle-text:var(--text);--radius-lg:24px;--radius-md:18px;--radius-sm:12px;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Courier New", monospace;--font-size-min:.75rem;--font-size-xs:.8125rem;--font-size-sm:.875rem;--space-xs:clamp(.25rem, .5vw, .5rem);--space-sm:clamp(.5rem, 1vw, .75rem);--space-md:clamp(.75rem, 2vw, 1.5rem);--space-lg:clamp(1rem, 3vw, 2rem);--space-xl:clamp(1.5rem, 4vw, 3rem);--space-2xl:clamp(2rem, 5vw, 4rem);--thumbnail-width:clamp(8.75rem, 16vw, 12.5rem);--header-height:88px}:root[data-theme=dark]{--bg:#050505;--surface:#0d0d0d;--surface-soft:#161616;--text:#f5f5f5;--text-muted:#a1a1aa;--text-soft:#f5f5f5c7;--primary:#60a5fa;--primary-soft:#60a5fa33;--border:#f4f4f51f;--shadow:0 18px 40px #000000a6;--header-bg:#050505d9;--chip-bg:#ffffff14;--chip-border:#ffffff29;--chip-text:var(--text);--btn-bg:#ffffff0f;--btn-border:#ffffff24;--btn-text:var(--text);--btn-shadow:0 12px 24px #000000a6;--btn-outline-bg:#60a5fa38;--btn-outline-border:#60a5fa66;--footer-bg:#000;--footer-text:#e4e4e7;--footer-link:#fafafa;--toggle-bg:#ffffff14;--toggle-border:#ffffff2e;--toggle-text:var(--text)}html{scrollbar-gutter:stable;scroll-behavior:smooth;background:var(--bg)}body{font-family:var(--font-sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;line-height:1.68;transition:background-color .3s,color .3s;overflow-x:hidden}body.no-scroll{overflow:hidden}body[data-page-transition] main{animation:.34s cubic-bezier(.22,1,.36,1) backwards page-enter}body[data-page-transition].page-is-leaving main{opacity:0;transition:opacity .18s,transform .18s;transform:translateY(.55rem)}@keyframes page-enter{0%{opacity:0;transform:translateY(.7rem)}to{opacity:1;transform:translateY(0)}}a{color:var(--primary);text-decoration:none;transition:color .2s}a:hover,a:focus{color:#1d4ed8;text-decoration:underline}.skip-link{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;top:auto;left:-999px;overflow:hidden}.skip-link:focus{background:var(--primary);color:#fff;border-radius:var(--radius-sm);z-index:999;width:auto;height:auto;padding:.5rem 1rem;position:fixed;top:16px;left:16px}.container{width:min(1100px,100% - 3rem);margin:0 auto}.site-header{z-index:50;backdrop-filter:blur(16px);background:var(--header-bg);border-bottom:1px solid var(--border);transition:background .3s,border-color .3s;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:1.5rem;padding:1.25rem 0;display:flex}.site-nav{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.branding{flex-direction:column;gap:.2rem;display:flex}.brand-name{letter-spacing:-.01em;font-weight:600}.native-name{color:var(--text-muted);margin-left:.4rem;font-size:.68em;font-weight:500;display:inline-block;transform:translateY(-.1em)}.brand-role{color:var(--text-muted);font-size:.9rem}.brand-link{color:inherit;flex-direction:column;gap:.2rem;text-decoration:none;display:flex}.brand-link:hover,.brand-link:focus{color:inherit;text-decoration:none}.site-nav ul{align-items:center;gap:1.25rem;margin:0;padding:0;list-style:none;display:flex}.site-nav a{color:var(--text);padding:.25rem 0;font-weight:500;text-decoration:none;position:relative}.site-nav a:after{content:"";background:var(--primary);width:0;height:2px;transition:width .2s;position:absolute;bottom:-6px;left:0}.site-nav a:hover:after,.site-nav a:focus-visible:after,.site-nav a.active:after{width:100%}.site-nav a.active{color:var(--primary)}.nav-actions{align-items:center;gap:.5rem;display:inline-flex}.theme-toggle{background:var(--toggle-bg);border:1px solid var(--toggle-border);color:var(--toggle-text);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:.4rem;padding:.45rem .85rem;transition:background .2s,color .2s,border-color .2s,transform .2s;display:inline-flex}.qr-toggle{width:2.35rem;height:2.35rem;color:var(--toggle-text);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;transition:color .2s,transform .2s;display:inline-flex}.theme-toggle:hover,.theme-toggle:focus-visible,.qr-toggle:hover,.qr-toggle:focus-visible{color:var(--primary);transform:translateY(-1px)}.theme-toggle:hover,.theme-toggle:focus-visible{border-color:var(--primary)}.theme-toggle i,.qr-toggle i{font-size:.85rem}.theme-toggle .toggle-label{font-size:.85rem;font-weight:600}.mobile-menu-toggle{color:var(--text);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:.5rem;font-size:1.25rem;transition:color .2s;display:none}.mobile-menu-toggle:hover,.mobile-menu-toggle:focus-visible{color:var(--primary)}.masthead{min-height:calc(100vh - var(--header-height));min-height:calc(100svh - var(--header-height));background:linear-gradient(140deg, var(--surface-soft), var(--bg));align-items:center;padding:clamp(2.5rem,5vw,4rem) 0 clamp(4rem,8vh,5.5rem);display:flex;position:relative}.masthead>.container{width:min(1100px,100% - 3rem)}.scroll-cue{color:var(--text-muted);letter-spacing:.16em;text-transform:uppercase;opacity:.8;flex-direction:column;align-items:center;gap:.4rem;font-size:.7rem;font-weight:500;text-decoration:none;transition:opacity .35s,color .2s;display:inline-flex;position:absolute;bottom:clamp(1rem,3vh,1.75rem);left:50%;transform:translate(-50%)}.scroll-cue:hover,.scroll-cue:focus-visible{color:var(--primary);opacity:1;text-decoration:none}.scroll-cue i{font-size:.8rem;animation:2.2s ease-in-out infinite scroll-cue-bob}.scroll-cue.is-hidden{opacity:0;pointer-events:none}@keyframes scroll-cue-bob{0%,to{transform:translateY(0)}50%{transform:translateY(5px)}}@media (prefers-reduced-motion:reduce){.scroll-cue i{animation:none}}#publications{scroll-margin-top:calc(var(--header-height) - 1px)}.masthead-grid{gap:var(--space-xl);grid-template-columns:1fr;align-items:start;display:grid}.masthead-copy{flex-direction:column;gap:1.25rem;min-width:0;max-width:72ch;display:flex}.about-text,.about-text__desktop{flex-direction:column;gap:.85rem;display:flex}.about-text__mobile,.about-mobile-research,.about-toggle{display:none}.masthead-copy p{max-width:72ch;color:var(--text-soft);margin:0;font-size:1.02rem;line-height:1.78}.masthead-copy strong{color:var(--text);font-weight:700}.masthead-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.masthead-header h1{min-width:0;line-height:1.08}.masthead-name{flex-wrap:wrap;align-items:center;gap:.6rem 1.25rem;min-width:0;display:flex}.masthead-roles{border-left:2px solid var(--primary-alpha-25);flex-direction:column;align-items:flex-start;gap:.15rem;margin:0;padding:0 0 0 1.1rem;list-style:none;display:flex}.masthead-role{white-space:nowrap;font:500 1.05rem/1.25 var(--font-sans);color:var(--text-muted);align-items:center;gap:.4em;display:inline-flex}.masthead-role--field{letter-spacing:-.01em;color:var(--primary);font-size:1.3rem;font-weight:600}.btn.hero-link{--c:var(--text-muted);border-color:var(--border);background:var(--surface);height:2.1rem;color:var(--text);font:600 .8rem/1 var(--font-sans);gap:.45rem;padding:0 .9rem;transition:transform .15s,border-color .15s,background-color .15s,color .15s,box-shadow .15s}.btn.hero-link i{font-size:.85rem}.btn.hero-link:hover,.btn.hero-link:focus-visible{border-color:color-mix(in srgb, var(--c) 45%, transparent);background:color-mix(in srgb, var(--c) 7%, var(--surface));color:var(--c);box-shadow:0 2px 8px -4px color-mix(in srgb, var(--c) 60%, transparent)}.hero-link--publications{--c:var(--primary)}.hero-link--github{--c:#1f2328}.hero-link--cv{--c:#d4351c}.hero-link--scholar{--c:#4285f4}.hero-link--linkedin{--c:#0a66c2}.hero-link--cv i{color:#ec1c24}.hero-link--scholar i{color:#4285f4}.hero-link--linkedin i{color:#0a66c2}html[data-theme=dark] .hero-link--github{--c:#e6edf3}html[data-theme=dark] .hero-link--cv{--c:#fb7a5c}.profile-visual--mobile{flex-shrink:0;display:block!important}@media (width<=55.99rem){.masthead-name{flex-direction:column;align-items:flex-start;gap:.6rem}}.profile-visual--mobile .profile-frame{margin-right:.2rem}.profile-visual--mobile .profile-frame:before{width:2.8rem;height:.8rem;top:-.4rem}.profile-visual--mobile .profile-photo{border-radius:.2rem;width:clamp(4.6rem,21vw,6rem);padding:.22rem .22rem 1.1rem;box-shadow:0 6px 14px #00000029}.profile-visual--mobile .profile-caption{font:700 .55rem/1 var(--font-mono);letter-spacing:.06em;gap:.25rem;bottom:.3rem;left:.35rem}.profile-visual--mobile .profile-caption img{width:.75rem;height:.75rem}.profile-caption abbr{text-decoration:none}.masthead-aside{display:none!important}@media (width>=56rem){.masthead-grid{grid-template-columns:minmax(0,44rem) minmax(13rem,20rem);grid-template-areas:"head head""about photo""links photo";justify-content:space-between;gap:1.6rem clamp(2rem,6vw,4rem)}.masthead-copy{display:contents}.masthead-header{grid-area:head}.about-text{grid-area:about}.action-row{grid-area:links}.profile-visual--mobile{display:none!important}.masthead-aside{grid-area:photo;justify-content:flex-end;align-items:flex-start;padding-top:.35rem;display:flex!important}.masthead-aside :is(.profile-visual,.profile-frame){width:100%}}h1,h2,h3,h4{letter-spacing:-.015em;margin:0;font-weight:600}h1{font-size:clamp(2.4rem,5vw,3.2rem)}h2{font-size:clamp(1.8rem,3.6vw,2.2rem)}.chip-list{flex-wrap:wrap;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.chip-list li{background:var(--chip-bg);color:var(--chip-text);border:1px solid var(--chip-border);border-radius:999px;align-items:center;gap:.35rem;padding:.45rem .85rem;font-size:.85rem;display:inline-flex}.action-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.action-buttons,.social-buttons{flex-wrap:wrap;gap:.5rem;display:flex}@media (width<=48rem){.action-row{grid-template-columns:repeat(6,minmax(0,1fr));gap:.5rem;display:grid}.action-buttons,.social-buttons{display:contents}.action-row .btn{grid-column:span 2;min-width:0;padding:0 .5rem}.action-row .btn:is(.hero-link--publications,.hero-link--github){grid-column:span 3}}.btn{border:1px solid var(--btn-border);cursor:pointer;background:var(--btn-bg);color:var(--btn-text);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:.35rem;padding:.55rem .85rem;font-size:.88rem;font-weight:500;transition:transform .2s,box-shadow .2s,background .2s,border-color .2s,color .2s;display:inline-flex}.btn:hover,.btn:focus-visible{box-shadow:var(--btn-shadow);transform:translateY(-1px)}.btn.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn.btn-primary:hover,.btn.btn-primary:focus-visible{background:#1d4ed8}.btn.btn-outline{background:var(--btn-outline-bg);color:var(--primary);border-color:var(--btn-outline-border)}.btn.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.btn.btn-secondary:hover,.btn.btn-secondary:focus-visible{background:var(--surface-soft);border-color:var(--primary);color:var(--primary)}.profile-visual{justify-content:center;align-items:center;display:flex}.profile-frame{isolation:isolate;line-height:0;display:block;position:relative;transform:rotate(1.5deg)}.profile-frame:before{content:"";z-index:1;background:color-mix(in srgb, var(--primary) 22%, #ffffff8c);width:5.5rem;height:1.5rem;position:absolute;top:-.7rem;left:50%;transform:translate(-50%)rotate(-4deg);box-shadow:0 1px 2px #00000014}.profile-photo{box-sizing:border-box;user-select:none;-webkit-user-drag:none;background:#fff;border-radius:.35rem;width:100%;height:auto;padding:.45rem .45rem 2.6rem;box-shadow:0 12px 24px #0000002e}.profile-caption{font:500 .78rem/1 var(--font-sans);letter-spacing:.01em;color:#3f3f46;white-space:nowrap;align-items:center;gap:.45rem;display:flex;position:absolute;bottom:.6rem;left:.75rem}.profile-caption img{user-select:none;-webkit-user-drag:none;width:1.45rem;height:1.45rem}.section{padding:5rem 0}.section:nth-of-type(odd){background:var(--surface)}.page-section{min-height:calc(100vh - 200px);padding:5rem 0}.page-title{margin-bottom:1rem;font-size:clamp(2rem,4vw,2.5rem)}.page-description{color:var(--text-muted);font-size:1.1rem}.section-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:2.5rem;display:flex}.pub-section{--pub-ease:cubic-bezier(.2, .8, .2, 1);--pub-label-bg:var(--bg);--pub-code:#1f2328;--pub-arxiv:#b31b1b;--pub-pdf:#d4351c;--pub-or:#8c1b13}.section:nth-of-type(odd).pub-section{--pub-label-bg:var(--surface)}html[data-theme=dark] .pub-section{--pub-code:#e6edf3;--pub-arxiv:#f87171;--pub-pdf:#fb7a5c;--pub-or:#fca5a5}.pub-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.pub-heading h2{margin:0}.pub-year{margin-bottom:2.25rem}.pub-year:last-child{margin-bottom:0}.pub-year-label{top:calc(var(--header-height) - 1px);z-index:4;background:color-mix(in srgb, var(--pub-label-bg) 88%, transparent);-webkit-backdrop-filter:blur(12px);align-items:center;gap:.75rem;margin:0 0 1.25rem;padding:.6rem 0;display:flex;position:sticky}.pub-year-label strong{color:var(--primary);font-size:1.25rem;font-weight:700}.pub-year-label:after{content:"";background:var(--primary-alpha-20);flex:1;order:1;height:2px}.pub-year-label span{font:500 .75rem var(--font-mono);color:var(--text-muted);order:2}.pub-list{gap:.75rem;display:grid}.pub-toggle{isolation:isolate;background:var(--surface-soft);border:1px solid var(--primary-alpha-12);border-radius:999px;grid-template-columns:1fr 1fr;padding:4px;display:inline-grid;position:relative}.pub-toggle-item{cursor:pointer;display:flex;position:relative}.pub-toggle-item input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.pub-toggle-text{min-width:4.75rem;color:var(--text-muted);white-space:nowrap;transition:color .35s var(--pub-ease);border-radius:999px;flex:1;place-items:center;padding:.42rem 1rem;font-size:.85rem;font-weight:600;display:inline-grid}.pub-toggle-item:has(:checked) .pub-toggle-text{color:var(--primary)}.pub-toggle-item:has(input:focus-visible) .pub-toggle-text{outline:2px solid var(--primary);outline-offset:-2px}.pub-toggle-ind{z-index:-1;background:var(--surface);width:calc(50% - 4px);box-shadow:0 1px 2px #0f172a14, 0 0 0 1px var(--primary-alpha-16);pointer-events:none;transition:transform .35s var(--pub-ease);border-radius:999px;position:absolute;top:4px;bottom:4px;left:4px}.pub-toggle:has(input[value=full]:checked) .pub-toggle-ind{transform:translate(100%)}.pub-float{left:50%;bottom:calc(1.25rem + env(safe-area-inset-bottom,0px));z-index:50;background:color-mix(in srgb, var(--surface) 72%, transparent);-webkit-backdrop-filter:blur(24px)saturate(1.8);border:1px solid color-mix(in srgb, var(--text) 12%, transparent);opacity:0;pointer-events:none;border-radius:1.25rem;padding:.6rem .9rem;transition:opacity .25s,transform .35s cubic-bezier(.2,.9,.25,1.1);position:fixed;transform:translate(-50%,.75rem)scale(.96);box-shadow:0 10px 30px -8px #0f172a59}.pub-float.is-shown{opacity:1;pointer-events:auto;transform:translate(-50%)scale(1)}.pub-card{--gap:1.25rem;--tw:9.5rem;grid-template-columns:calc(var(--tw) + var(--gap)) minmax(0, 1fr);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;outline:none;align-items:start;padding:1rem 3rem 1rem 1.25rem;transition:border-color .2s,box-shadow .2s,background-color .2s;display:grid;position:relative}.pub-card:hover{border-color:var(--primary-alpha-30);box-shadow:0 10px 28px #0f172a12}.pub-card:focus-visible{box-shadow:0 0 0 3px var(--primary-alpha-25)}.pub-card--award:hover{border-color:#d977066b}.pub-card.is-open{background:color-mix(in srgb, var(--primary) 2.5%, var(--surface))}[data-mode=full] .pub-card{cursor:default}[data-mode=full] .pub-card,.pub-card.is-open{grid-template-columns:minmax(0,1fr);row-gap:1.1rem;padding:1.25rem}:is([data-mode=full] .pub-card,.pub-card.is-open)>:is(.pub-thumb,.pub-body){grid-area:auto/1}.pub-thumb{width:max(0px, calc(100% - var(--gap)));aspect-ratio:16/10;border:1px solid var(--border);background:#fff;border-radius:.6rem;grid-area:1/1;place-items:center;transition:box-shadow .2s;display:grid;position:relative;overflow:hidden}.pub-card:hover .pub-thumb{box-shadow:0 6px 18px -8px #0f172a59}.pub-thumb img{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.pub-thumb-poster{opacity:0;background:#fff;transition:opacity .35s}.pub-thumb .pub-thumb-logo{opacity:.85;width:55%;height:auto;position:static}.pub-thumb-icon{color:var(--text-muted);font-size:1.6rem}.pub-thumb-zoom{color:#fff;opacity:0;background:#0f172a99;border-radius:999px;place-items:center;width:2rem;height:2rem;font-size:.8rem;transition:opacity .2s,transform .2s;display:grid;position:absolute;bottom:.5rem;right:.5rem;transform:scale(.9)}:is([data-mode=full] .pub-card,.pub-card.is-open) .pub-thumb[data-full-image]{cursor:zoom-in}:is([data-mode=full] .pub-card,.pub-card.is-open) .pub-thumb:hover .pub-thumb-zoom{opacity:1;transform:none}:is([data-mode=full] .pub-card,.pub-card.is-open) .pub-thumb-poster[data-loaded]{opacity:1}:is([data-mode=full] .pub-card,.pub-card.is-open) .pub-thumb{aspect-ratio:var(--poster-ratio,16 / 9);width:min(100%, calc(70vh * var(--poster-w,1.6)));border-radius:var(--radius-sm);justify-self:center}:is([data-mode=full] .pub-card,.pub-card.is-open) .pub-thumb:has(.pub-thumb-logo,.pub-thumb-icon){aspect-ratio:16/5;width:100%}:is([data-mode=full] .pub-card,.pub-card.is-open) .pub-thumb .pub-thumb-logo{width:30%}.pub-body{flex-direction:column;grid-area:1/2;gap:.35rem;min-width:0;display:flex}.pub-venue{font:600 .78rem var(--font-mono);letter-spacing:.03em;color:var(--primary);flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.pub-venue span:not([class]){color:var(--text-muted);font-weight:500}.pub-venue :is(.spotlight-label,.oral-label){padding:.22rem .5rem;font-size:.6rem}.pub-title{margin:0;font-size:1rem;font-weight:600;line-height:1.4}.pub-title a{color:inherit;text-decoration:none}.pub-title a:hover{color:var(--primary);text-underline-offset:.18em;text-decoration:underline}.pub-authors{color:var(--text-muted);margin:0;font-size:.84rem;line-height:1.45}.pub-links{flex-wrap:wrap;gap:.4rem;margin-top:.4rem;display:flex}.pub-chevron{width:1.75rem;height:1.75rem;color:var(--text-muted);transition:transform .3s var(--pub-ease), opacity .2s ease, background-color .15s ease;border-radius:.5rem;place-items:center;font-size:.7rem;display:grid;position:absolute;top:.85rem;right:.85rem}.pub-card:hover .pub-chevron{background:var(--primary-alpha-8);color:var(--text)}.pub-card.is-open .pub-chevron{z-index:2;background:var(--surface);top:1.75rem;right:1.75rem;transform:rotate(180deg);box-shadow:0 2px 8px #0f172a2e}[data-mode=full] .pub-chevron{opacity:0}.pub-x{grid-template-rows:0fr;display:grid}.pub-x-inner{min-height:0;overflow:hidden}.pub-x-body{opacity:0;transition:opacity .25s ease, transform .3s var(--pub-ease);gap:.75rem;padding-top:.75rem;display:grid;transform:translateY(-6px)}:is([data-mode=full] .pub-card,.pub-card.is-open) .pub-x{grid-template-rows:1fr}:is([data-mode=full] .pub-card,.pub-card.is-open) .pub-x-body{opacity:1;transition-delay:80ms;transform:none}.pub-card:not(.is-open) .pub-x-inner{visibility:hidden;transition:visibility 0s .4s}[data-mode=full] .pub-card .pub-x-inner{visibility:visible;transition:none}.pub-abstract{border-radius:var(--radius-sm);border-left:3px solid var(--primary-alpha-20);background:var(--surface-soft);color:var(--text-soft);margin:0;padding:.85rem 1rem;font-size:.9rem;line-height:1.65}.pub-tags{flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.pub-tags li{border:1px solid var(--chip-border);background:var(--chip-bg);color:var(--chip-text);border-radius:999px;padding:.2rem .6rem;font-size:.75rem}.pub-badge{--c:var(--text-muted);border:1px solid var(--border);background:var(--surface);min-width:4.5rem;height:1.6rem;color:var(--text);font:600 .72rem/1 var(--font-sans);white-space:nowrap;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:.35rem;padding:0 .65rem;text-decoration:none;transition:transform .15s,border-color .15s,background-color .15s,color .15s,box-shadow .15s,filter .15s;display:inline-flex}.pub-badge:hover{border-color:color-mix(in srgb, var(--c) 45%, transparent);background:color-mix(in srgb, var(--c) 7%, var(--surface));color:var(--c);box-shadow:0 2px 8px -4px color-mix(in srgb, var(--c) 60%, transparent);transform:translateY(-1px)}.pub-logo{object-fit:contain;flex:none;width:.95rem;height:.95rem;font-size:.78rem;line-height:1}img.pub-logo[src*=openreview]{border-radius:3px}.pub-badge--arxiv{--c:var(--pub-arxiv)}.pub-badge--pdf{--c:var(--pub-pdf)}.pub-badge--pdf .pub-logo{color:#ec1c24}.pub-badge--openreview{--c:var(--pub-or)}.pub-badge--cite{--c:var(--primary)}.pub-badge--cite .pub-logo{color:var(--primary)}.pub-badge--code,.pub-badge--code:hover{--c:var(--pub-code);background:var(--pub-code);border-color:var(--pub-code);color:var(--surface)}.pub-badge--code:hover{filter:brightness(1.2)}.pub-toast{left:50%;top:calc(var(--header-height) + .75rem);z-index:60;background:var(--text);color:var(--bg);font:600 .8rem var(--font-sans);opacity:0;pointer-events:none;border-radius:999px;padding:.5rem .9rem;transition:opacity .2s,transform .25s;position:fixed;transform:translate(-50%,-6px)}.pub-toast.is-shown{opacity:1;transform:translate(-50%)}@media (width<=40rem){.pub-card{--tw:6.5rem;--gap:.9rem;padding:.9rem 2.6rem .9rem .9rem}[data-mode=full] .pub-card,.pub-card.is-open{row-gap:.9rem;padding:.9rem}.pub-card.is-open .pub-chevron{top:1.3rem;right:1.3rem}[data-mode=mini] .pub-card:not(.is-open){display:flow-root}[data-mode=mini] .pub-card:not(.is-open) .pub-thumb{float:left;width:var(--tw);margin:0 var(--gap) .35rem 0}[data-mode=mini] .pub-card:not(.is-open) .pub-body{display:block}[data-mode=mini] .pub-card:not(.is-open) :is(.pub-venue,.pub-title,.pub-authors){margin-bottom:.35rem}.pub-links{gap:.3rem}.pub-badge{min-width:0;padding:0 .55rem}}.publication-authors .author-link{color:inherit;cursor:pointer;text-decoration:none}.publication-authors .author-link:hover,.publication-authors .author-link:focus{color:inherit;text-decoration:none}.publication-authors .author-link:focus-visible{outline-offset:2px;outline:1px solid}.publication-authors .author-self{color:var(--primary);font-weight:700}.card{background:var(--surface);border-radius:var(--radius-md);border:1px solid var(--border);gap:1rem;padding:1.75rem;display:grid;box-shadow:0 10px 30px #0f172a0f}.card h3{margin:0;font-size:1.1rem}.muted{color:var(--text-muted)}.project-card{gap:1.25rem}.image-modal{z-index:1000;padding:calc(env(safe-area-inset-top,0px) + 1rem) 1rem calc(env(safe-area-inset-bottom,0px) + 1rem);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.image-modal[hidden]{display:none}.image-modal__backdrop{cursor:pointer;background:#000000e6;position:absolute;inset:0}.image-modal__content{z-index:1;width:min(72rem,94vw);max-height:calc(100dvh - 2rem - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));grid-template-rows:auto minmax(0,1fr) auto;place-items:center;gap:.75rem;display:grid;position:relative}.image-modal__close{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:50%;justify-content:center;justify-self:end;align-items:center;width:2.5rem;height:2.5rem;font-size:1rem;transition:background .2s;display:flex}.image-modal__close:hover{background:#fff3}.image-modal__img{max-width:100%;max-height:calc(100dvh - 8rem - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));object-fit:contain;border-radius:var(--radius-sm);min-height:0;box-shadow:0 20px 60px #00000080}.image-modal__title{color:#fff;text-align:center;-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;max-width:100%;margin:0;font-size:.9rem;line-height:1.4;display:-webkit-box;overflow:hidden}.publication-authors{color:var(--text-muted);word-break:break-word;overflow-wrap:anywhere;margin:0;font-size:.9rem;line-height:1.5}.spotlight-label,.oral-label{color:#7c4a03;letter-spacing:.06em;text-transform:uppercase;background:#f59e0b14;border:1px solid #d977063d;border-radius:999px;align-items:center;gap:.35rem;padding:.3rem .62rem;font-size:.66rem;font-weight:700;line-height:1;display:inline-flex;box-shadow:inset 0 1px #ffffff8c}.spotlight-label:before,.oral-label:before{content:"";opacity:.72;background:currentColor;flex:none;width:.38rem;height:.38rem}.spotlight-label:before{border-radius:2px;transform:rotate(45deg)}.oral-label:before{border-radius:999px}.no-scroll{overflow:hidden}.footer{background:var(--footer-bg);color:var(--footer-text);text-align:center;padding:2.5rem 0}.footer p{margin:0}.footer-updated{color:var(--footer-text);opacity:.72;margin-top:.35rem;font-size:.85rem}.footer a{color:var(--footer-link)}html[data-theme=dark] a:hover,html[data-theme=dark] a:focus{color:#e0f2fe}html[data-theme=dark] .btn.btn-primary{color:#fff;background:#2563eb;border-color:#3b82f6}html[data-theme=dark] .btn.btn-primary:hover,html[data-theme=dark] .btn.btn-primary:focus-visible{color:#fff;background:#1d4ed8;border-color:#60a5fa}html[data-theme=dark] .btn.btn-outline{color:#bfdbfe;background:#2563eb2e;border-color:#93c5fd85}html[data-theme=dark] .btn.btn-outline:hover,html[data-theme=dark] .btn.btn-outline:focus-visible{color:#eff6ff;background:#2563eb47;border-color:#93c5fd}html[data-theme=dark] .card{border-color:#ffffff14;box-shadow:0 12px 32px #000000b3}html[data-theme=dark] .spotlight-label,html[data-theme=dark] .oral-label{color:#f8d982;background:#fbbf241a;border-color:#fbbf2442;box-shadow:inset 0 1px #ffffff14}html[data-theme=dark] .author-self{color:#60a5faeb}@media (width<=880px){.site-nav{gap:1rem}.site-nav ul{flex-wrap:wrap;justify-content:flex-end}.theme-toggle{padding:.4rem .8rem}.qr-toggle{width:2.25rem;height:2.25rem}}@media (width<=640px){.header-inner{flex-direction:row;align-items:center;padding:.75rem 0}.mobile-menu-toggle{margin-left:auto;display:flex}.site-nav{background:var(--header-bg);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);opacity:0;flex-direction:column;align-items:stretch;gap:0;width:100%;max-height:0;transition:max-height .3s,opacity .3s;position:absolute;top:100%;left:0;right:0;overflow:hidden}.site-nav.is-open{opacity:1;overscroll-behavior:contain;max-height:min(400px,100dvh - 60px);padding:1rem 0;overflow-y:auto}.site-nav ul{flex-direction:column;align-items:stretch;gap:0;width:100%;padding:0 1.5rem}.site-nav li{width:100%}.site-nav a{border-bottom:1px solid var(--border);padding:.75rem 0;display:block}.site-nav li:last-child a{border-bottom:none}.nav-actions{grid-template-columns:2.75rem minmax(0,1fr);align-self:stretch;gap:.5rem;margin:.5rem 1.5rem 0;display:grid}.nav-actions .theme-toggle{background:var(--surface);border-color:var(--border);min-height:2.55rem;box-shadow:none;border-radius:999px;justify-content:flex-start;align-self:stretch;gap:.5rem;margin:0;padding:.4rem .75rem .4rem .55rem}.nav-actions .theme-toggle i{background:var(--surface-soft);width:1.55rem;height:1.55rem;color:var(--primary);border-radius:999px;flex:0 0 1.55rem;justify-content:center;align-items:center;display:inline-flex}.nav-actions .theme-toggle .toggle-label{text-align:left;flex:1}.nav-actions .qr-toggle{background:var(--surface);border-color:var(--border);width:100%;height:auto;min-height:2.55rem}html[data-theme=dark] .nav-actions .theme-toggle{color:var(--text);box-shadow:none;background:#ffffff0f;border-color:#ffffff2e}html[data-theme=dark] .nav-actions .theme-toggle i{color:#bfdbfe;background:#ffffff14}.about-text__desktop{display:none}.about-text__mobile{flex-direction:column;gap:.85rem;display:flex}.about-mobile-research{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .19s cubic-bezier(.2,0,0,1),opacity .16s,transform .19s cubic-bezier(.2,0,0,1);display:grid;overflow:hidden;transform:translateY(-.2rem)}.about-mobile-research[hidden]{display:none}.about-mobile-research__inner{min-height:0;overflow:hidden}.about-mobile-research p{margin:0}.about-text__mobile.is-expanded .about-mobile-research{opacity:1;grid-template-rows:1fr;transform:translateY(0)}.about-text__mobile.is-collapsing .about-mobile-research{transition:grid-template-rows .12s cubic-bezier(.4,0,1,1),opacity .1s,transform .12s cubic-bezier(.4,0,1,1)}.about-toggle{width:fit-content;color:var(--primary);cursor:pointer;user-select:none;background:0 0;border:0;align-items:center;gap:.4rem;padding:.2rem 0;font-size:.9rem;font-weight:600;line-height:1;transition:border-color .2s,color .2s,background-color .2s;display:inline-flex}.about-toggle:hover,.about-toggle:focus-visible{text-underline-offset:.2em;text-decoration:underline}.about-toggle__label--less,.about-text__mobile.is-expanded .about-toggle__label--more{display:none}.about-text__mobile.is-expanded .about-toggle__label--less{display:inline}.about-toggle__icon{font-size:.78rem;transition:transform .2s}.about-text__mobile.is-expanded .about-toggle__icon{transform:rotate(180deg)}.masthead-header{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;display:grid}.masthead-header h1{overflow-wrap:anywhere;font-size:clamp(2.05rem,10vw,2.7rem)}.masthead-name{gap:.5rem}.masthead-roles{padding-left:.8rem}.masthead-role{font-size:.95rem}.masthead-role--field{font-size:1.1rem}.masthead-header .native-name{margin-top:.45rem;margin-left:0;display:block}.masthead-copy p{overflow-wrap:break-word;font-size:1rem;line-height:1.72}.section-heading{flex-direction:column;align-items:flex-start;gap:1rem}.publication-authors{font-size:.82rem}.spotlight-label,.oral-label{font-size:var(--font-size-min);border-radius:999px;padding:.22rem .5rem}.spotlight-label:before,.oral-label:before{width:.32rem;height:.32rem}}@media (width<=400px){.container{width:calc(100% - 1.25rem)}.masthead-role--field{font-size:1rem}.spotlight-label,.oral-label{font-size:var(--font-size-min);padding:.18rem .4rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}html{scroll-behavior:auto}.site-nav{transition:none!important}body[data-page-transition] main{animation:none!important;transform:none!important}body[data-page-transition].page-is-leaving main{opacity:1;transform:none}}:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.btn:focus-visible,.theme-toggle:focus-visible,.qr-toggle:focus-visible,.qr-dialog__close:focus-visible,.qr-dialog__dot:focus-visible{outline:3px solid var(--primary);outline-offset:2px;z-index:1}.qr-dialog__close:focus-visible{z-index:5}.skip-link:focus{z-index:9999;min-height:44px;padding:.75rem 1.25rem;font-weight:600;box-shadow:0 4px 12px #0000004d}
