:root{--bg:#fff;--surface:#f6f7f9;--surface-2:#eef0f3;--border:#e5e7eb;--border-2:#d1d5db;--text:#111827;--muted:#5b6472;--accent:#1a56db;--accent-h:#1040b0;--accent-soft:#e8effc;--accent-strong:#1a56db;--accent-strong-h:#1040b0;--ok:#0e7c59;--warn:#b45309;--warn-soft:#fef3c7;--nav-bg:#ffffffeb;--shadow:0 1px 2px #1118270f, 0 4px 16px #1118270d;--art-faint:#e1e5ec;--art-ink:#c3cad6;--art-signal:#a9c0f1;--radius:10px;--radius-sm:6px;--maxw:1240px;--gutter:16px;--font-sans:var(--font-inter);--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;color-scheme:light}:root[data-theme=dark]{--bg:#0f1117;--surface:#161b27;--surface-2:#1c2231;--border:#232b3b;--border-2:#2f3950;--text:#e5e9f0;--muted:#94a0b4;--accent:#5b96f2;--accent-h:#7eaef7;--accent-soft:#172443;--accent-strong:#2f6fe0;--accent-strong-h:#2560cf;--ok:#34d399;--warn:#fbbf24;--warn-soft:#3a2d0c;--nav-bg:#0f1117e6;--shadow:0 1px 2px #0006, 0 4px 16px #00000059;--art-faint:#212938;--art-ink:#354056;--art-signal:#2f4a78;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f1117;--surface:#161b27;--surface-2:#1c2231;--border:#232b3b;--border-2:#2f3950;--text:#e5e9f0;--muted:#94a0b4;--accent:#5b96f2;--accent-h:#7eaef7;--accent-soft:#172443;--accent-strong:#2f6fe0;--accent-strong-h:#2560cf;--ok:#34d399;--warn:#fbbf24;--warn-soft:#3a2d0c;--nav-bg:#0f1117e6;--shadow:0 1px 2px #0006, 0 4px 16px #00000059;--art-faint:#212938;--art-ink:#354056;--art-signal:#2f4a78;color-scheme:dark}}*,:before,:after{box-sizing:border-box}*{margin:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100dvh;font-size:16px;line-height:1.65;display:flex;position:relative}html[lang^=zh] body{letter-spacing:.01em;line-height:1.8}main{flex:1}img,svg,video{max-width:100%;display:block}a{color:var(--accent);text-underline-offset:3px;text-decoration:none}a:hover{color:var(--accent-h);text-decoration:underline}h1,h2,h3,h4{letter-spacing:-.01em;text-wrap:balance;font-weight:600;line-height:1.25}h1{font-size:clamp(1.9rem,4.5vw,2.75rem)}h2{font-size:clamp(1.4rem,3vw,1.75rem)}h3{font-size:1.125rem}p,li{text-wrap:pretty}small,.muted{color:var(--muted)}code{font-family:var(--font-mono);background:var(--surface-2);border-radius:4px;padding:.1em .35em;font-size:.9em}hr{border:0;border-top:1px solid var(--border)}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.skip-link{left:var(--gutter);z-index:100;background:var(--accent-strong);color:#fff;border-radius:var(--radius-sm);padding:8px 12px;position:absolute;top:-100px}.skip-link:focus{top:8px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.container{width:100%;max-width:var(--maxw);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:clamp(32px,4.5vw,52px)}.section+.section{border-top:1px solid var(--border)}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:24px;display:flex}.section-head h2{margin:0}.section-head .more{white-space:nowrap;font-size:.95rem}.page-head{isolation:isolate;padding-block:clamp(36px,6vw,64px) clamp(20px,3vw,32px);position:relative}.page-head .lede{color:var(--muted);max-width:60ch;margin-top:10px;font-size:1.1rem}.kicker{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;font-size:.8rem;font-weight:600}.grid{gap:20px;display:grid}.grid-2,.grid-3{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}.prose{max-width:70ch}.prose p+p{margin-top:1em}.prose h2{margin-top:2em;margin-bottom:.6em}.prose h3{margin-top:1.6em;margin-bottom:.5em}.prose ul,.prose ol{margin-block:.8em;padding-left:1.4em}.prose li+li{margin-top:.3em}.prose img{border-radius:var(--radius);border:1px solid var(--border);margin-block:1.2em}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;transition:border-color .15s,transform .15s,box-shadow .15s}a.card{color:inherit;display:block}a.card:hover{border-color:var(--border-2);box-shadow:var(--shadow);text-decoration:none;transform:translateY(-1px)}.card h3{margin-bottom:6px}.card p{color:var(--muted);font-size:.95rem}.chip{background:var(--surface-2);color:var(--muted);border:1px solid var(--border);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:2px 10px;font-size:.78rem;font-weight:500;display:inline-flex}.chip-accent{background:var(--accent-soft);color:var(--accent);border-color:#0000}.chip-warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.chip-award{background:var(--accent-soft);color:var(--accent);border-color:#0000;font-weight:600}.chips{flex-wrap:wrap;gap:6px;display:flex}.btn{border-radius:var(--radius-sm);border:1px solid var(--accent-strong);background:var(--accent-strong);color:#fff;cursor:pointer;align-items:center;gap:8px;padding:10px 18px;font-weight:500;transition:background .15s,border-color .15s;display:inline-flex}.btn:hover{background:var(--accent-strong-h);border-color:var(--accent-strong-h);color:#fff;text-decoration:none}.btn-ghost{color:var(--accent);border-color:var(--accent);background:0 0}.btn-ghost:hover{background:var(--accent-soft);color:var(--accent)}.icon{stroke:currentColor;fill:none;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:1.25em;height:1.25em}.icon-lg{stroke-width:1.5px;width:32px;height:32px}.filters{flex-wrap:wrap;gap:8px;margin-block:16px 24px;display:flex}.filters input{opacity:0;pointer-events:none;position:absolute}.filters label{border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--muted);border-radius:999px;padding:6px 14px;font-size:.9rem}.filters label:hover{border-color:var(--border-2);color:var(--text)}.filters input:checked+label{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.filters input:focus-visible+label{outline:2px solid var(--accent);outline-offset:2px}.nav{z-index:50;background:var(--nav-bg);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0}.nav-inner{align-items:center;gap:16px;min-height:60px;display:flex}.brand{color:var(--text);letter-spacing:-.01em;align-items:center;gap:10px;font-weight:600;display:flex}.brand:hover{color:var(--text);text-decoration:none}.brand-mark{flex:none;width:28px;height:28px}.brand-tile{fill:var(--accent-strong)}.brand-signal{stroke:#fff}.brand-dot{fill:#fff}.brand-sub{color:var(--muted);font-size:.72rem;font-weight:400;line-height:1.1;display:block}.nav-menu{margin-left:auto}.nav-links{align-items:center;gap:2px;margin:0;padding:0;list-style:none;display:flex}.nav-links a{border-radius:var(--radius-sm);color:var(--muted);white-space:nowrap;padding:8px 11px;font-size:.95rem;font-weight:500;display:block}.nav-links a:hover{color:var(--text);background:var(--surface-2);text-decoration:none}.nav-links a[aria-current=page]{color:var(--accent)}.nav-tools{flex:none;align-items:center;gap:4px;margin-left:8px;display:flex}.nav-tools a,.nav-tools button{border-radius:var(--radius-sm);border:1px solid var(--border);color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;align-items:center;gap:6px;padding:7px 10px;font-size:.85rem;font-weight:500;display:inline-flex}.nav-tools a:hover,.nav-tools button:hover{color:var(--text);background:var(--surface-2);text-decoration:none}.nav-toggle,html:not(.js) #theme-toggle,#theme-toggle .sun{display:none}:root[data-theme=dark] #theme-toggle .sun{display:block}:root[data-theme=dark] #theme-toggle .moon{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) #theme-toggle .sun{display:block}:root:not([data-theme=light]) #theme-toggle .moon{display:none}}@media (width<=1180px){.nav-toggle{margin-left:auto;display:inline-flex}.nav-links{background:var(--bg);border-bottom:1px solid var(--border);padding:8px var(--gutter) 12px;flex-direction:column;align-items:stretch;gap:0;margin:0;display:none;position:absolute;top:100%;left:0;right:0}.nav-links a{padding:12px 8px;font-size:1.05rem}.nav.open .nav-links{display:flex}.nav-menu{margin-left:0}html.js .nav-menu{margin-inline:-14px}.nav-tools{margin-left:0}html:not(.js) .nav-toggle{display:none}html:not(.js) .nav-inner{flex-wrap:wrap}html:not(.js) .nav-tools{margin-left:auto}html:not(.js) .nav-menu{flex-basis:100%;order:3}html:not(.js) .nav-links{background:0 0;border-bottom:0;flex-flow:wrap;padding:0 0 8px;display:flex;position:static}html:not(.js) .nav-links a{padding:8px 10px;font-size:1rem}.brand-sub{display:none}.brand{word-break:keep-all;overflow-wrap:anywhere;min-width:0;line-height:1.25}:lang(zh) .brand{overflow-wrap:normal}.nav-toggle{flex:none}}.footer{border-top:1px solid var(--border);color:var(--muted);margin-top:40px;padding-block:32px;font-size:.9rem}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px 32px;display:flex}.footer-links{flex-wrap:wrap;gap:8px 18px;padding:0;list-style:none;display:flex}.footer-links a{color:var(--muted)}.footer-links a:hover{color:var(--text)}.hero{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:clamp(28px,5vw,56px);padding-block:clamp(32px,5vw,64px) clamp(20px,3vw,32px);display:grid}.hero h1{max-width:18ch;margin-top:10px}.hero .lede{max-width:46ch;margin-top:14px;font-size:clamp(1.1rem,1.9vw,1.3rem);font-weight:500}.hero-body{color:var(--muted);max-width:58ch;margin-top:12px}.hero .actions{flex-wrap:wrap;gap:12px;margin-top:26px;display:flex}.hero-meta{color:var(--muted);flex-wrap:wrap;gap:8px 22px;margin-top:28px;padding:0;font-size:.9rem;list-style:none;display:flex}.hero-meta li,.hero-meta a{align-items:center;gap:6px;display:inline-flex}.hero-meta a{color:var(--muted)}.hero-meta a:hover{color:var(--accent)}@media (width<=860px){.hero{grid-template-columns:1fr}.hero-art{max-width:460px}}.signal-strip{--strip-signal:var(--accent);--strip-faint:var(--border-2);pointer-events:none;height:76px;margin-block:-8px 8px;mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000)}.signal-strip canvas{width:100%;height:100%;display:block}html:not(.js) .signal-strip{display:none}.hero-art{--cycle:28s;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:16px;position:relative;overflow:hidden}.hero-art>svg{width:100%;height:auto}.hero-art path,.hero-art circle{fill:none;stroke-linecap:round;stroke-linejoin:round}.hero-art .dot{fill:var(--border-2)}.hero-art .con{stroke:var(--border-2);stroke-width:1px;stroke-dasharray:2 6}.hero-art .dim{stroke:var(--muted);stroke-width:1.2px;stroke-dasharray:4 5}.hero-art .thin{stroke:var(--muted);stroke-width:1.2px}.hero-art .ink{stroke:var(--text);stroke-width:1.8px}.hero-art .body>*{fill:var(--surface)}.hero-art .sig{stroke:var(--accent);stroke-width:2px}.hero-art .ring{stroke:var(--accent);stroke-width:1.6px}.hero-art .key{fill:var(--accent);stroke:none}.hero-art .mark{fill:var(--muted);stroke:none}.hero-art .draw,.hero-art .trace{stroke-dasharray:1 1}.hero-art .pop{transform-box:fill-box;transform-origin:50%}.hero-art .scene+.scene{visibility:hidden}.hero-art .t1{--dt:.3s}.hero-art .t2{--dt:.6s}.hero-art .t3{--dt:.9s}.hero-art .t4{--dt:1.2s}.hero-art .t5{--dt:1.5s}.hero-art .t6{--dt:1.8s}.hero-art .t7{--dt:2.1s}.hero-art .t8{--dt:2.4s}.hero-art .t9{--dt:2.7s}.hero-art .t10{--dt:3s}.js .hero-art .scene{animation:hero-slot var(--cycle) linear infinite backwards;animation-delay:var(--at,0s)}.js .hero-art .scene:nth-child(2){--at:-22.4s}.js .hero-art .scene:nth-child(3){--at:-16.8s}.js .hero-art .scene:nth-child(4){--at:-11.2s}.js .hero-art .scene:nth-child(5){--at:-5.6s}.js .hero-art .fade{animation:hero-fade var(--cycle) ease-out infinite backwards}.js .hero-art .draw{animation:hero-draw var(--cycle) ease-in-out infinite backwards}.js .hero-art .trace{animation:hero-trace var(--cycle) ease-in-out infinite backwards}.js .hero-art .pop{animation:hero-pop var(--cycle) ease-out infinite backwards}.js .hero-art :is(.fade,.draw,.trace,.pop){animation-delay:calc(var(--at,0s) + var(--dt,0s))}.hero-art.is-paused *,.hero-art.is-off *{animation-play-state:paused!important}.hero-art.is-paused .scene,.hero-art.is-paused .fade,.hero-art.is-paused .pop{opacity:1!important}.hero-art.is-paused .draw,.hero-art.is-paused .trace{opacity:1!important;stroke-dashoffset:0!important}.hero-art.is-paused .pop{transform:none!important}@keyframes hero-slot{0%,17.86%{visibility:visible;opacity:1}20%{visibility:visible;opacity:0}20.01%,to{visibility:hidden;opacity:0}}@keyframes hero-fade{0%{opacity:0}2.14%,20.5%{opacity:1}20.6%,to{opacity:0}}@keyframes hero-draw{0%{stroke-dashoffset:1px;opacity:0}.2%{opacity:1}4.29%,20.5%{stroke-dashoffset:0;opacity:1}20.6%,to{stroke-dashoffset:1px;opacity:0}}@keyframes hero-trace{0%{stroke-dashoffset:1px;opacity:0}.2%{opacity:1}7.14%,20.5%{stroke-dashoffset:0;opacity:1}20.6%,to{stroke-dashoffset:1px;opacity:0}}@keyframes hero-pop{0%{opacity:0;transform:scale(.2)}1.07%{opacity:1;transform:scale(1.4)}1.61%,20.5%{opacity:1;transform:scale(1)}20.6%,to{opacity:0;transform:scale(.2)}}.hero-toggle{border:1px solid var(--muted);background:var(--bg);width:36px;height:36px;color:var(--muted);cursor:pointer;border-radius:50%;place-items:center;padding:0;display:none;position:absolute;bottom:10px;right:10px}.js .hero-toggle{display:grid}.hero-toggle:hover{color:var(--text);border-color:var(--text)}.hero-toggle[aria-pressed=true]{color:var(--accent)}.hero-toggle svg{stroke:currentColor;stroke-width:2px;width:16px;height:16px}.hero-toggle .i-play,.hero-toggle[aria-pressed=true] .i-pause{display:none}.hero-toggle[aria-pressed=true] .i-play{display:inline}.art{pointer-events:none;user-select:none}.art-defs{width:0;height:0;position:absolute;overflow:hidden}.art-svg{width:100%;height:100%;display:block}.art-svg *{fill:none;stroke-linecap:round;stroke-linejoin:round}.art .dots{fill:url(#art-dots)}.art .holes{fill:url(#art-holes)}.art .dot,.art .hole{fill:var(--art-faint)}.art .fade{fill:url(#art-fade)}.art .fade-in,.art .fade-out{stop-color:#fff}.art .fade-out{stop-opacity:0}.art .web{stroke:var(--art-faint);stroke-width:1px}.art .con{stroke:var(--art-faint);stroke-width:1.25px;stroke-dasharray:2 6}.art .dim{stroke:var(--art-ink);stroke-width:1px;stroke-dasharray:4 5}.art .ink{stroke:var(--art-ink);stroke-width:1.5px}.art .thin,.art .node{stroke:var(--art-ink);stroke-width:1px}.art .thick{stroke-width:3.5px}.art .sig,.art .lit{stroke:var(--art-signal);stroke-width:1.75px}.art .fine{stroke-width:1.1px}.art .key{fill:var(--art-signal);stroke:none}.art .dotk{fill:var(--art-ink)}.art .paper,.art .node{fill:var(--bg)}.art-head{display:none}@media (width>=1000px){.page-head.has-art h1{max-width:42rem}.art-head{--bleed:clamp(0px, (100vw - var(--maxw)) / 2 - 24px, 200px);z-index:-1;top:0;bottom:0;right:calc(-1 * var(--bleed));width:min(560px, 100% + var(--bleed) - 44rem);display:block;position:absolute;-webkit-mask-image:linear-gradient(90deg,#0000,#000 28%);mask-image:linear-gradient(90deg,#0000,#000 28%)}}.grid-2,.grid-3{container-type:inline-size}.art-fill{align-self:start;place-items:center;min-height:160px;display:none}.art-fill-2{grid-column:span 2}.art-fill .art-svg{width:min(100%,340px);height:auto}@container (width>=940px){.grid-3>.art-fill,.grid-2>.art-fill{display:grid}}.projects:has(#pf-all:not(:checked)) .art-fill,.art-bench{display:none}.art-bench .art-svg{height:auto}@media (width>=1600px){.art-bench{z-index:-1;width:min(380px, (100% - var(--maxw)) / 2 - 24px);display:block;position:absolute;top:340px;bottom:0;left:0;overflow:hidden}}.pub-year{color:var(--muted);margin-top:32px;margin-bottom:12px;font-size:1.05rem;font-weight:600}.pub{border-top:1px solid var(--border);gap:6px;padding:14px 0;display:grid}.pub:last-child{border-bottom:1px solid var(--border)}.pub-title{font-weight:600}.pub-authors{color:var(--text);font-size:.95rem}.pub-authors .me{font-weight:600}.pub-venue{color:var(--muted);font-size:.92rem}.pub-summary{color:var(--text);max-width:760px;font-size:.92rem;line-height:1.6}.pub-links{flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:.88rem;display:flex}.pub-links button{color:var(--accent);cursor:pointer;font-size:inherit;background:0 0;border:0;padding:0}.pub-links button:hover{text-decoration:underline}.life-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:12px;margin:0;padding:0;list-style:none;display:grid}.life-5>li:first-child,.life-3>li:first-child{grid-area:span 2/span 2}.life-3{grid-template-columns:repeat(3,minmax(0,1fr))}.life-grid a{color:inherit;height:100%;display:block}.life-grid a:hover{text-decoration:none}.life-grid .photo{grid-template-rows:minmax(0,1fr) auto;height:100%;display:grid}.life-grid .photo img{aspect-ratio:4/3;object-fit:cover;object-position:50% 30%;height:100%;transition:transform .3s}.life-grid .photo picture{border-radius:var(--radius);display:block;overflow:hidden}.life-grid a:hover img{transform:scale(1.03)}.life-grid figcaption{color:var(--muted);margin-top:6px;font-size:.85rem}.life-grid a:hover figcaption{color:var(--accent)}@media (width<=860px){.life-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.person{align-items:flex-start;gap:16px;display:flex}.avatar{object-fit:cover;background:var(--surface-2);border:1px solid var(--border);width:72px;height:72px;color:var(--muted);border-radius:50%;flex:none;place-items:center;font-size:1.2rem;font-weight:600;display:grid}.person h3{margin-bottom:2px}.person .role{color:var(--muted);font-size:.9rem}.person .bio{color:var(--text);margin-top:6px;font-size:.92rem}.person .destination{margin-top:6px;font-size:.92rem}.destination-label{color:var(--muted)}.grant-group+.grant-group{margin-top:28px}.grant-group-title{color:var(--muted);margin:0 0 12px;font-size:1.05rem;font-weight:600}.grant{gap:6px;display:grid}.grant-period{color:var(--muted);font-variant-numeric:tabular-nums;margin:0;font-size:.9rem}.grant-title{margin:0;font-size:1.05rem;font-weight:600}.grant-title-alt{color:var(--muted);margin:2px 0 0;font-size:.9rem}.grant-meta{flex-wrap:wrap;align-items:center;gap:6px 10px;margin:6px 0 0;font-size:.9rem;display:flex}.grant-no{color:var(--muted);font-variant-numeric:tabular-nums}.grant-summary{margin:4px 0 0;font-size:.95rem}.grant-list{margin:0;padding:0;list-style:none}.grant-row{border-top:1px solid var(--border);grid-template-columns:200px 1fr;gap:16px;padding:14px 0;display:grid}.grant-row:last-child{border-bottom:1px solid var(--border)}@media (width<=560px){.grant-row{grid-template-columns:1fr;gap:4px}}.faq-group+.faq-group{margin-top:20px}.faq-audience{color:var(--muted);margin:16px 0 10px;font-size:.95rem;font-weight:600}.faq{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.faq+.faq{margin-top:8px}.faq summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;min-height:24px;padding:12px 16px;font-weight:600;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";color:var(--accent);flex:none;font-size:1.3rem;font-weight:400;line-height:1}.faq[open] summary:after{content:"−"}.faq summary:hover{color:var(--accent)}.faq p{color:var(--muted);margin:0;padding:0 16px 14px}.honor-list{margin:0;padding:0;list-style:none}.honor{border-top:1px solid var(--border);grid-template-columns:64px 1fr;gap:16px;padding:14px 0;display:grid}.honor:last-child{border-bottom:1px solid var(--border)}.honor time{color:var(--muted);font-variant-numeric:tabular-nums}.honor-title{margin:0;font-weight:600}.honor-by{color:var(--muted);margin:2px 0 0;font-size:.92rem}.person .links{gap:10px;margin-top:8px;display:flex}.person .links a{color:var(--muted);display:inline-flex}.person .links a:hover{color:var(--accent)}.pi-card{grid-template-columns:auto 1fr;align-items:start;gap:24px;display:grid}.pi-card .avatar{width:120px;height:120px;font-size:2rem}@media (width<=560px){.pi-card{grid-template-columns:1fr}}.project-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:12px;font-size:.85rem;display:flex}.project-meta .lang:before{content:"";background:var(--accent);vertical-align:-1px;border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block}.project-links{flex-wrap:wrap;gap:6px 14px;margin-top:12px;font-size:.9rem;display:flex}.news-item{border-top:1px solid var(--border);grid-template-columns:110px 1fr;gap:16px;padding:16px 0;display:grid}.news-item:last-child{border-bottom:1px solid var(--border)}.news-item time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.9rem}@media (width<=560px){.news-item{grid-template-columns:1fr;gap:4px}}.area-card .icon-lg{color:var(--accent);margin-bottom:14px}.todo{color:var(--warn);background:var(--warn-soft);border-radius:4px;padding:2px 8px;font-size:.85rem}[id]{scroll-margin-top:80px}ul.chips{padding:0;list-style:none}.section-tight{padding-block:0 clamp(40px,6vw,64px)}.about{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;gap:clamp(28px,5vw,56px);display:grid}@media (width<=860px){.about{grid-template-columns:minmax(0,1fr)}}.about-text>p{max-width:62ch;margin:14px 0 0}.about.has-photo{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.about.has-photo .about-photo{grid-row:span 2}.about.has-photo .stats{grid-column:1;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.about.has-photo .stat{grid-template-columns:minmax(0,1fr);row-gap:2px}.about.has-photo .stat-n{grid-row:auto}.about.has-photo .stat-sub{grid-column:1}@media (width<=860px){.about.has-photo{grid-template-columns:minmax(0,1fr)}}.photo{margin:0}.photo img{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);width:100%;height:auto}.photo figcaption{color:var(--muted);margin-top:8px;font-size:.9rem}:root[data-theme=dark] .photo img{filter:brightness(.92)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .photo img{filter:brightness(.92)}}.stats{gap:12px;margin:0;padding:0;list-style:none;display:grid}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:minmax(3.6rem,auto) 1fr;align-items:baseline;column-gap:16px;padding:14px 18px;display:grid}.stat-n{color:var(--accent-strong);font-variant-numeric:tabular-nums;grid-row:span 2;font-size:2rem;font-weight:700;line-height:1.1}.stat-label{font-weight:600}.stat-sub{color:var(--muted);grid-column:2;font-size:.9rem}.split{grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:clamp(28px,5vw,56px);display:grid}.split:has(>:only-child){grid-template-columns:minmax(0,1fr)}@media (width<=860px){.split{grid-template-columns:1fr}}.count{background:var(--surface-2);min-width:1.7em;color:var(--muted);text-align:center;font-variant-numeric:tabular-nums;border-radius:999px;padding:0 6px;font-size:.78rem;display:inline-block}fieldset.filters{border:0;min-width:0;padding:0}.filters input:checked+label .count{color:#fff;background:#00000040}.back{color:var(--muted);gap:6px;margin-bottom:18px;font-size:.9rem;display:inline-flex}.back:hover{color:var(--accent)}.prose a{text-decoration:underline 1px}.js .reveal{opacity:0}.js .reveal.in{opacity:1;animation:.6s cubic-bezier(.2,.7,.2,1) backwards fade-up;animation-delay:calc(var(--i,0) * 70ms)}@keyframes fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .reveal,.js .reveal.in{opacity:1;animation:none}.hero-art *,.art *,.project-art *{animation:none!important}.js .hero-toggle{display:none}.card,.area-go,.video-play-icon,.showcase .project-repo{transition:none}a.card:hover,.project:hover,.life-grid a:hover img,a.showcase-item:hover{transform:none}.life-grid img{transition:none}}@media print{.js .reveal{opacity:1}.hero-art,.art,.signal-strip{display:none}.project-art .draw{animation:none}}.area-card{flex-direction:column;gap:8px;padding:22px 22px 20px;display:flex;position:relative}.area-card .area-title{margin:6px 0 0;font-size:1.1rem}.area-icon{background:var(--accent-soft);width:44px;height:44px;color:var(--accent);border-radius:11px;flex:none;place-items:center;display:grid}.area-icon .icon{stroke-width:1.6px;width:24px;height:24px}.area-icon-lg{border-radius:14px;width:56px;height:56px}.area-icon-lg .icon{width:30px;height:30px}.area-card .kw{margin-top:4px}.area-meta{color:var(--muted);margin-top:auto;padding-top:6px;font-size:.85rem}.area-go{color:var(--accent);opacity:0;transition:opacity .15s,transform .15s;position:absolute;top:22px;right:20px;transform:translate(-4px)}a.area-card:hover .area-go{opacity:1;transform:none}.area-card .art-card{--art-faint:var(--border);--art-ink:var(--border-2);height:60px;position:absolute;top:12px;left:84px;right:44px}.area-card .art-card .sig,.area-card .art-card .key{transition:stroke .2s,fill .2s}a.area-card:hover .art-card .sig{stroke:var(--accent)}a.area-card:hover .art-card .key{fill:var(--accent)}.facilities-line{border:1px dashed var(--border-2);border-radius:var(--radius);color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:28px;padding:14px 18px;font-size:.95rem;display:flex}.facilities-line strong{color:var(--text);font-weight:600}.facilities-line .icon{color:var(--accent)}.facilities-line a{margin-left:auto}.area-layout{grid-template-columns:minmax(0,1fr) 260px;align-items:start;gap:clamp(28px,5vw,56px);display:grid}.area-aside{gap:22px;display:grid;position:sticky;top:84px}.aside-title{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;font-size:.78rem;font-weight:600}.aside-people{gap:8px;padding:0;list-style:none;display:grid}.aside-people li{flex-direction:column;line-height:1.35;display:flex}.aside-people .muted{font-size:.82rem}.area-figure{margin-bottom:24px}.area-figure-portrait{float:right;width:min(38%,300px);margin:4px 0 16px 24px}.area-main:after{content:"";clear:both;display:block}.showcase{gap:18px;margin-top:28px;display:grid}.showcase-h{margin:0;font-size:1.15rem}.showcase-item{color:inherit;gap:12px;padding:14px;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:grid}a.showcase-item:hover{border-color:var(--border-2);box-shadow:var(--shadow);text-decoration:none;transform:translateY(-2px)}.showcase-item .photo img{background:#fff}.showcase-body{justify-items:start;gap:6px;padding:0 4px 2px;display:grid}.showcase-title{margin:0;font-size:1.02rem}a.showcase-item:hover .showcase-title{color:var(--accent)}.showcase-body p{color:var(--muted);margin:0;font-size:.92rem}.showcase .project-repo{color:var(--accent);align-items:center;gap:5px;margin-top:4px;font-size:.9rem;display:inline-flex}@media (width<=600px){.area-figure-portrait{float:none;width:100%;margin:0 0 24px}}@media (width<=860px){.area-layout{grid-template-columns:1fr}.area-aside{position:static}.area-aside .area-icon-lg{display:none}}.pub-list{padding:0;list-style:none}.pub-title{line-height:1.45}.pub-title a{color:var(--text)}.pub-title a:hover{color:var(--accent)}.pub-title-alt{color:var(--muted);font-size:.9rem}.bib-copy{align-items:center;gap:4px;display:inline-flex}.bib-copy .icon{width:1em;height:1em}.project{flex-direction:column;gap:10px;display:flex}.project-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.project-title{font-size:1.05rem;line-height:1.35}.project-title a{color:var(--text)}.project-title a:hover{color:var(--accent)}.card .project-people{color:var(--text);font-size:.88rem}.project-people .muted{margin-right:8px}.project .project-meta{margin-top:auto;padding-top:4px}.project .project-links{margin-top:0}.project-links a,.project-meta span{align-items:center;gap:5px;display:inline-flex}.stars .icon{width:1em;height:1em}.project:hover{border-color:var(--border-2);box-shadow:var(--shadow);transform:translateY(-2px)}.project-tagline{color:var(--text);font-weight:500}.card .project-summary{font-size:.9rem}.project-links .project-repo,.showcase .project-repo{border:1px solid var(--accent);border-radius:999px;padding:4px 12px;font-weight:600;transition:background-color .15s,color .15s}.project-links .project-repo:hover,a.showcase-item:hover .project-repo{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff;text-decoration:none}.project-art{background:var(--bg);border-bottom:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;margin:-20px -20px 2px;padding:10px 14px}.project-art svg{width:100%;height:auto;max-height:150px;display:block}.project-art *{fill:none;stroke-linecap:round;stroke-linejoin:round}.project-art .ink{stroke:var(--text);stroke-width:1.6px}.project-art .thin{stroke:var(--muted);stroke-width:1.1px}.project-art .con{stroke:var(--border-2);stroke-width:1.1px;stroke-dasharray:3 4}.project-art .sig{stroke:var(--accent);stroke-width:2px}.project-art .key{fill:var(--accent);stroke:none}.project-art .mark{fill:var(--muted);stroke:none}.project-art .paper{fill:var(--bg)}.project-art .draw{stroke-dasharray:1 1}.js .project.in:not(.drawn) .project-art .draw{animation:1.4s cubic-bezier(.4,0,.2,1) backwards project-draw;animation-delay:calc(var(--i,0) * 70ms + .15s)}.js .project.drawn:hover .project-art .draw{animation:1s cubic-bezier(.4,0,.2,1) project-redraw}@keyframes project-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes project-redraw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.people-pi{padding-bottom:8px}.people-grid{align-items:start}h2 .count{vertical-align:.3em;margin-left:6px}.thesis-year{color:var(--muted);margin:28px 0 8px;font-size:1.05rem;font-weight:600}.thesis-list{margin:0;padding:0;list-style:none}.thesis-list li{border-top:1px solid var(--border);grid-template-columns:minmax(0,11rem) minmax(0,1fr);gap:2px 16px;padding:8px 0;font-size:.95rem;line-height:1.45;display:grid}.thesis-list li:last-child{border-bottom:1px solid var(--border)}.thesis-list li:target{background:var(--accent-soft);border-radius:var(--radius-sm);margin-inline:-8px;padding-inline:8px}.thesis-student{overflow-wrap:anywhere;font-weight:600}.thesis-body{min-width:0}.thesis-body a{color:var(--text);overflow-wrap:anywhere}.thesis-body a:hover{color:var(--accent)}.thesis-body small{display:block}.thesis-more{margin-top:20px}.thesis-more>summary{cursor:pointer;color:var(--accent);padding:6px 0;font-weight:600}.thesis-more>summary:hover{color:var(--accent-h)}@media (width<=600px){.thesis-list li{grid-template-columns:minmax(0,1fr)}}.person-body{flex:1;min-width:0}.person-name{margin-bottom:2px;font-size:1.08rem}.pi-card{padding:clamp(20px,3vw,28px)}.pi-card .person-name{font-size:1.45rem}.name-alt{color:var(--muted);margin-left:8px;font-size:.9em;font-weight:500}.card .person .role,.person .role{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:.9rem;display:flex}.person .org{color:var(--muted);font-size:.92rem}.person-areas{margin-top:12px}.works-more{margin-top:10px;font-size:.88rem}.works-more>summary{cursor:pointer;color:var(--accent);font-weight:600}.works-more>summary:hover{color:var(--accent-h)}.works-more .works{margin-top:6px}.works{gap:8px;margin-top:12px;font-size:.88rem;display:grid}.works dt{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.72rem;font-weight:600}.works dd{margin:2px 0 0}.works ul{gap:2px;padding:0;list-style:none;display:grid}.cv{gap:14px}.cv .expertise{flex-wrap:wrap;gap:4px 0;display:flex}.cv .expertise li:not(:last-child):after{content:"·";color:var(--muted);margin:0 8px}.cv-years{color:var(--muted);font-variant-numeric:tabular-nums;margin-right:4px}.person .links{flex-wrap:wrap;gap:8px 14px;margin-top:12px;padding:0;list-style:none}.person .links a{align-items:center;gap:6px;font-size:.9rem}.person .links a:hover{text-decoration:none}.news-list{display:grid}.news-title{font-size:1.02rem;line-height:1.4}.news-title a{color:var(--text)}.news-title a:hover{color:var(--accent)}.news-summary{color:var(--muted);margin-top:4px;font-size:.92rem}.news-page .news-title{font-size:1.15rem}.news-year{color:var(--muted);margin-top:32px;margin-bottom:4px;font-size:1.05rem;font-weight:600}.news-lang{color:var(--muted);margin:4px 0 0;font-size:.85rem}.join-paths{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:20px;padding-bottom:clamp(36px,6vw,56px);display:grid}.join-path{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:10px;min-width:0;padding:clamp(20px,3vw,28px);display:flex}.join-path-icon{border-radius:var(--radius-sm);background:var(--accent-soft);width:42px;height:42px;color:var(--accent);place-items:center;display:grid}.join-path-icon .icon{width:22px;height:22px}.join-path h3{margin-top:4px;font-size:1.2rem}.join-path p{max-width:60ch}.join-path-actions{flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:auto;padding-top:8px;display:flex}.join-path-more{align-items:center;gap:6px;font-weight:500;display:inline-flex}.join-contact{background:var(--surface);border-block:1px solid var(--border);padding-block:clamp(36px,6vw,56px)}.join-contact-inner{grid-template-columns:minmax(0,1fr) minmax(0,360px);align-items:center;gap:clamp(28px,5vw,56px);display:grid}.join-contact h2{margin-bottom:20px;font-size:1.3rem}.contact-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:22px 32px;display:grid}.contact-list dt{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:6px;font-size:.75rem;font-weight:600;display:flex}.contact-list dt .icon{width:1.15rem;height:1.15rem;color:var(--accent)}.contact-list dd{overflow-wrap:anywhere;margin-top:4px}.contact-links{gap:4px;padding:0;list-style:none;display:grid}.contact-links a{align-items:center;gap:6px;display:inline-flex}.contact-links .icon{width:1.05em;height:1.05em}.join-contact .lab-sign img{box-shadow:var(--shadow)}.join-contact .lab-sign figcaption{text-align:center}.join-section{padding-top:clamp(40px,7vw,64px)}.join-section h2{margin-bottom:8px;font-size:1.3rem}.join-section-head{margin-bottom:28px}.join-section-head p{color:var(--muted);max-width:65ch}.albums{gap:clamp(28px,5vw,44px);display:grid}.people-grid+.tile-list{margin-top:20px}.alumni-update{margin-top:18px;font-size:.95rem}.tile-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.tile{border-radius:var(--radius-sm);align-items:flex-start;gap:10px;min-width:0;display:flex}.tile .avatar{width:44px;height:44px}.tile span.avatar{font-size:1rem}.tile-body{min-width:0;padding-top:2px}.tile-name{overflow-wrap:anywhere;margin:0;font-size:.95rem;font-weight:600;line-height:1.35}.tile-name a{color:var(--text)}.tile-name a:hover{color:var(--accent)}.tile-meta{overflow-wrap:anywhere;margin:2px 0 0;font-size:.82rem;line-height:1.4}.tile-meta .destination{color:var(--text)}.tile-meta .alumni-tag{font-size:inherit}.tile:target{background:var(--accent-soft);box-shadow:0 0 0 6px var(--accent-soft)}.alumni-summary{margin-top:6px;font-weight:600}.alumni-year{border-top:1px solid var(--border);grid-template-columns:4.5rem minmax(0,1fr);gap:10px 16px;padding:14px 0;display:grid}.alumni-year:last-child{border-bottom:1px solid var(--border)}.alumni-year-title{color:var(--muted);font-variant-numeric:tabular-nums;margin:0;padding-top:11px;font-size:1rem;font-weight:600;line-height:22px}.alumni-year>.tile-list{grid-column:2}.alumni-interns .alumni-year-title{grid-column:1/-1;padding-top:0}.alumni-nick,.alumni-tag{color:var(--muted);font-size:.85rem}.tile-name .alumni-nick{font-weight:400}.dest-cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.dest-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);align-items:flex-start;gap:14px;min-width:0;padding:16px;display:flex}.dest-card .avatar{width:56px;height:56px;font-size:1.1rem}.dest-body{min-width:0}.dest-who{overflow-wrap:anywhere;margin:0;font-weight:600;line-height:1.35}.dest-who a{color:var(--text)}.dest-who a:hover{color:var(--accent)}.dest-position{overflow-wrap:anywhere;margin:4px 0 0;font-size:1.02rem;line-height:1.45}.dest-meta{margin:6px 0 0;font-size:.85rem;line-height:1.4}.dest-card:target{box-shadow:0 0 0 3px var(--accent-soft)}@media (width<=560px){.alumni-year{grid-template-columns:minmax(0,1fr)}.alumni-year>.tile-list{grid-column:1}.alumni-year-title{padding-top:0}}.testimonials{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));align-items:start;gap:16px;margin-top:16px;padding:0;list-style:none;display:grid}.testimonial-head{align-items:center;gap:12px;margin-bottom:10px;display:flex}.testimonial-head .avatar{object-fit:cover;border-radius:50%;width:56px;height:56px}.testimonial-name{margin:0;font-weight:600}.testimonial-program{margin:0;font-size:.85rem}.testimonial blockquote{margin:0;font-size:.92rem}.album{border-top:1px solid var(--border);grid-template-columns:minmax(0,280px) minmax(0,1fr);align-items:start;gap:16px clamp(20px,4vw,40px);padding-top:clamp(20px,3vw,28px);display:grid}.album-head{gap:6px;display:grid}.album-date{color:var(--accent);font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:600}.album-title{font-size:1.15rem}.album-summary{color:var(--muted);font-size:.93rem}.album-photos{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.album-photos .photo img{aspect-ratio:4/3;object-fit:cover;object-position:50% 30%}.album-photos-single{grid-template-columns:minmax(0,1fr)}.album-photos-single .photo img{aspect-ratio:16/9}.join-split{grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));align-items:start;gap:40px clamp(32px,6vw,64px);display:grid}.join-split>section{min-width:0}.facility-list{border:1px solid var(--border);border-radius:var(--radius);margin-top:16px;padding:0;list-style:none}.facility{grid-template-columns:6.5rem minmax(0,1fr);align-items:baseline;gap:2px 16px;padding:14px 16px;display:grid}.facility+.facility{border-top:1px solid var(--border)}.facility-cat{color:var(--accent);letter-spacing:.06em;text-transform:uppercase;font-size:.75rem;font-weight:600}.facility-name{font-weight:500;line-height:1.5}.facility-qty{color:var(--muted);white-space:nowrap;font-weight:400}.facility-note{color:var(--muted);grid-column:2;font-size:.88rem}@media (width<=860px){.join-contact-inner{grid-template-columns:1fr}.join-contact .lab-sign{max-width:420px}}@media (width<=680px){.album{grid-template-columns:1fr}}.cta-wrap{padding-block:clamp(36px,6vw,64px) 8px}.section+.cta-wrap{padding-top:0}.cta,.join-band{border:1px solid var(--border);background:linear-gradient(135deg, var(--accent-soft), var(--surface) 70%);border-radius:16px}.cta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 24px;padding:clamp(22px,4vw,32px);display:flex}.cta-title{font-size:clamp(1.1rem,2.2vw,1.3rem);font-weight:600}.cta-actions,.join-band .actions{flex-wrap:wrap;gap:10px;display:flex}.join-band{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px 32px;padding:clamp(24px,4vw,40px);display:grid}.join-band h2{margin-bottom:8px}.join-band p{color:var(--muted);max-width:60ch}@media (width<=760px){.join-band{grid-template-columns:1fr}}.video-embed{aspect-ratio:16/9;border-radius:var(--radius);border:1px solid var(--border);background:radial-gradient(circle at 30% 20%, var(--accent-soft), var(--surface-2));margin-top:20px;overflow:hidden}.video-fallback{text-align:center;place-content:center;height:100%;padding:16px;font-weight:600;display:grid}html:not(.js) .video-play{display:none}.video-embed iframe{border:0;width:100%;height:100%;display:block}.video-play{cursor:pointer;width:100%;height:100%;color:var(--text);background:0 0;border:0;place-content:center;justify-items:center;gap:8px;display:grid}.video-play-icon{background:var(--accent-strong);width:64px;height:64px;box-shadow:var(--shadow);border-radius:50%;place-items:center;transition:transform .15s;display:grid}.video-play-icon svg{fill:#fff;width:28px;height:28px;margin-left:3px}.video-play:hover .video-play-icon{transform:scale(1.06)}.video-play-text{font-weight:600}.video-note{color:var(--muted);font-size:.8rem}.local-video{margin:16px 0 0}.local-video video{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);width:auto;max-width:100%;height:auto;max-height:70vh;display:block}.local-video figcaption{margin-top:6px;font-size:.8rem}.testimonial .local-video video{max-height:480px}.news-body .local-video{max-width:420px}.notfound{align-items:center;gap:32px clamp(28px,5vw,56px);padding-block:clamp(56px,10vw,112px);display:grid}@media (width>=860px){.notfound{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}}.art-404{width:100%;max-width:480px}.art-404 .art-svg{height:auto}@media (width<=859px){.art-404{max-width:360px}}.notfound .lede{color:var(--muted);max-width:60ch;margin-top:12px;font-size:1.1rem}.notfound .actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.nav-toggle[data-astro-cid-wpvy4v7s]{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--muted);cursor:pointer;background:0 0;padding:7px 10px}.nav-toggle[data-astro-cid-wpvy4v7s]:hover{color:var(--text);background:var(--surface-2)}.footer-links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{align-items:center;gap:6px;display:inline-flex}
