:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--font-sans:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Microsoft YaHei", sans-serif;--font-mono:ui-monospace, "Cascadia Mono", "Segoe UI Mono", "SFMono-Regular", Menlo, Monaco, Consolas, monospace;--space-0:#06070a;--space-1:#0b0e14;--space-2:#121722;--space-3:#1a2130;--fog:#e8ecf4;--mist:#9aa3b8;--dim:#5c6578;--line:#e8ecf41a;--line-strong:#e8ecf42e;--accent:#eb0029;--accent-soft:#eb00291f;--signal:#4dabf7;--panel:#121722a6;--shadow:0 1px 0 #ffffff0a inset}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--space-0:#f4f5f8;--space-1:#e8eaf0;--space-2:#dce0ea;--space-3:#cfd5e2;--fog:#0d1117;--mist:#3d4456;--dim:#6b7280;--line:#0d11171a;--line-strong:#0d111729;--accent:#c40022;--accent-soft:#c4002214;--signal:#0066b3;--panel:#ffffffd1;--shadow:0 1px 0 #0000000f inset}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--space-0)}body{min-width:320px;font-family:var(--font-sans);color:var(--fog);background:var(--space-0);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-size:1rem;line-height:1.65}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{font:inherit;cursor:pointer}.app{min-height:100vh;position:relative;overflow-x:hidden}.app:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(ellipse 120% 80% at 50% -20%, #4dabf70f, transparent 50%), radial-gradient(ellipse 80% 50% at 100% 50%, #eb00290a, transparent 45%), linear-gradient(180deg, var(--space-0) 0%, var(--space-1) 40%, var(--space-0) 100%);position:fixed;inset:0}.app:after{content:"";z-index:0;pointer-events:none;background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);opacity:.4;background-position:-1px -1px;background-size:40px 40px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000 0% 75%,#0000 100%);mask-image:linear-gradient(#000 0% 75%,#0000 100%)}:root[data-theme=light] .app:after{opacity:.55}.masthead{z-index:50;border-bottom:1px solid var(--line);background:color-mix(in oklab, var(--space-1) 88%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:space-between;align-items:center;gap:1.25rem;padding:.875rem clamp(1rem,4vw,2rem);display:flex;position:sticky;top:0}.masthead__brand{min-width:0;color:inherit;align-items:center;gap:.75rem;text-decoration:none;display:flex}.masthead__brand:hover{color:inherit}.masthead__mark{width:2.25rem;height:2.25rem;font-family:var(--font-mono);letter-spacing:.06em;color:var(--accent);border:1px solid var(--line-strong);background:var(--accent-soft);flex-shrink:0;place-items:center;font-size:.65rem;font-weight:600;display:grid}.masthead__brand strong{letter-spacing:-.02em;font-size:.9375rem;font-weight:600;display:block}.masthead__brand small{font-family:var(--font-mono);color:var(--mist);letter-spacing:.02em;margin-top:.125rem;font-size:.65rem;display:block}.masthead__nav{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);align-items:center;gap:.25rem;padding:.25rem;display:flex}.masthead__nav a{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--mist);border-radius:2px;padding:.5rem .75rem;font-size:.6875rem;font-weight:500;transition:color .15s,background .15s}.masthead__nav a:hover{color:var(--fog);background:#e8ecf40f}.masthead__nav a.is-active{color:var(--space-0);background:var(--fog)}:root[data-theme=light] .masthead__nav a.is-active{color:var(--fog);background:var(--space-3)}.masthead__actions{gap:.5rem;display:flex}.masthead__actions button{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mist);border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:2px;padding:.45rem .65rem;font-size:.65rem;font-weight:500;transition:border-color .15s,color .15s}.masthead__actions button:hover{color:var(--fog);border-color:var(--line-strong)}.main{z-index:1;max-width:68rem;margin:0 auto;padding:0 clamp(1rem,4vw,2rem) 5rem;position:relative}.page-transition{animation:.42s cubic-bezier(.22,1,.36,1) both pageEnter}@keyframes pageEnter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.page-transition{animation:none}}.section{border-top:1px solid var(--line);padding:3.5rem 0}.section:first-of-type{border-top:none;padding-top:2.5rem}.section__head{grid-template-columns:auto 1fr;align-items:start;gap:1rem 1.5rem;max-width:48rem;margin-bottom:2rem;display:grid}.section__id{font-family:var(--font-mono);letter-spacing:.12em;color:var(--accent);padding-top:.35rem;font-size:.6875rem;font-weight:600}.section__title{letter-spacing:-.03em;color:var(--fog);margin:0;font-size:clamp(1.25rem,2.5vw,1.75rem);font-weight:600;line-height:1.2}.section__lede{color:var(--mist);grid-column:2;max-width:42rem;margin:0;font-size:.9375rem;line-height:1.7}.section__head--stack .section__lede{grid-column:1/-1}.section__lede--narrow{max-width:38rem}.section__title--sub{font-size:clamp(1rem,2vw,1.2rem)}.section__id--sub{opacity:.85;font-size:.62rem}.research-career__timelines{margin-top:2.25rem}.hero{grid-template-columns:1fr minmax(16rem,22rem);align-items:start;gap:2.5rem 3rem;padding-bottom:1rem;display:grid}.hero__kicker{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--signal);-webkit-font-smoothing:antialiased;margin:0 0 1rem;font-size:clamp(.8125rem,1.35vw,.9375rem);font-weight:500}.hero__title{letter-spacing:-.04em;color:var(--fog);margin:0 0 .75rem;font-size:clamp(1.75rem,4vw,2.5rem);font-weight:600;line-height:1.15}.hero__role{font-family:var(--font-mono);color:var(--mist);letter-spacing:.02em;margin:0 0 1.25rem;font-size:.8125rem}.hero__text{color:var(--mist);max-width:38rem;margin:0 0 1rem;font-size:.9375rem;line-height:1.75}.hero__tags{flex-wrap:wrap;gap:.5rem;margin:1.25rem 0 1.5rem;display:flex}.hero__tags span{font-family:var(--font-mono);letter-spacing:.04em;border:1px solid var(--line);color:var(--mist);background:#e8ecf408;border-radius:2px;padding:.35rem .6rem;font-size:.65rem}.hero__actions{flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem;display:flex}.hero__contacts{flex-wrap:wrap;gap:.5rem;display:flex}.hero__contacts span{font-family:var(--font-mono);color:var(--dim);border:1px solid var(--line);border-radius:2px;padding:.35rem .55rem;font-size:.7rem}.hero__aside{flex-direction:column;gap:1rem;display:flex}.portrait{border:1px solid var(--line-strong);background:var(--space-2);box-shadow:var(--shadow);border-radius:2px;overflow:hidden}.portrait img{aspect-ratio:1;object-fit:cover;width:100%}.portrait__meta{border-top:1px solid var(--line);padding:1rem 1.1rem}.portrait__meta p{font-family:var(--font-mono);color:var(--mist);-webkit-font-smoothing:antialiased;margin:0;font-size:.75rem;line-height:1.55}.portrait__meta h2{letter-spacing:-.02em;margin:.35rem 0 0;font-size:1.125rem;font-weight:600}.stat-grid{grid-template-columns:1fr 1fr;gap:.65rem;display:grid}.stat{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:2px;padding:1rem}.stat strong{font-family:var(--font-mono);color:var(--fog);letter-spacing:-.02em;font-size:1.125rem;font-weight:600;display:block}.stat span{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--dim);margin-top:.35rem;font-size:.6rem;display:block}.btn{min-height:2.5rem;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--line-strong);color:var(--fog);background:0 0;border-radius:2px;justify-content:center;align-items:center;padding:0 1.1rem;font-size:.6875rem;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.btn:hover{border-color:var(--fog);background:#e8ecf40f}.btn--primary{border-color:var(--accent);background:var(--accent);color:#fff}.btn--primary:hover{background:color-mix(in oklab, var(--accent) 88%, black);border-color:color-mix(in oklab, var(--accent) 88%, black);color:#fff}.btn--quiet{color:var(--mist);border-color:var(--line)}.split{grid-template-columns:minmax(0,14rem) 1fr;align-items:start;gap:2rem 2.5rem;display:grid}.card-grid{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.card{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:2px;padding:1.25rem 1.35rem;transition:border-color .15s}.card:hover{border-color:var(--line-strong)}.card__idx{font-family:var(--font-mono);letter-spacing:.12em;color:var(--dim);margin-bottom:.75rem;font-size:.6rem;font-weight:600}.card h3{letter-spacing:-.02em;color:var(--fog);margin:0 0 .5rem;font-size:.9375rem;font-weight:600}.card p{color:var(--mist);margin:0;font-size:.8125rem;line-height:1.65}.feature{max-width:100%}.feature__banner{margin-bottom:1.5rem}.feature__banner h2{font-family:var(--font-mono);letter-spacing:-.03em;color:var(--fog);margin:0 0 .5rem;font-size:clamp(1.5rem,3.5vw,2.25rem);font-weight:600}.feature__banner p{color:var(--mist);max-width:40rem;margin:0;font-size:.9375rem}.feature__split{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:2px;grid-template-columns:1.2fr 1fr;gap:1.5rem;padding:1.25rem;display:grid}.media{border:1px solid var(--line);background:var(--space-0);border-radius:2px;min-height:280px;overflow:hidden}.media img{object-fit:cover;width:100%;height:100%;min-height:280px}.media--infernux-video{aspect-ratio:16/9;min-height:0;max-height:min(70vh,520px);position:relative}.media--infernux-video iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.feature__copy{flex-direction:column;justify-content:center;gap:1rem;display:flex}.feature__copy p{color:var(--mist);margin:0;font-size:.875rem;line-height:1.75}.layer p strong{color:var(--fog);font-weight:600}.link-row{flex-wrap:wrap;gap:.5rem;display:flex}.layer-grid{grid-template-columns:repeat(4,1fr);gap:.75rem;margin-top:1.25rem;display:grid}.layer{border:1px solid var(--line);background:#e8ecf405;border-radius:2px;padding:1.1rem}.layer h3{color:var(--fog);margin:0 0 .5rem;font-size:.8125rem;font-weight:600}.layer p{color:var(--mist);margin:0;font-size:.75rem;line-height:1.6}.capability{border:1px solid var(--line);background:#e8ecf405;border-radius:2px;grid-template-columns:1fr 1.2fr;gap:1.5rem 2rem;margin-top:1.25rem;padding:1.5rem;display:grid}.capability h3{color:var(--fog);margin:0;font-size:1rem;font-weight:600;line-height:1.45}.capability ul{flex-direction:column;gap:.65rem;margin:0;padding:0;list-style:none;display:flex}.capability li{color:var(--mist);padding-left:1rem;font-size:.8125rem;line-height:1.55;position:relative}.capability li:before{content:"";background:var(--accent);border-radius:1px;width:4px;height:4px;position:absolute;top:.55em;left:0}.list-gap{flex-direction:column;gap:.75rem;display:flex}.paper-card{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:2px;padding:1.25rem 1.35rem;transition:border-color .15s}.paper-card:hover{border-color:var(--line-strong)}.paper-card a{display:block}.badge{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line);color:var(--mist);border-radius:2px;margin-bottom:.5rem;padding:.25rem .5rem;font-size:.6rem;font-weight:600;display:inline-block}.badge--ccf-a{color:var(--signal);border-color:color-mix(in oklab, var(--signal) 40%, var(--line));background:color-mix(in oklab, var(--signal) 8%, transparent)}.badge--journal{color:var(--mist)}.paper-card h3{letter-spacing:-.02em;color:var(--fog);margin:0 0 .35rem;font-size:1rem;font-weight:600;line-height:1.35}.paper-card p{color:var(--mist);margin:0 0 .35rem;font-size:.8125rem}.paper-card__intro{color:var(--dim)!important;margin:.35rem 0 .45rem!important;line-height:1.6!important}.paper-card small{font-family:var(--font-mono);color:var(--dim);font-size:.7rem}.text-link{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--signal);border-bottom:1px solid #0000;margin-top:1.25rem;font-size:.7rem;font-weight:600;transition:border-color .15s;display:inline-flex}.text-link:hover{border-bottom-color:var(--signal)}.project-grid{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}.project-card{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:2px;transition:border-color .15s;overflow:hidden}.project-card:hover{border-color:var(--line-strong)}.project-card__media{aspect-ratio:16/9;background:var(--space-2);border-bottom:1px solid var(--line);display:block}.project-card__media img{object-fit:cover;width:100%;height:100%}.project-card__media.is-missing img{display:none}.project-card__media.is-missing:after{content:"NO IMAGE";height:100%;font-family:var(--font-mono);color:var(--dim);place-items:center;font-size:.65rem;display:grid}.project-card__body{padding:1.1rem 1.25rem 1.25rem}.project-card__body h3{margin:0 0 .5rem;font-size:1rem;font-weight:600}.project-card__body h3 a{color:var(--fog);border-bottom:1px solid #0000;transition:border-color .15s}.project-card__body h3 a:hover{border-bottom-color:var(--signal)}.project-card__body p{color:var(--mist);margin:0 0 .5rem;font-size:.8125rem;line-height:1.6}.project-card__detail{color:var(--dim)!important;margin:0 0 .65rem!important;font-size:.75rem!important;line-height:1.65!important}.project-card__detail code{font-family:var(--font-mono);border:1px solid var(--line);background:var(--space-2);border-radius:2px;padding:.05em .25em;font-size:.88em}.project-card__body>strong{font-family:var(--font-mono);color:var(--dim);letter-spacing:.04em;font-size:.7rem;font-weight:500;display:block}.tag-row{flex-wrap:wrap;gap:.35rem;margin-top:.75rem;display:flex}.tag-row span{font-family:var(--font-mono);border:1px solid var(--line);color:var(--dim);border-radius:2px;padding:.2rem .45rem;font-size:.6rem}.game-grid{flex-direction:column;gap:1rem;display:flex}.game-card{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:2px;grid-template-columns:minmax(240px,1fr) 1fr;gap:1.25rem;padding:1.1rem;display:grid}.video-frame{border:1px solid var(--line);aspect-ratio:16/9;background:var(--space-0);border-radius:2px;overflow:hidden}.video-frame iframe{border:0;width:100%;height:100%}.game-card h3{color:var(--fog);margin:0 0 .35rem;font-size:1rem;font-weight:600}.game-card>div>strong{font-family:var(--font-mono);color:var(--dim);margin-bottom:.5rem;font-size:.7rem;display:block}.game-card>div>p{color:var(--mist);margin:0 0 .5rem;font-size:.8125rem;line-height:1.6}.game-card__detail{color:var(--dim)!important;margin:0 0 .65rem!important;font-size:.75rem!important;line-height:1.65!important}.game-card__detail code{font-family:var(--font-mono);border:1px solid var(--line);background:var(--space-2);border-radius:2px;padding:.05em .25em;font-size:.88em}.game-card>div>small{font-family:var(--font-mono);color:var(--dim);margin-bottom:.5rem;font-size:.68rem;display:block}.game-card__links{margin:.25rem 0 0;font-size:.78rem}.game-card__links a{color:var(--signal);text-underline-offset:.12em;text-decoration:underline}.game-card__links a:hover{color:var(--fog)}.two-col{grid-template-columns:1fr 1fr;align-items:start;gap:2rem 2.5rem;display:grid}.timeline,.award-list{flex-direction:column;gap:.75rem;display:flex}.timeline article,.award-list article{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:2px;padding:1.1rem 1.2rem}.timeline article>span:first-child{font-family:var(--font-mono);letter-spacing:.06em;color:var(--accent);font-size:.65rem}.timeline article h3{margin:.35rem 0 .25rem;font-size:.9375rem;font-weight:600}.timeline article>strong{font-family:var(--font-mono);color:var(--mist);margin-bottom:.5rem;font-size:.7rem;font-weight:500;display:block}.timeline article p,.award-list article p{color:var(--mist);margin:0;font-size:.8125rem;line-height:1.6}.experience-awards-follow{border-top:1px solid var(--line);margin-top:2.5rem;padding-top:2.5rem}.award-list article h3{margin:0 0 .35rem;font-size:.875rem;font-weight:600;line-height:1.4}.award-list__result{font-family:var(--font-mono);letter-spacing:.03em;font-weight:500;color:var(--fog)!important;font-size:.72rem!important}.award-list__blurb{border-top:1px solid var(--line);padding-top:.5rem;color:var(--dim)!important;margin-top:.5rem!important;font-size:.78rem!important;line-height:1.65!important}.award-card .award-list__blurb{border-top-color:var(--line)}.archive-hero{border-bottom:1px solid var(--line);margin-bottom:1.5rem;padding:2.5rem 0 1.5rem}.archive-hero .eyebrow{margin:0 0 .75rem}.archive-hero h1{letter-spacing:-.03em;margin:0 0 .75rem;font-size:clamp(1.5rem,3vw,2rem);font-weight:600}.archive-hero p{color:var(--mist);max-width:40rem;margin:0;font-size:.9375rem;line-height:1.7}.archive-list{padding-bottom:2rem}.archive-list.projects{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}.archive-list.games{flex-direction:column;gap:1rem;display:flex}.archive-list.papers,.archive-list.awards{flex-direction:column;gap:.75rem;display:flex}.award-card{border:1px solid var(--line);background:var(--panel);border-radius:2px;padding:1.1rem 1.2rem}.award-card h3{margin:0 0 .35rem;font-size:.9375rem;font-weight:600}.award-card p{color:var(--mist);margin:0;font-size:.8125rem}.footer{border-top:1px solid var(--line);color:var(--mist);justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-top:1rem;padding:2.5rem 0 3rem;font-size:.875rem;display:flex}.footer strong{color:var(--fog);margin-bottom:.35rem;font-weight:600;display:block}.footer-links{flex-wrap:wrap;justify-content:flex-end;gap:.75rem 1rem;display:flex}.footer-links a{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--signal);border-bottom:1px solid #0000;font-size:.7rem}.footer-links a:hover{border-bottom-color:var(--signal)}.eyebrow{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);-webkit-font-smoothing:antialiased;font-size:clamp(.75rem,1.2vw,.8125rem);font-weight:600}@media (width<=960px){.masthead{flex-wrap:wrap}.masthead__nav{-webkit-overflow-scrolling:touch;order:3;width:100%;overflow-x:auto}.hero,.feature__split,.split,.capability,.two-col,.layer-grid,.card-grid,.project-grid,.archive-list.projects,.section__head{grid-template-columns:1fr}.section__lede{grid-column:1}.game-card{grid-template-columns:1fr}}@media (width<=640px){.main{padding-bottom:3.5rem}.section{padding:2.5rem 0}.masthead__brand small{display:none}.footer{flex-direction:column}.footer-links{justify-content:flex-start}}
