@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--canvas: #f0efe9;--surface: #faf9f6;--ink: #151515;--ink-secondary: #64635e;--hairline: #d8d6cf;--rule-strong: #a7a59e;--inverse: #111111;--inverse-ink: #f4f3ef;--focus: #315cff;--media-surface: #e8e7e2;--media-fallback: #efeee9;--grain-opacity: .16;--ease-out: cubic-bezier(.22, 1, .36, 1);--page-gutter: 32px;--section-space: 144px;color:var(--ink);background:var(--canvas);font-family:Geist Variable,Geist,Inter,Helvetica Neue,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}:root[data-theme=dark]{--canvas: #10100f;--surface: #191918;--ink: #f2f1ec;--ink-secondary: #aaa9a2;--hairline: #34332f;--rule-strong: #706e67;--inverse: #080808;--inverse-ink: #f2f1ec;--focus: #8fa8ff;--media-surface: #24231f;--media-fallback: #1d1d1a;--grain-opacity: .12;color-scheme:dark}.portfolio-theme-changing,.portfolio-theme-changing body,.portfolio-theme-changing .portfolio-page,.portfolio-theme-changing .portfolio-header,.portfolio-theme-changing .portfolio-navigation,.portfolio-theme-changing .portfolio-project-card,.portfolio-theme-changing .portfolio-projects,.portfolio-theme-changing .portfolio-timeline-section,.portfolio-theme-changing .portfolio-timeline__entry--card,.portfolio-theme-changing .portfolio-research,.portfolio-theme-changing .portfolio-about,.portfolio-theme-changing .portfolio-plugin-entry__media .portfolio-media-frame__image,.portfolio-theme-changing .portfolio-media-frame,.portfolio-theme-changing .portfolio-media-frame__fallback,.portfolio-theme-changing .portfolio-media-frame__fallback-label,.portfolio-theme-changing .portfolio-logo__image,.portfolio-theme-changing .portfolio-footer,.portfolio-theme-changing .portfolio-theme-toggle,.portfolio-theme-changing .portfolio-eyebrow,.portfolio-theme-changing .portfolio-metadata,.portfolio-theme-changing .portfolio-navigation__link,.portfolio-theme-changing .portfolio-hero__supporting,.portfolio-theme-changing .portfolio-project-card__descriptor,.portfolio-theme-changing .portfolio-project-card__meta,.portfolio-theme-changing .portfolio-project-card__note,.portfolio-theme-changing .portfolio-timeline__location,.portfolio-theme-changing .portfolio-timeline__description,.portfolio-theme-changing .portfolio-about__copy p+p{transition-property:color,background-color,border-color,filter;transition-duration:.5s;transition-timing-function:var(--ease-out)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px;background:var(--canvas)}body{margin:0;min-width:320px;min-height:100vh;color:var(--ink);background:var(--canvas);font-family:inherit;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}body:after{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;content:"";pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:180px 180px;filter:contrast(130%);opacity:var(--grain-opacity);mix-blend-mode:multiply}:root[data-theme=dark] body:after{filter:none;mix-blend-mode:screen}button,a{color:inherit;font:inherit}a{text-underline-offset:.2em}button{border:0}img{display:block;max-width:100%}figure,h1,h2,h3,h4,p,ol,ul{margin:0}ol,ul{padding:0}::selection{color:var(--canvas);background:var(--ink)}:focus-visible{outline:2px solid var(--focus);outline-offset:4px}.portfolio-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}.portfolio-logo{width:min(180px,100%);height:48px;min-width:0;flex:0 0 auto;display:flex;align-items:center;justify-content:flex-start}.portfolio-logo__image{width:100%;height:100%;object-fit:contain;object-position:left center}:root[data-theme=dark] .portfolio-logo--lichtfeld .portfolio-logo__image,:root[data-theme=dark] .portfolio-logo--tu-delft .portfolio-logo__image,:root[data-theme=dark] .portfolio-logo--asml .portfolio-logo__image{filter:invert(1)}.portfolio-logo--lichtfeld{width:min(220px,100%);height:36px}.portfolio-logo--microsoft,.portfolio-logo--xiaomi{width:34px;height:34px}.portfolio-logo--xiaomi{width:52px}.portfolio-logo--colmap{width:40px;height:40px}.portfolio-logo--asig{width:54px;height:54px}.portfolio-logo--icip{width:min(150px,100%);height:56px}.portfolio-logo--tu-delft{width:min(150px,100%);height:58px}.portfolio-logo--asml{width:min(150px,100%);height:42px}.portfolio-logo--university-groningen{width:min(190px,100%);height:50px}.portfolio-logo--nuwa{width:min(128px,100%);height:50px}.portfolio-page{min-height:100vh;overflow:clip;color:var(--ink);background:var(--canvas)}.portfolio-container{width:min(1280px,calc(100% - (2 * var(--page-gutter))));margin-inline:auto}.portfolio-skip-link{position:fixed;top:8px;left:12px;z-index:100;padding:10px 14px;color:var(--inverse-ink);background:var(--inverse);transform:translateY(-160%);transition:transform .16s var(--ease-out)}.portfolio-skip-link:focus{transform:translateY(0)}.portfolio-header{position:fixed;inset:0 0 auto;z-index:50;height:64px;background:color-mix(in srgb,var(--canvas) 0%,transparent);border-bottom:1px solid transparent;transition:background-color .18s var(--ease-out),border-color .18s var(--ease-out)}.portfolio-header--scrolled{background:color-mix(in srgb,var(--canvas) 96%,transparent);border-color:var(--hairline);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.portfolio-reading-progress{width:24px;height:24px;flex:0 0 auto;transform:rotate(-90deg);pointer-events:none}.portfolio-reading-progress__track,.portfolio-reading-progress__value{fill:none;stroke-width:1.5}.portfolio-reading-progress__track{stroke:var(--hairline)}.portfolio-reading-progress__value{stroke:var(--ink);stroke-linecap:round}.portfolio-header__inner{width:min(1280px,calc(100% - (2 * var(--page-gutter))));height:100%;margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:32px}.portfolio-header__identity{display:flex;align-items:center;gap:10px;min-width:0}.portfolio-wordmark{position:relative;z-index:2;flex:0 0 auto;font-size:.9375rem;font-weight:600;letter-spacing:-.01em;text-decoration:none}.portfolio-navigation{display:flex;align-items:center;gap:clamp(20px,2.4vw,36px)}.portfolio-navigation__link{position:relative;min-height:44px;display:inline-flex;align-items:center;color:var(--ink-secondary);font-size:.875rem;font-weight:500;text-decoration:none;transition:color .16s var(--ease-out)}.portfolio-navigation__link:after{position:absolute;right:0;bottom:7px;left:0;height:1px;content:"";background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .16s var(--ease-out)}.portfolio-navigation__link:hover,.portfolio-navigation__link[aria-current=page]{color:var(--ink)}.portfolio-navigation__link:hover:after,.portfolio-navigation__link[aria-current=page]:after{transform:scaleX(1);transform-origin:left}.portfolio-menu-toggle{display:none;min-width:44px;min-height:44px;padding:0;color:var(--ink);background:transparent;font-size:.875rem;font-weight:500}.portfolio-theme-toggle{width:44px;min-height:44px;padding:0;display:inline-grid;place-items:center;color:var(--ink-secondary);background:transparent;border-radius:50%;cursor:pointer;transition:color .16s var(--ease-out),background-color .16s var(--ease-out)}.portfolio-theme-toggle:hover{color:var(--ink);background:var(--surface)}.portfolio-theme-toggle__icon{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;animation:portfolio-theme-icon-in .5s var(--ease-out) both}@keyframes portfolio-theme-icon-in{0%{opacity:0;transform:rotate(-28deg) scale(.72)}to{opacity:1;transform:rotate(0) scale(1)}}.portfolio-theme-toggle[aria-pressed=true]{color:var(--ink)}.portfolio-main{display:block}.portfolio-section{position:relative;padding-block:var(--section-space);scroll-margin-top:64px}.portfolio-eyebrow,.portfolio-metadata{color:var(--ink-secondary);font-size:.8125rem;font-weight:500;letter-spacing:.08em;line-height:1.25;text-transform:uppercase}.portfolio-section-heading{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;margin-bottom:64px}.portfolio-section-heading .portfolio-eyebrow{grid-column:1 / span 2;padding-top:.6rem}.portfolio-section-title{grid-column:3 / -1;max-width:11ch;font-size:clamp(2.75rem,5vw,5rem);font-weight:600;letter-spacing:-.055em;line-height:.98}.portfolio-section-title--small{max-width:15ch;font-size:clamp(2.5rem,4.2vw,4.5rem)}.portfolio-hero{min-height:min(900px,88svh);padding-top:clamp(128px,17vh,192px);padding-bottom:64px;display:flex;flex-direction:column;justify-content:space-between}.portfolio-hero__inner{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}.portfolio-hero__inner>.portfolio-eyebrow{grid-column:1 / span 2;padding-top:.8rem}.portfolio-hero__title{grid-column:3 / -1;max-width:11ch;font-size:clamp(4rem,8.4vw,8.75rem);font-weight:600;letter-spacing:-.065em;line-height:.92;text-wrap:balance}.portfolio-resolved-heading__word,.portfolio-resolved-heading__character{display:inline-block}.portfolio-resolved-heading__character{opacity:0;filter:blur(3px);transform:translateY(.16em);animation:portfolio-character-resolve .9s var(--ease-out) both;animation-delay:var(--character-delay)}@keyframes portfolio-character-resolve{to{opacity:1;filter:blur(0);transform:translateY(0)}}.portfolio-gaussian-field{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;overflow:hidden;pointer-events:none}.portfolio-gaussian-field__particle{position:absolute;display:block;color:color-mix(in srgb,var(--focus) 68%,var(--ink));background:radial-gradient(ellipse at center,color-mix(in srgb,currentColor 22%,transparent) 0,color-mix(in srgb,currentColor 9%,transparent) 48%,transparent 72%);border:1px solid color-mix(in srgb,currentColor 24%,transparent);border-radius:50%;opacity:0;transform:translate(-50%,-50%) rotate(var(--gaussian-rotation)) scale(.35);animation:portfolio-gaussian-drift 1.18s var(--ease-out) var(--gaussian-delay) both}.portfolio-gaussian-field__particle:nth-child(3n+2){color:color-mix(in srgb,#d8885b 58%,var(--ink))}.portfolio-gaussian-field__particle:nth-child(3n+3){color:color-mix(in srgb,#59a895 54%,var(--ink))}@keyframes portfolio-gaussian-drift{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--gaussian-rotation)) scale(.35)}24%{opacity:.52}to{opacity:0;transform:translate(calc(-50% + var(--gaussian-drift-x)),calc(-50% + var(--gaussian-drift-y))) rotate(calc(var(--gaussian-rotation) + 8deg)) scale(1.08)}}.portfolio-hero__intro{grid-column:5 / span 6;max-width:58ch;margin-top:32px;font-size:clamp(1.125rem,1.8vw,1.5rem);letter-spacing:-.02em;line-height:1.45}.portfolio-hero__supporting{grid-column:5 / span 6;margin-top:6px;color:var(--ink-secondary);font-size:.9375rem;font-weight:500}.portfolio-hero__links{grid-column:5 / -1;margin-top:20px;display:flex;flex-wrap:wrap;gap:8px 28px}.portfolio-text-link,.portfolio-project-card__destination{position:relative;width:fit-content;min-height:44px;display:inline-flex;align-items:center;color:inherit;font-size:.9375rem;font-weight:500;text-decoration:none}.portfolio-text-link:after,.portfolio-project-card__destination:after{position:absolute;right:0;bottom:8px;left:0;height:1px;content:"";background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .16s var(--ease-out)}.portfolio-text-link:hover:after,.portfolio-project-card__link:hover .portfolio-project-card__destination:after{transform:scaleX(1);transform-origin:left}.portfolio-email-copy-status{margin-left:.45rem;color:currentColor;font-size:.75rem;font-weight:500;opacity:.62;text-decoration:none}.portfolio-proof-strip{margin-top:64px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline)}.portfolio-proof-strip__item{min-height:88px;padding:20px 24px;display:flex;align-items:baseline;gap:10px}.portfolio-proof-strip__item+.portfolio-proof-strip__item{border-left:1px solid var(--hairline)}.portfolio-proof-strip__value{flex:0 0 auto;font-size:1.25rem;font-weight:600;letter-spacing:-.03em}.portfolio-proof-strip__label{color:var(--ink-secondary);font-size:.9375rem;line-height:1.35}.portfolio-work{padding-top:48px;padding-bottom:0}.portfolio-featured-grid,.portfolio-project-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}.portfolio-project-card{min-width:0;overflow:hidden;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--hairline);border-radius:4px;transition:border-color .18s var(--ease-out),transform .18s var(--ease-out)}.portfolio-project-card:hover,.portfolio-project-card:focus-within{border-color:var(--rule-strong);transform:translateY(-2px)}.portfolio-featured-grid>:nth-child(1){grid-column:1 / -1}.portfolio-featured-grid>:nth-child(2){grid-column:1 / -1}.portfolio-featured-grid>:nth-child(3){grid-column:1 / -1}.portfolio-featured-rosplat,.portfolio-featured-pair{min-width:0;grid-column:1 / -1}.portfolio-featured-rosplat>.portfolio-project-card{width:100%}.portfolio-featured-rosplat>.portfolio-project-card>.portfolio-project-card__link{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:stretch}.portfolio-featured-rosplat>.portfolio-project-card .portfolio-media-frame{min-height:100%;aspect-ratio:16 / 10;align-self:stretch;border-right:1px solid var(--hairline);border-bottom:0}.portfolio-featured-pair{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:24px;align-items:start}.portfolio-featured-pair>.portfolio-project-card{align-self:start}.portfolio-project-card__link{flex:1;display:flex;flex-direction:column;color:inherit;text-decoration:none}.portfolio-media-frame{position:relative;width:100%;aspect-ratio:16 / 10;overflow:hidden;background:var(--media-surface);border-bottom:1px solid var(--hairline)}.portfolio-media-frame__image{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .26s var(--ease-out)}.portfolio-plugin-entry__media{flex:0 0 auto;aspect-ratio:16 / 10}.portfolio-plugin-entry__media .portfolio-media-frame__image{object-fit:contain;object-position:center;background:var(--surface)}.portfolio-project-card__link:hover .portfolio-media-frame__image,.portfolio-plugin-collection:hover>.portfolio-media-frame .portfolio-media-frame__image{transform:scale(1.015)}.portfolio-media-frame__fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--ink-secondary);background:linear-gradient(var(--hairline) 1px,transparent 1px),linear-gradient(90deg,var(--hairline) 1px,transparent 1px),var(--media-fallback);background-size:48px 48px}.portfolio-media-frame__fallback-label{padding:8px 12px;background:var(--canvas);border:1px solid var(--hairline);font-size:.8125rem;font-weight:500}.portfolio-project-card__body{flex:1;padding:clamp(24px,3vw,40px);display:flex;flex-direction:column;align-items:flex-start}.portfolio-project-card__heading{display:grid;gap:8px}.portfolio-project-card__title-row,.portfolio-plugin-entry__title-row{width:100%;display:grid;gap:12px;align-items:start}.portfolio-project-card__title{font-size:clamp(2rem,3.6vw,3.5rem);font-weight:600;letter-spacing:-.05em;line-height:1}.portfolio-featured-grid>:nth-child(3) .portfolio-project-card__title,.portfolio-project-card--supporting .portfolio-project-card__title{font-size:clamp(1.75rem,2.4vw,2.5rem)}.portfolio-project-card__descriptor{max-width:40ch;font-size:1.125rem;letter-spacing:-.015em;line-height:1.4}.portfolio-project-card__description,.portfolio-plugin-entry__description{max-width:62ch;margin-top:24px;color:var(--ink-secondary);font-size:1rem;line-height:1.55}.portfolio-project-card__meta{margin-top:24px;color:var(--ink-secondary);font-size:.875rem;font-weight:500}.portfolio-project-card__proof,.portfolio-plugin-entry__proof{margin-top:18px;padding-top:18px;color:var(--ink);border-top:1px solid var(--hairline);font-size:.9375rem;line-height:1.5}.portfolio-project-card__proof strong,.portfolio-project-card__proof span{display:block}.portfolio-project-card__proof strong{font-weight:600}.portfolio-project-card__note{margin-top:12px;color:var(--ink-secondary);font-size:.8125rem}.portfolio-project-card__destination{margin-top:auto;padding-top:28px}.portfolio-project-card__destination:after{bottom:3px}.portfolio-project-card__actions{padding:16px clamp(24px,3vw,40px);display:flex;flex-wrap:wrap;gap:8px 24px;border-top:1px solid var(--hairline)}.portfolio-project-card__secondary-link{position:relative;min-height:44px;display:inline-flex;align-items:center;color:var(--ink);font-size:.875rem;font-weight:500;text-decoration:underline;text-decoration-color:var(--rule-strong);text-underline-offset:.25em}.portfolio-project-card__secondary-link:hover{text-decoration-color:var(--ink)}.portfolio-projects{background:var(--surface);border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline)}.portfolio-projects .portfolio-project-card{background:var(--canvas)}.portfolio-project-grid>*{grid-column:span 6}.portfolio-project-grid>.portfolio-plugin-collection{grid-column:1 / -1}.portfolio-plugin-collection__body{padding:clamp(24px,3vw,40px)}.portfolio-plugin-collection>.portfolio-plugin-collection__body>.portfolio-project-card__heading{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:start}.portfolio-plugin-collection>.portfolio-plugin-collection__body>.portfolio-project-card__heading>.portfolio-project-card__title{grid-column:1 / span 5}.portfolio-plugin-collection>.portfolio-plugin-collection__body>.portfolio-project-card__heading>.portfolio-logo{grid-column:1 / span 5}.portfolio-plugin-collection>.portfolio-plugin-collection__body>.portfolio-project-card__heading>.portfolio-project-card__description{grid-column:6 / -1;margin-top:0}.portfolio-plugin-collection__items{margin-top:40px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline)}.portfolio-plugin-entry{min-width:0;padding:28px 24px;display:flex;flex-direction:column;align-items:flex-start}.portfolio-plugin-entry+.portfolio-plugin-entry{border-left:1px solid var(--hairline)}.portfolio-plugin-entry__title{min-height:2.4em;font-size:1.25rem;font-weight:600;letter-spacing:-.025em;line-height:1.2}.portfolio-plugin-entry__title-row{width:100%;min-height:54px;display:flex;align-items:flex-start}.portfolio-plugin-entry__description{margin-top:14px}.portfolio-plugin-entry__link{height:100%;display:flex;flex-direction:column;color:inherit;text-decoration:none}.portfolio-plugin-entry__body{flex:1;padding-top:20px;display:flex;flex-direction:column;align-items:flex-start}.portfolio-plugin-entry__body .portfolio-text-link{margin-top:auto;padding-top:16px}.portfolio-plugin-collection__link{margin-top:24px}.portfolio-timeline-section{background:var(--canvas)}.portfolio-timeline-filters{margin-bottom:32px;padding-block:16px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:center;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline)}.portfolio-timeline-filters__label{grid-column:1 / span 3;color:var(--ink-secondary);font-size:.8125rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.portfolio-timeline-filters__buttons{grid-column:4 / -1;display:flex;flex-wrap:wrap;gap:8px}.portfolio-timeline-filters__button{position:relative;min-height:44px;padding:9px 14px;color:var(--ink-secondary);background:transparent;border:1px solid var(--hairline);border-radius:2px;font-size:.875rem;font-weight:500;transition:color .16s var(--ease-out),border-color .16s var(--ease-out)}.portfolio-timeline-filters__button:hover{color:var(--ink);border-color:var(--rule-strong)}.portfolio-timeline-filters__button[aria-pressed=true]{color:var(--ink);background:transparent;border-color:var(--rule-strong)}.portfolio-timeline-filters__underline{position:absolute;right:10px;bottom:4px;left:10px;height:2px;background:var(--ink);transform-origin:left center;pointer-events:none}.portfolio-timeline__scroll-help{margin-bottom:12px;color:var(--ink-secondary);font-size:.8125rem}.portfolio-timeline-scroller{width:calc(100vw - max(var(--page-gutter),(100vw - 1280px) / 2));padding:2px var(--page-gutter) 18px 0;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:inline proximity;scrollbar-color:var(--rule-strong) transparent;scrollbar-width:thin}.portfolio-timeline-scroller:focus-visible{outline-offset:4px}.portfolio-timeline{width:max-content;display:grid;grid-auto-flow:column;grid-auto-columns:clamp(300px,31vw,404px);gap:16px;list-style:none}.portfolio-timeline__entry--card{min-height:420px;padding:24px;display:flex;flex-direction:column;gap:0;background:var(--surface);border:1px solid var(--hairline);border-radius:3px;scroll-snap-align:start}.portfolio-timeline__index{color:var(--rule-strong);font-size:.8125rem;font-weight:500}.portfolio-timeline__content{min-width:0;flex:1;display:flex;flex-direction:column}.portfolio-timeline__meta-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:12px;color:var(--ink-secondary);font-size:.8125rem;font-weight:500}.portfolio-timeline__category{min-width:0;letter-spacing:.06em;text-transform:uppercase}.portfolio-timeline__period{justify-self:end;white-space:nowrap}.portfolio-timeline__identity{min-height:88px;margin-top:32px;display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:16px}.portfolio-timeline__identity>.portfolio-logo{width:72px;height:56px;min-height:56px;display:grid;place-items:center;overflow:hidden}.portfolio-timeline__identity>.portfolio-logo--wordmark{width:min(220px,100%);height:64px;grid-column:1 / -1;justify-self:start}.portfolio-timeline__identity>.portfolio-logo .portfolio-logo__image{max-width:68px;max-height:48px}.portfolio-timeline__identity>.portfolio-logo--wordmark .portfolio-logo__image{max-width:220px;max-height:64px}.portfolio-timeline__identity>.portfolio-logo--linked{border-radius:2px;transition:opacity .16s var(--ease-out)}.portfolio-timeline__identity>.portfolio-logo--linked:hover{opacity:.66}.portfolio-timeline__identity>.portfolio-timeline__title,.portfolio-timeline__identity>.portfolio-visually-hidden{grid-column:2}.portfolio-timeline__title{font-size:clamp(1.5rem,2vw,2rem);font-weight:600;letter-spacing:-.04em;line-height:1.08}.portfolio-timeline__role{min-height:2.9em;margin-top:16px;color:var(--ink);font-size:.9375rem;font-weight:500;line-height:1.45}.portfolio-timeline__location{min-height:2.7em;margin-top:6px;color:var(--ink-secondary);font-size:.8125rem;font-weight:500;line-height:1.4}.portfolio-timeline__description{min-height:6.2em;max-width:46ch;margin-top:16px;color:var(--ink-secondary);font-size:.9375rem;line-height:1.55}.portfolio-timeline__links{margin-top:auto;min-height:44px;padding-top:20px;display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 20px}.portfolio-timeline__empty{width:min(480px,calc(100vw - (2 * var(--page-gutter))));padding:40px;color:var(--ink-secondary);border:1px solid var(--hairline)}.portfolio-research{background:var(--surface);border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline)}.portfolio-research__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}.portfolio-publication,.portfolio-recognition{min-width:0;padding-top:24px;border-top:1px solid var(--ink)}.portfolio-publication{grid-column:1 / span 7}.portfolio-recognition{grid-column:9 / -1}.portfolio-publication__title{max-width:20ch;margin-top:32px;font-size:clamp(1.75rem,3vw,2.75rem);font-weight:600;letter-spacing:-.045em;line-height:1.08}.portfolio-publication__authors,.portfolio-publication__meta{max-width:60ch;margin-top:20px;color:var(--ink-secondary)}.portfolio-publication__meta{margin-top:8px}.portfolio-publication__links{margin-top:24px;display:flex;gap:24px}.portfolio-recognition__list{margin-top:24px;list-style:none}.portfolio-recognition__list li{padding-block:16px;border-top:1px solid var(--hairline);font-size:1rem}.portfolio-recognition__list li:first-child{border-top:0}.portfolio-recognition__list strong,.portfolio-recognition__list span{display:block}.portfolio-recognition__list span{margin-top:4px;color:var(--ink-secondary);font-size:.875rem}.portfolio-about__inner{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}.portfolio-about{background:var(--canvas)}.portfolio-about__inner>.portfolio-section-heading{grid-column:1 / span 5;display:block;margin:0}.portfolio-about__inner .portfolio-section-title{margin-top:24px}.portfolio-about__copy{grid-column:6 / -1;max-width:62ch;font-size:clamp(1.125rem,1.9vw,1.5rem);letter-spacing:-.02em;line-height:1.5}.portfolio-about__copy p+p{margin-top:24px;color:var(--ink-secondary);font-size:1rem}.portfolio-footer{padding:112px 0 32px;color:var(--inverse-ink);background:var(--inverse)}.portfolio-footer__title{max-width:18ch;margin-top:40px;font-size:clamp(2.75rem,6vw,5.75rem);font-weight:600;letter-spacing:-.06em;line-height:.98}.portfolio-footer .portfolio-eyebrow,.portfolio-footer__final-line{color:color-mix(in srgb,var(--inverse-ink) 62%,transparent)}.portfolio-footer__links{margin-top:64px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 32px}.portfolio-footer__email{margin-right:auto;min-height:44px;display:inline-flex;align-items:center;color:var(--inverse-ink);font-size:clamp(1.1rem,2vw,1.4rem);font-weight:500;text-decoration-thickness:1px}.portfolio-footer__final-line{margin-top:96px;padding-top:24px;border-top:1px solid color-mix(in srgb,var(--inverse-ink) 24%,transparent);font-size:.8125rem;font-weight:500}.portfolio-reveal{animation:portfolio-reveal .42s var(--ease-out) both}@keyframes portfolio-reveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 1023px){:root{--page-gutter: 20px;--section-space: 96px}.portfolio-hero__inner,.portfolio-section-heading,.portfolio-about__inner,.portfolio-research__grid{grid-template-columns:repeat(8,minmax(0,1fr));gap:20px}.portfolio-hero__inner>.portfolio-eyebrow{grid-column:1 / span 2}.portfolio-hero__title{grid-column:2 / -1}.portfolio-hero__intro,.portfolio-hero__supporting,.portfolio-hero__links{grid-column:3 / -1}.portfolio-section-heading .portfolio-eyebrow{grid-column:1 / span 2}.portfolio-section-title{grid-column:3 / -1}.portfolio-featured-grid>:nth-child(2){grid-column:1 / -1}.portfolio-featured-grid>:nth-child(3),.portfolio-featured-grid>.portfolio-featured-pair{grid-column:1 / -1}.portfolio-featured-rosplat>.portfolio-project-card>.portfolio-project-card__link{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.portfolio-featured-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.portfolio-publication{grid-column:1 / span 5}.portfolio-recognition{grid-column:6 / -1}.portfolio-about__inner>.portfolio-section-heading{grid-column:1 / span 3}.portfolio-about__copy{grid-column:4 / -1}}@media (max-width: 719px){:root{--page-gutter: 16px;--section-space: 72px}html{scroll-padding-top:64px}.portfolio-header__inner{gap:16px}.portfolio-menu-toggle{position:relative;z-index:2;display:inline-grid;place-items:center}.portfolio-navigation{position:absolute;top:63px;right:0;left:0;padding:12px var(--page-gutter) 20px;display:none;align-items:stretch;flex-direction:column;gap:0;background:var(--canvas);border-bottom:1px solid var(--hairline)}.portfolio-navigation--open{display:flex}.portfolio-navigation__link{justify-content:space-between;border-bottom:1px solid var(--hairline)}.portfolio-navigation__link:last-child{border-bottom:0}.portfolio-theme-toggle{align-self:flex-start}.portfolio-navigation__link:after{display:none}.portfolio-section-heading,.portfolio-hero__inner,.portfolio-about__inner,.portfolio-research__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.portfolio-section-heading{margin-bottom:40px}.portfolio-section-heading .portfolio-eyebrow,.portfolio-section-title,.portfolio-hero__inner>.portfolio-eyebrow,.portfolio-hero__title,.portfolio-hero__intro,.portfolio-hero__supporting,.portfolio-hero__links,.portfolio-publication,.portfolio-recognition,.portfolio-about__inner>.portfolio-section-heading,.portfolio-about__copy{grid-column:1 / -1}.portfolio-section-heading .portfolio-eyebrow{padding-top:0}.portfolio-section-title,.portfolio-section-title--small{margin-top:10px;font-size:2.5rem;line-height:1}.portfolio-hero{min-height:auto;padding-top:112px;padding-bottom:0}.portfolio-hero__title{min-width:0;margin-top:18px;font-size:clamp(3.4rem,16vw,5.25rem);letter-spacing:-.07em;overflow-wrap:anywhere}.portfolio-hero__intro{margin-top:28px}.portfolio-hero__supporting{margin-top:6px}.portfolio-hero__links{margin-top:12px;gap:4px 20px}.portfolio-proof-strip{width:100%;margin-top:52px;grid-template-columns:1fr}.portfolio-proof-strip__item{min-height:72px;padding:16px}.portfolio-proof-strip__item+.portfolio-proof-strip__item{border-top:1px solid var(--hairline);border-left:0}.portfolio-work{padding-top:var(--section-space)}.portfolio-featured-grid,.portfolio-project-grid{grid-template-columns:1fr;gap:16px}.portfolio-featured-grid>:nth-child(n),.portfolio-project-grid>*,.portfolio-project-grid>.portfolio-plugin-collection{grid-column:1}.portfolio-featured-rosplat>.portfolio-project-card>.portfolio-project-card__link{display:flex;flex-direction:column}.portfolio-featured-rosplat>.portfolio-project-card .portfolio-media-frame{min-height:0;border-right:0;border-bottom:1px solid var(--hairline)}.portfolio-featured-pair{grid-template-columns:1fr;grid-column:1;gap:16px}.portfolio-project-card__body,.portfolio-plugin-collection__body{padding:24px 20px}.portfolio-project-card__title,.portfolio-featured-grid>:nth-child(3) .portfolio-project-card__title,.portfolio-project-card--supporting .portfolio-project-card__title{font-size:clamp(1.75rem,9vw,2.25rem)}.portfolio-project-card__descriptor{font-size:1rem}.portfolio-plugin-collection__items{margin-top:28px;grid-template-columns:1fr}.portfolio-plugin-collection>.portfolio-plugin-collection__body>.portfolio-project-card__heading{display:block}.portfolio-plugin-collection>.portfolio-plugin-collection__body>.portfolio-project-card__heading>.portfolio-project-card__description{margin-top:16px}.portfolio-plugin-entry,.portfolio-plugin-entry+.portfolio-plugin-entry{padding:24px 0;border-left:0}.portfolio-plugin-entry+.portfolio-plugin-entry{border-top:1px solid var(--hairline)}.portfolio-plugin-entry__title{min-height:0}.portfolio-timeline-filters{display:block;margin-bottom:24px}.portfolio-timeline-filters__buttons{margin-top:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-timeline-filters__button{width:100%}.portfolio-timeline-scroller{width:calc(100vw - var(--page-gutter))}.portfolio-timeline{grid-auto-columns:min(86vw,360px)}.portfolio-timeline__entry--card{min-height:420px;padding-block:24px;gap:0}.portfolio-recognition{margin-top:48px}.portfolio-about__inner>.portfolio-section-heading{display:block}.portfolio-about__copy{margin-top:32px}.portfolio-footer{padding-top:72px}.portfolio-footer__links{margin-top:48px;align-items:flex-start;flex-direction:column;gap:4px}.portfolio-footer__email{margin-right:0;overflow-wrap:anywhere}.portfolio-footer__final-line{margin-top:64px}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.portfolio-reveal,.portfolio-project-card,.portfolio-media-frame__image,.portfolio-theme-toggle__icon,.portfolio-resolved-heading__character{opacity:1;filter:none;transform:none}.portfolio-gaussian-field{display:none}}
