:root{color-scheme:dark;--bg-canvas: #000000;--bg-surface: #08090f;--bg-surface-hover: #0e101a;--bg-elevated: #111422;--bg-header: rgba(0, 0, 0, .78);--text-primary: #ededed;--text-secondary: #9ca3af;--text-muted: #6b7280;--accent-blue: #60a5fa;--accent-blue-hover: #93c5fd;--accent-blue-subtle: rgba(96, 165, 250, .1);--accent-blue-border: rgba(96, 165, 250, .26);--nav-indicator: var(--accent-blue);--nav-indicator-hover: rgba(96, 165, 250, .55);--accent-violet: var(--accent-blue);--accent-violet-core: var(--accent-blue);--accent-violet-subtle: var(--accent-blue-subtle);--accent-violet-border: var(--accent-blue-border);--accent-violet-glow: transparent;--gradient-celestial: var(--accent-blue);--border-subtle: rgba(255, 255, 255, .08);--border-default: rgba(255, 255, 255, .14);--border-hover: rgba(96, 165, 250, .35);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", monospace;--tracking-normal: 0;--tracking-heading: 0;--tracking-tight: -.005em;--text-xs: .75rem;--text-sm: .875rem;--text-base: clamp(.96875rem, .94rem + .15vw, 1.03125rem);--text-lg: clamp(1.05rem, 1.01rem + .2vw, 1.135rem);--text-xl: clamp(1.275rem, 1.18rem + .45vw, 1.5rem);--text-2xl: clamp(1.85rem, 1.55rem + 1.25vw, 2.45rem);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 2.5rem;--space-8: 3rem;--space-9: 4rem;--space-10: 5rem;--container-max: 56.25rem;--gutter: clamp(1rem, 4vw, 1.75rem);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-pill: 9999px;--ease-out: cubic-bezier(.16, 1, .3, 1);--duration-fast: .16s;--duration-base: .24s}*,*:before,*:after{box-sizing:border-box}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}html,body{margin:0;padding:0;background-color:var(--bg-canvas);color:var(--text-primary);font-family:var(--font-sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{min-height:100dvh;display:flex;flex-direction:column;overflow-x:clip;overflow-wrap:break-word}::selection{background-color:#60a5fa47;color:#fff}h1,h2,h3,h4,h5,h6{color:var(--text-primary);font-weight:600;letter-spacing:var(--tracking-normal);margin-top:0}:focus-visible{outline:2px solid var(--accent-blue);outline-offset:3px;border-radius:3px}img,svg{display:block;max-width:100%}.skip-link{position:fixed;top:.75rem;left:.75rem;z-index:100;padding:.55rem .95rem;background-color:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--accent-blue);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:500;text-decoration:none;transform:translateY(-200%);transition:transform var(--duration-fast) var(--ease-out)}.skip-link:focus,.skip-link:focus-visible{transform:translateY(0)}.container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--gutter)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.starfield[data-astro-cid-rmt2cfs6]{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;opacity:1;transition:opacity .4s ease;-webkit-mask-image:radial-gradient(ellipse 38% 62% at 50% 48%,rgba(0,0,0,.14) 0%,rgba(0,0,0,.52) 56%,rgba(0,0,0,1) 100%);mask-image:radial-gradient(ellipse 38% 62% at 50% 48%,#00000024,#00000085 56%,#000)}html[data-stars=off] .starfield[data-astro-cid-rmt2cfs6]{opacity:0;visibility:hidden}@media(max-width:768px){.starfield[data-astro-cid-rmt2cfs6]{-webkit-mask-image:radial-gradient(ellipse 88% 82% at 50% 50%,rgba(0,0,0,.16) 0%,rgba(0,0,0,.45) 75%,rgba(0,0,0,.85) 100%);mask-image:radial-gradient(ellipse 88% 82% at 50% 50%,#00000029,#00000073 75%,#000000d9)}}.starfield-svg[data-astro-cid-rmt2cfs6]{width:100%;height:100%}.star-t1[data-astro-cid-rmt2cfs6]{animation:bv-twinkle-a 7.5s ease-in-out infinite alternate}.star-t2[data-astro-cid-rmt2cfs6]{animation:bv-twinkle-b 9.8s ease-in-out 1.4s infinite alternate}.star-t3[data-astro-cid-rmt2cfs6]{animation:bv-twinkle-a 11.8s ease-in-out 2.8s infinite alternate}.star-t4[data-astro-cid-rmt2cfs6]{animation:bv-twinkle-b 13.8s ease-in-out .7s infinite alternate}@keyframes bv-twinkle-a{0%{opacity:.22}to{opacity:.86}}@keyframes bv-twinkle-b{0%{opacity:.78}to{opacity:.2}}@media(prefers-reduced-motion:reduce){.star-t1[data-astro-cid-rmt2cfs6],.star-t2[data-astro-cid-rmt2cfs6],.star-t3[data-astro-cid-rmt2cfs6],.star-t4[data-astro-cid-rmt2cfs6]{animation:none!important}}.brand-link[data-astro-cid-tvrurpns]{display:inline-flex;align-items:center;gap:.75rem;text-decoration:none;color:var(--text-primary);transition:color var(--duration-fast) ease}.brand-mark[data-astro-cid-tvrurpns]{width:var(--logo-size, 42px);height:var(--logo-size, 42px);border-radius:0;object-fit:contain;mix-blend-mode:screen;flex-shrink:0;filter:brightness(1.5) contrast(1.15);transition:filter var(--duration-base) var(--ease-out),transform var(--duration-base) var(--ease-out)}.variant-bw[data-astro-cid-tvrurpns] .brand-mark[data-astro-cid-tvrurpns]{filter:invert(1) brightness(1.2) contrast(1.1)}.brand-name[data-astro-cid-tvrurpns]{font-size:1.025rem;font-weight:650;letter-spacing:var(--tracking-normal, 0);color:var(--text-primary);white-space:nowrap}.brand-link[data-astro-cid-tvrurpns]:hover .brand-mark[data-astro-cid-tvrurpns]{filter:brightness(1.75) contrast(1.2);transform:translateY(-.5px)}.variant-bw[data-astro-cid-tvrurpns]:hover .brand-mark[data-astro-cid-tvrurpns]{filter:invert(1) brightness(1.35) contrast(1.15);transform:translateY(-.5px)}.brand-link[data-astro-cid-tvrurpns]:hover .brand-name[data-astro-cid-tvrurpns]{color:#fff}.brand-link[data-astro-cid-tvrurpns]:focus-visible{outline-offset:2px;border-radius:var(--radius-sm)}@media(max-width:559px){.brand-mark[data-astro-cid-tvrurpns]{width:min(var(--logo-size, 42px),34px);height:min(var(--logo-size, 42px),34px)}.brand-name[data-astro-cid-tvrurpns]{font-size:.96rem}}.site-header[data-astro-cid-3ef6ksr2]{position:sticky;top:0;z-index:40;width:100%;background-color:var(--bg-header);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle)}.header-inner[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;min-height:52px}.header-brand[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;flex-shrink:0}.site-nav[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:clamp(.65rem,2vw,1.35rem)}.nav-link[data-astro-cid-3ef6ksr2],.nav-link[data-astro-cid-3ef6ksr2]:visited{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding-inline:.2rem;font-size:var(--text-sm);font-weight:500;letter-spacing:var(--tracking-normal, 0);color:var(--text-secondary);text-decoration:none;white-space:nowrap;transition:color var(--duration-fast) ease}.nav-link[data-astro-cid-3ef6ksr2]:hover{color:var(--text-primary)}.nav-link[data-astro-cid-3ef6ksr2].active{color:var(--text-primary);font-weight:600}.nav-link[data-astro-cid-3ef6ksr2]:focus-visible{outline:2px solid var(--accent-blue);outline-offset:3px;border-radius:var(--radius-sm)}.nav-link[data-astro-cid-3ef6ksr2]:after{content:"";position:absolute;left:.15rem;right:.15rem;bottom:11px;height:2px;background-color:var(--nav-indicator, var(--accent-blue));border-radius:1px;opacity:0;transform:scaleX(.4);transition:opacity var(--duration-fast) ease,transform var(--duration-base) var(--ease-out)}.nav-link[data-astro-cid-3ef6ksr2]:hover:after{opacity:.55;transform:scaleX(1)}.nav-link[data-astro-cid-3ef6ksr2].active:after{opacity:1;transform:scaleX(1)}@media(max-width:559px){.header-inner[data-astro-cid-3ef6ksr2]{flex-direction:column;align-items:stretch;gap:.15rem;min-height:auto;padding-top:.65rem}.header-brand[data-astro-cid-3ef6ksr2]{justify-content:flex-start}.site-nav[data-astro-cid-3ef6ksr2]{width:100%;justify-content:space-between;flex-wrap:nowrap;gap:.25rem}.nav-link[data-astro-cid-3ef6ksr2],.nav-link[data-astro-cid-3ef6ksr2]:visited{min-height:38px;font-size:.84rem;padding-inline:.15rem}.nav-link[data-astro-cid-3ef6ksr2]:after{bottom:6px}}.site-main[data-astro-cid-37fxchfa]{position:relative;z-index:1;flex:1 0 auto;padding-top:clamp(2.25rem,5vw,3.75rem);padding-bottom:clamp(3rem,7vw,4.75rem)}.hero[data-astro-cid-bbe6dxrz]{padding-top:var(--space-2);padding-bottom:var(--space-7)}.hero-grid[data-astro-cid-bbe6dxrz]{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-7);align-items:start}.hero-copy[data-astro-cid-bbe6dxrz]{min-width:0}.hero-name[data-astro-cid-bbe6dxrz]{margin:0 0 .45rem;font-size:var(--text-2xl);font-weight:700;letter-spacing:-.03em;line-height:1.12;color:var(--text-primary)}.hero-role[data-astro-cid-bbe6dxrz]{margin:0 0 var(--space-4) 0;font-size:var(--text-base);color:var(--text-secondary);line-height:1.5}.role-sep[data-astro-cid-bbe6dxrz]{margin-inline:.45rem;color:var(--text-muted)}.role-affiliation[data-astro-cid-bbe6dxrz]{color:var(--accent-blue);text-decoration:underline;text-decoration-color:var(--accent-blue-border);text-underline-offset:3px;transition:color var(--duration-fast) ease,text-decoration-color var(--duration-fast) ease}.role-affiliation[data-astro-cid-bbe6dxrz]:hover{color:var(--accent-blue-hover);text-decoration-color:var(--accent-violet)}.hero-bio[data-astro-cid-bbe6dxrz]{margin-bottom:0}.hero-bio[data-astro-cid-bbe6dxrz] p{color:var(--text-primary);font-size:var(--text-base);line-height:1.72;margin-bottom:var(--space-3)}.hero-bio[data-astro-cid-bbe6dxrz] p:last-child{margin-bottom:0}.hero-portrait-wrap[data-astro-cid-bbe6dxrz]{position:relative;padding-top:.25rem;flex-shrink:0}.portrait-halo[data-astro-cid-bbe6dxrz]{position:absolute;inset:-8px;border-radius:calc(var(--radius-lg) + 6px);background:radial-gradient(circle at 30% 25%,rgba(96,165,250,.26) 0%,rgba(168,85,247,.22) 52%,transparent 78%);filter:blur(18px);opacity:.85;pointer-events:none;z-index:0}.hero-portrait[data-astro-cid-bbe6dxrz]{position:relative;z-index:1;width:156px;height:184px;object-fit:cover;object-position:50% 50%;border-radius:var(--radius-lg);border:1px solid var(--border-default);background-color:var(--bg-surface)}@media(max-width:599px){.hero[data-astro-cid-bbe6dxrz]{padding-bottom:var(--space-6)}.hero-grid[data-astro-cid-bbe6dxrz]{grid-template-columns:1fr;gap:var(--space-4)}.hero-portrait-wrap[data-astro-cid-bbe6dxrz]{order:-1;justify-self:start;padding-top:0}.hero-portrait[data-astro-cid-bbe6dxrz]{width:104px;height:122px;object-position:50% 50%;border-radius:var(--radius-md)}}.page-header[data-astro-cid-wu5dj4rx]{margin-bottom:var(--space-6);padding-bottom:var(--space-5);border-bottom:1px solid var(--border-subtle)}.page-title[data-astro-cid-wu5dj4rx]{margin:0;font-size:var(--text-2xl);font-weight:700;letter-spacing:-.028em;line-height:1.15;color:var(--text-primary)}.page-lead[data-astro-cid-wu5dj4rx]{margin:.75rem 0 0;font-size:var(--text-base);color:var(--text-secondary);line-height:1.65;max-width:62ch}.prose{color:var(--text-primary);font-size:var(--text-base);line-height:1.72}.prose>*:first-child{margin-top:0}.prose>*:last-child{margin-bottom:0}.prose p{color:var(--text-primary);margin-top:0;margin-bottom:var(--space-4);line-height:1.72}.prose a{color:var(--accent-blue);text-decoration:underline;text-decoration-color:var(--accent-blue-border);text-underline-offset:3px;transition:color var(--duration-fast) ease,text-decoration-color var(--duration-fast) ease}.prose a:hover{color:var(--accent-blue-hover);text-decoration-color:var(--accent-violet)}.prose strong{color:var(--text-primary);font-weight:600}.prose code{font-family:var(--font-mono);font-size:.85em;color:var(--text-primary);background-color:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:.12em .42em}.prose h1{color:var(--text-primary);font-size:var(--text-2xl);font-weight:700;letter-spacing:-.025em;line-height:1.2;margin-top:var(--space-7);margin-bottom:var(--space-4)}.prose h2{color:var(--text-primary);font-size:var(--text-xl);font-weight:600;letter-spacing:-.02em;line-height:1.3;margin-top:var(--space-8);margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;gap:.6rem}.prose h2:before{content:"";width:6px;height:6px;border-radius:1.5px;transform:rotate(45deg);background:var(--gradient-celestial);box-shadow:0 0 8px var(--accent-violet-glow);flex-shrink:0}.prose h2:first-child{margin-top:var(--space-2)}.prose .entry-list,.prose .publication-list{list-style:none;padding:0;margin-top:var(--space-2);margin-bottom:var(--space-6)}.prose .entry-item,.prose .publication-list>li{padding:var(--space-4) var(--space-3);margin-inline:calc(-1 * var(--space-3));border-bottom:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:background-color var(--duration-fast) ease,border-color var(--duration-fast) ease}.prose .entry-item:last-child,.prose .publication-list>li:last-child{border-bottom-color:transparent}.prose .entry-item:hover,.prose .publication-list>li:hover{background-color:var(--bg-surface)}.prose .entry-item h3{font-size:var(--text-lg);font-weight:500;line-height:1.42;letter-spacing:-.01em;margin:0 0 .35rem;color:var(--text-primary)}.prose .entry-item h3 a,.prose .publication-list>li>a:first-child,.prose .publication-list .paper-title{color:var(--accent-blue);font-size:var(--text-lg);font-weight:500;line-height:1.42;text-decoration:none;transition:color var(--duration-fast) ease}.prose .entry-item h3 a:hover,.prose .publication-list>li>a:first-child:hover,.prose .publication-list .paper-title:hover{color:var(--accent-blue-hover);text-decoration:underline;text-decoration-color:var(--accent-violet-border);text-underline-offset:3px}.prose .entry-item h3 a[data-external=true]:after,.prose .publication-list>li>a[data-external=true]:first-child:after{content:" ↗";display:inline;white-space:nowrap;font-size:.8em;opacity:.72;transition:opacity var(--duration-fast) ease,color var(--duration-fast) ease}.prose .entry-item h3 a[data-external=true]:hover:after,.prose .publication-list>li>a[data-external=true]:first-child:hover:after{opacity:1;color:var(--accent-violet)}.prose .entry-item .entry-meta,.prose .entry-item p,.prose .publication-list .authors{display:block;color:var(--text-secondary);font-size:var(--text-sm);line-height:1.62;margin:0}.prose .entry-item .entry-meta code,.prose .entry-item p code{font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--text-secondary);background-color:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:.14rem .58rem;margin-left:.35rem;white-space:nowrap}.prose .timeline-list,.prose .resume-list{list-style:none;padding:0;margin-top:var(--space-2);margin-bottom:var(--space-5)}.prose .timeline-row,.prose .resume-list>li{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--border-subtle);color:var(--text-primary)}.prose .timeline-row:last-child,.prose .resume-list>li:last-child{border-bottom:none}.prose .timeline-content{color:var(--text-primary);line-height:1.58}.prose .timeline-badge,.prose .resume-list .date,.prose .badge{display:inline-block;font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;line-height:1.4;color:var(--text-secondary);background-color:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:.22rem .68rem;white-space:nowrap;flex-shrink:0}.prose .kv-list{list-style:none;padding:0;margin-top:var(--space-2);margin-bottom:var(--space-6)}.prose .kv-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.25rem 1rem;min-height:46px;padding:.55rem 0;border-bottom:1px solid var(--border-subtle)}.prose .kv-row:last-child{border-bottom:none}.prose .kv-label{color:var(--text-secondary);font-size:var(--text-sm);font-weight:500}.prose .kv-label strong{color:inherit;font-weight:500}.prose .kv-value{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-primary)}.prose .kv-value a{color:var(--accent-blue);text-decoration:none;display:inline;padding-block:.2rem}.prose .kv-value a:hover{color:var(--accent-blue-hover);text-decoration:underline;text-decoration-color:var(--accent-violet-border);text-underline-offset:3px}.prose .kv-value a[data-external=true]:after{content:" ↗";display:inline;white-space:nowrap;font-family:var(--font-sans);font-size:.82em;opacity:.72;transition:opacity var(--duration-fast) ease,color var(--duration-fast) ease}.prose .kv-value a[data-external=true]:hover:after{opacity:1;color:var(--accent-violet)}.prose ul:not(.timeline-list):not(.kv-list):not(.publication-list):not(.resume-list){list-style:none;padding-left:0;margin-top:var(--space-3);margin-bottom:var(--space-5);display:grid;gap:.55rem}.prose ul:not(.timeline-list):not(.kv-list):not(.publication-list):not(.resume-list)>li{position:relative;padding-left:1.25rem;color:var(--text-primary);line-height:1.62}.prose ul:not(.timeline-list):not(.kv-list):not(.publication-list):not(.resume-list)>li:before{content:"";position:absolute;left:.15rem;top:.64em;width:5px;height:5px;border-radius:1px;transform:rotate(45deg);background:var(--accent-violet);box-shadow:0 0 6px var(--accent-violet-glow)}@media(max-width:560px){.prose p,.prose li{color:var(--text-primary)}.prose .entry-item,.prose .publication-list>li{padding:.85rem var(--space-2);margin-inline:calc(-1 * var(--space-2))}.prose .timeline-row,.prose .resume-list>li{flex-direction:column;align-items:flex-start;gap:.35rem;padding:.75rem 0}}
