@font-face{font-family:Ubuntu Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ubuntu-mono-latin-400-normal.l4cqI2xd.woff2)format("woff2"),url(/_astro/ubuntu-mono-latin-400-normal.DpWeehTz.woff)format("woff")}@font-face{font-family:Ubuntu Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ubuntu-mono-latin-700-normal.nUYOZNIl.woff2)format("woff2"),url(/_astro/ubuntu-mono-latin-700-normal.g9eDMPsO.woff)format("woff")}:root{--font-mono:"Ubuntu Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--text-size:16px;--text-leading:24px;--space-1:8px;--space-2:16px;--space-3:24px;--space-4:32px;--space-5:40px;--space-6:48px;--nav-h:34px;--bottom-nav-h:72px;--sai-bottom:env(safe-area-inset-bottom,0px);--nav-clearance:0px;--page-gutter:clamp(20px, 3vw, 40px);--page-width:1440px;--reading-width:860px;--astro-code-foreground:var(--text);--astro-code-background:var(--surface);--astro-code-token-comment:var(--muted);--astro-code-token-parameter:var(--muted2);--astro-code-token-punctuation:var(--muted2);--astro-code-token-link:var(--text);--astro-code-token-string-expression:var(--astro-code-token-string);--astro-code-token-inserted:var(--astro-code-token-constant);--astro-code-token-deleted:var(--astro-code-token-keyword);--astro-code-token-changed:var(--astro-code-token-function)}:root.dark{--bg:#131316;--surface:#1b1b1f;--border:#34343a;--text:#e8e8ea;--muted:#8e8e95;--muted2:#c9c9cf;--astro-code-token-keyword:#ff7b72;--astro-code-token-string:#a5d6ff;--astro-code-token-constant:#0dbe4e;--astro-code-token-function:#d2a8ff}:root.light{--bg:#f4f4ef;--surface:#e8e8df;--border:#b7b7aa;--text:#111114;--muted:#717166;--muted2:#3d3d38;--astro-code-token-keyword:#b42318;--astro-code-token-string:#07559f;--astro-code-token-constant:#137333;--astro-code-token-function:#6f42c1}*,:before,:after{box-sizing:border-box}html{background:var(--bg);color:var(--text);font:400 var(--text-size)/var(--text-leading) var(--font-mono);scroll-padding-top:calc(var(--nav-h) + var(--space-2));scroll-padding-bottom:var(--nav-clearance)}body{scrollbar-width:thin;scrollbar-color:var(--border) transparent;margin:0}#root{min-height:100svh}h1,h2,h3,h4,h5,h6,p,ul,ol,blockquote,pre,figure{margin:0}h1,h2,h3,h4,h5,h6,button,input,select,textarea,pre,code,kbd,samp,small,sub,sup{font:inherit}h1,h2,h3,h4,h5,h6,strong,b,th{font-weight:700}button{color:inherit;cursor:pointer}a{color:inherit;text-underline-offset:3px;text-decoration-thickness:1px}a,button,summary{transition:color .18s}a:focus-visible,button:focus-visible,summary:focus-visible{outline-offset:4px;outline:1px solid}::selection{color:#241b32;background:#dfcef5}[hidden]{display:none!important}.page{width:100%;max-width:var(--page-width);min-height:100svh;padding:calc(var(--nav-h) + var(--space-4)) var(--page-gutter) calc(var(--space-6) + var(--nav-clearance));overflow-wrap:anywhere;margin-inline:auto}.reading-page{max-width:calc(var(--reading-width) + 2 * var(--page-gutter))}.nav{z-index:100;height:var(--nav-h);padding:2px var(--page-gutter) 0;background:var(--bg);justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0 0 auto}.nav-tabs{gap:var(--space-1);display:flex}.nav-tab{padding-inline:3px}.nav-tab:before,.resume-page__pdf:before{content:"[ "}.nav-tab:after,.resume-page__pdf:after{content:" ]"}.nav-tab,.mobile-tab,.paper-badge,.home-recent h2,.resume-page__section>h2{text-transform:uppercase}.nav-tab,.mobile-tab,.home-intro a,.resume-page__contact a,.resume-page__pdf,.copy-email__button{color:var(--muted);text-decoration:none}.nav-tab:is(:hover,:focus-visible,.active),.mobile-tab:is(:hover,:focus-visible,.active),.home-intro a:is(:hover,:focus-visible),.resume-page__contact a:is(:hover,:focus-visible),.resume-page__pdf:is(:hover,:focus-visible),.copy-email__button:is(:hover,:focus-visible){color:var(--text)}.mobile-nav{z-index:100;padding:0 var(--space-1) var(--sai-bottom);background:var(--bg);display:none;position:fixed;inset:auto 0 0}.mobile-tab{min-width:0;height:var(--bottom-nav-h);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;display:flex}.mobile-tab svg{width:18px;height:18px}@media (width<=639px){:root{--nav-clearance:calc(var(--bottom-nav-h) + var(--sai-bottom))}.nav-tabs{display:none}.mobile-nav{display:flex}}.theme-picker{top:2px;right:var(--page-gutter);align-items:center;display:inline-flex;position:absolute}.theme-toggle,.theme-picker__option{width:24px;height:24px;color:var(--muted);background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle:is(:hover,:focus-visible),.theme-picker__option:is(:hover,:focus-visible,.active){color:var(--text)}.theme-toggle__glyph{display:inline-flex}.theme-toggle svg,.theme-picker__option svg{width:14px;height:14px}.theme-picker__options{top:50%;right:calc(100% + var(--space-1));background:var(--bg);gap:4px;display:inline-flex;position:absolute;transform:translateY(-50%)}.content-list{gap:var(--space-3);display:grid}.content-item{min-width:0;text-decoration:none}.content-title{min-width:0;color:var(--muted);font-weight:700;transition:color .18s}.content-title a{text-decoration:none}.content-item:is(:hover,:focus-visible,:focus-within) .content-title{color:var(--text)}.content-meta{color:var(--muted)}.content-description{color:var(--muted2)}.blog-item,.paper-item-inner,.home-link-list>a{align-items:baseline;gap:var(--space-1) var(--space-3);grid-template-columns:minmax(0,1fr) auto;display:grid}.paper-main-col{gap:var(--space-1);min-width:0;display:grid}.paper-date,.paper-side-meta{text-align:right;justify-self:end}.paper-date,.paper-year-value,.home-link-meta time{white-space:nowrap}.paper-side-meta{gap:var(--space-1);flex-direction:column;display:flex}.project-item{align-items:baseline;gap:var(--space-1) var(--space-5);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.home-landing{grid-template-columns:minmax(0,560px) minmax(280px,1fr);align-items:end;gap:clamp(24px,6vw,80px);display:grid}.home-title{margin-bottom:var(--space-2)}.home-intro{max-width:54ch;color:var(--muted2)}.home-recent{margin-top:var(--space-4)}.home-recent h2{margin-bottom:var(--space-3);color:var(--muted)}.home-link-meta{gap:var(--space-2);flex-wrap:wrap;display:flex}.psyche-orb-wrap{justify-self:center;width:min(560px,100%)}.psyche-orb{aspect-ratio:1;width:100%;position:relative;overflow:hidden}.psyche-orb:after{pointer-events:none;content:"";background:radial-gradient(circle at 50% 50%, transparent 0 50%, var(--bg) 78%);position:absolute;inset:0}.psyche-orb__canvas{z-index:1;width:100%;height:100%;color:var(--text);touch-action:none;user-select:none;display:block;position:relative}@media (width<=900px){.home-landing{grid-template-columns:minmax(0,1fr)}.psyche-orb-wrap{order:-1;width:min(460px,100%)}}.blog-post-header,.project-detail__header{gap:var(--space-1);margin-bottom:var(--space-4);display:grid}.paper-detail-topline,.paper-detail-actions{gap:var(--space-1);flex-wrap:wrap;display:flex}.paper-detail-topline{color:var(--muted)}.paper-detail-title-row{align-items:start;gap:var(--space-2);grid-template-columns:minmax(0,1fr) auto;display:grid}.paper-detail-authors,.blog-body{color:var(--muted2)}.pdf-download-icon{border:1px solid var(--border);border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;text-decoration:none;display:inline-flex}.pdf-download-icon svg{width:16px;height:16px}.pdf-download-icon:is(:hover,:focus-visible){color:var(--text);border-color:currentColor}.blog-body>*+*,.blog-body :is(blockquote,li)>*+*{margin-top:var(--space-3)}.blog-body :is(h1,h2,h3,h4,h5,h6){color:var(--text)}.blog-body>:is(h1,h2,h3,h4,h5,h6):not(:first-child){margin-top:var(--space-4)}.blog-body :is(h1,h2,h3,h4,h5,h6)+*{margin-top:var(--space-2)}.blog-body :is(ul,ol){padding-left:var(--space-3)}.blog-body li+li,.blog-body li>:is(ul,ol){margin-top:var(--space-1)}.blog-body a{color:var(--text)}.blog-body blockquote{padding-left:var(--space-2);border-left:2px solid var(--border);color:var(--muted)}.blog-body code{color:var(--text)}.blog-body pre{max-width:100%;padding:var(--space-2);border:1px solid var(--border);background:var(--surface);white-space:pre;overflow-wrap:normal;border-radius:4px;overflow-x:auto}.blog-body pre code{color:inherit}.blog-body :is(img,video,svg){max-width:100%;height:auto}.blog-body hr{border:0;border-top:1px solid var(--border)}.blog-body table{border-collapse:collapse;max-width:100%;display:block;overflow-x:auto}.blog-body :is(th,td){padding:var(--space-1) var(--space-2);border:1px solid var(--border);text-align:left}.blog-body figcaption{margin-top:var(--space-1);color:var(--muted)}.resume-page__header,.resume-page__entry-header{justify-content:space-between;align-items:baseline;gap:var(--space-1) var(--space-3);display:flex}.resume-page__header>div,.resume-page__institution{min-width:0}.resume-page__contact{align-items:center;gap:var(--space-1) var(--space-2);margin-top:var(--space-1);flex-wrap:wrap;font-style:normal;display:flex}.resume-page__socials{flex-wrap:wrap;gap:4px;display:inline-flex}.resume-page__social{justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.resume-page__pdf,.resume-page__date{white-space:nowrap;flex-shrink:0}.resume-page__layout,.resume-page__section+.resume-page__section{margin-top:var(--space-4)}.resume-page__section>h2{margin-bottom:var(--space-3);color:var(--muted)}.resume-page__entry+.resume-page__entry{margin-top:var(--space-3)}.resume-page__organisation,.resume-page__date{color:var(--muted)}.resume-page__details,.resume-page__honours{padding-left:var(--space-2);color:var(--muted2)}.resume-page__details{margin-top:var(--space-2)}.resume-page__details li+li,.resume-page__honours li+li{margin-top:var(--space-1)}.resume-page__details li::marker,.resume-page__honours li::marker{color:var(--muted)}@media (width<=680px){.blog-item,.paper-item-inner,.project-item,.home-link-list>a{grid-template-columns:minmax(0,1fr)}.paper-date,.paper-side-meta{text-align:left;justify-self:start}.paper-side-meta{flex-flow:wrap}.resume-page__header,.resume-page__entry-header{flex-direction:column;align-items:flex-start}.resume-page__date{white-space:normal}}.not-found-page{align-content:center;display:grid}.not-found-detail{margin-top:var(--space-2);color:var(--muted2)}.cursor{background:currentColor;width:.72em;height:1.05em;margin-left:.18em;animation:1s step-end infinite blink;display:inline-block;transform:translateY(.18em)}@keyframes blink{50%{opacity:0}}@media (pointer:coarse){.theme-toggle,.theme-picker__option,.pdf-download-icon,.resume-page__social{min-width:44px;min-height:44px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.screen-reader-text{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.project-card__heading{align-items:center;gap:var(--space-1) var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.project-link,.research-detail__links a,.clone-control__button{color:var(--muted2);text-decoration:none}.project-link:is(:hover,:focus-visible),.research-detail__links a:is(:hover,:focus-visible),.clone-control__button:is(:hover,:focus-visible){color:var(--text);text-underline-offset:3px;text-decoration:underline}.project-detail__description{color:var(--muted2)}.project-links,.research-detail__links{align-items:center;gap:var(--space-1) var(--space-2);color:var(--muted);flex-wrap:wrap;display:flex}.project-links>.clone-control{flex-basis:100%}.project-links--compact{display:inline-flex}.project-clone-disclosure{max-width:100%;color:var(--muted2)}.project-clone-disclosure summary{cursor:pointer;list-style:none}.project-clone-disclosure summary::-webkit-details-marker{display:none}.project-clone-disclosure summary:is(:hover,:focus-visible){color:var(--text);text-underline-offset:3px;text-decoration:underline}.project-clone-disclosure .clone-control{width:min(32rem,100%);margin-top:var(--space-1)}.project-link--github{color:var(--muted2);align-items:center;display:inline-flex}.project-link--github:is(:hover,:focus-visible){color:var(--text)}.project-link--github svg{width:16px;height:16px}.clone-control{gap:var(--space-1) var(--space-2);padding-block:var(--space-2);border-block:1px solid var(--border);color:var(--muted);grid-template-columns:minmax(0,1fr) max-content;display:grid}.clone-control__url,.clone-control__command{overflow-wrap:anywhere;min-width:0}.clone-control__url{color:var(--muted2)}.clone-control__command{color:var(--muted);white-space:pre-wrap;grid-column:1/-1}.clone-control__button{background:0 0;border:0;grid-area:1/2;padding:0}.clone-control__status{min-height:var(--text-leading);color:var(--muted2);grid-column:1/-1}.research-conference{color:var(--muted)}.research-conference a{color:var(--muted2)}.project-detail__body img,.research-detail .blog-body img{display:block}@media (width<=639px){.clone-control{grid-template-columns:minmax(0,1fr)}.clone-control__button{grid-area:auto/1;justify-self:start}}
