@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.03ez25a9g3i0n.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.3i9rha7jpxn0q.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.2o7ko1d-5m1xu.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.1ee5w62fj497l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.1way2z9fj6cig.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.0szrwpqb9mkwe.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.45535valc9rzk.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_5901b7c6-module__ec5Qua__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_5901b7c6-module__ec5Qua__variable{--font-inter:"Inter", "Inter Fallback"}
@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.block{display:block}.flex{display:flex}.hidden{display:none}.inline-flex{display:inline-flex}.h-full{height:100%}.min-h-full{min-height:100%}.resize{resize:both}.flex-col{flex-direction:column}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--background:#fff;--foreground:#252525;--muted:#898989;--nav-background:#ececec;--blue:#55a0ff;--resume-backdrop-blur:52px;--resume-backdrop-veil-opacity:.06;--resume-backdrop-saturation:1.05;--resume-backdrop-overscan:40px;--resume-backdrop-duration:.3s}*{box-sizing:border-box}html,body{min-height:100%}html{scrollbar-gutter:stable}body{background:var(--background);color:var(--foreground);margin:0;font-family:Inter,Arial,sans-serif;font-size:16px;font-weight:400;line-height:1.4}p,h1,h2,h3{margin:0}.site-shell{width:min(100% - 360px,1200px);transition:filter var(--resume-backdrop-duration) ease-out;margin:0 auto;padding:64px 0 96px}.site-shell.is-resume-open{filter:blur(var(--resume-backdrop-blur)) saturate(var(--resume-backdrop-saturation))}.site-nav{isolation:isolate;background:var(--nav-background);color:#777;--site-nav-indicator-duration:.35s;--site-nav-text-color-duration:.2s;--site-nav-easing:cubic-bezier(.22, 1, .36, 1);border-radius:999px;gap:2px;width:fit-content;margin:0 auto;padding:5px;font-weight:400;display:flex;position:relative}.site-nav__indicator{z-index:0;width:var(--site-nav-indicator-width,0px);pointer-events:none;visibility:hidden;transform:translateX(var(--site-nav-indicator-x,0px));background:#fff;border-radius:999px;transition:none;position:absolute;top:5px;bottom:5px;left:0}.site-nav[data-indicator-ready=true] .site-nav__indicator{visibility:visible}.site-nav[data-indicator-animate=true] .site-nav__indicator{transition:transform var(--site-nav-indicator-duration) var(--site-nav-easing), width var(--site-nav-indicator-duration) var(--site-nav-easing)}.site-nav[data-indicator-resizing=true] .site-nav__indicator{transition:none}.site-nav__item{z-index:1;min-width:68px;color:inherit;font:inherit;text-align:center;transition:color var(--site-nav-text-color-duration) ease-out;background:0 0;border:0;padding:9px 14px;text-decoration:none;display:block;position:relative}.site-nav__item.is-active{color:var(--blue)}.site-nav__resume{cursor:pointer}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.resume-overlay{--resume-reveal-duration:.5s;--resume-reveal-blur:18px;--resume-reveal-initial-scale:.97;--resume-reveal-offset:12px;--resume-document-max-height:calc(100dvh - 180px);--resume-document-max-width:90vw;--resume-document-radius:6px;--resume-surface-shadow:0 10px 24px #0000000f, 0 2px 8px #0000000a;--resume-control-shadow:0 6px 16px #0000000d, 0 1px 4px #00000008;--resume-document-controls-gap:20px;--resume-controls-gap:14px;--resume-reveal-easing:cubic-bezier(.22, 1, .36, 1);z-index:20;pointer-events:none;visibility:hidden;transition:visibility 0s linear var(--resume-backdrop-duration);position:fixed;inset:0;overflow:visible}.resume-overlay.is-visible{pointer-events:auto;visibility:visible;transition:visibility linear}.resume-overlay__backdrop{inset:calc(var(--resume-backdrop-overscan) * -1);z-index:0;background:rgba(255, 255, 255, var(--resume-backdrop-veil-opacity));-webkit-backdrop-filter:blur(0) saturate(var(--resume-backdrop-saturation));opacity:0;transition:opacity var(--resume-backdrop-duration) ease-out, backdrop-filter var(--resume-backdrop-duration) ease-out, -webkit-backdrop-filter var(--resume-backdrop-duration) ease-out;position:fixed}.resume-overlay.is-visible .resume-overlay__backdrop{-webkit-backdrop-filter:blur(var(--resume-backdrop-blur)) saturate(var(--resume-backdrop-saturation));opacity:1}.resume-overlay__scroll{z-index:1;width:100%;height:100%;min-height:100%;box-shadow:none;overscroll-behavior:contain;background:0 0;border:0;border-radius:0;place-items:center;padding:32px 24px;display:grid;position:relative;overflow-y:auto}.resume-overlay__content{z-index:1;width:fit-content;max-width:100%;height:auto;min-height:0;box-shadow:none;background:0 0;border:0;border-radius:0;flex-direction:column;flex:none;place-self:center;align-items:center;display:flex;position:relative}.resume-overlay__document-reveal{width:fit-content;max-width:100%;filter:blur(var(--resume-reveal-blur));opacity:0;transform:translateY(var(--resume-reveal-offset)) scale(var(--resume-reveal-initial-scale));transition:filter var(--resume-reveal-duration) var(--resume-reveal-easing), opacity var(--resume-reveal-duration) var(--resume-reveal-easing), transform var(--resume-reveal-duration) var(--resume-reveal-easing)}.resume-overlay.is-visible .resume-overlay__document-reveal{filter:blur();opacity:1;transform:translateY(0)scale(1)}.resume-overlay__document{width:auto;height:auto;max-width:min(var(--resume-document-max-width), 100%);max-height:var(--resume-document-max-height);border-radius:var(--resume-document-radius);box-shadow:var(--resume-surface-shadow);display:block}.resume-overlay__controls{--resume-control-magnetic-max-x:3px;--resume-control-magnetic-max-y:2px;--resume-control-icon-magnetic-max-x:1.5px;--resume-control-icon-magnetic-max-y:1px;--resume-control-magnetic-follow-duration:.16s;--resume-control-magnetic-return-duration:.32s;--resume-control-icon-magnetic-follow-duration:.14s;--resume-control-icon-magnetic-return-duration:.26s;--resume-control-magnetic-easing:cubic-bezier(.22, 1, .36, 1);gap:var(--resume-controls-gap);margin-top:var(--resume-document-controls-gap);filter:blur(var(--resume-reveal-blur));opacity:0;transition:filter var(--resume-reveal-duration) var(--resume-reveal-easing), opacity var(--resume-reveal-duration) var(--resume-reveal-easing);display:flex}.resume-overlay.is-visible .resume-overlay__controls{filter:blur();opacity:1}.resume-overlay__control{width:32px;height:32px;box-shadow:var(--resume-control-shadow);color:var(--foreground);cursor:pointer;background:#ffffffc7;border:0;border-radius:50%;place-items:center;padding:0;text-decoration:none;display:grid}.resume-overlay__control svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.25px;width:16px;height:16px}@media (hover:hover) and (pointer:fine){.resume-overlay__control{--resume-control-magnetic-x:0px;--resume-control-magnetic-y:0px;transform:translate3d(var(--resume-control-magnetic-x), var(--resume-control-magnetic-y), 0);transition:transform var(--resume-control-magnetic-return-duration) var(--resume-control-magnetic-easing);will-change:transform}.resume-overlay__control[data-magnetic-active=true]{transition-duration:var(--resume-control-magnetic-follow-duration)}.resume-overlay__control svg{--resume-control-icon-magnetic-x:0px;--resume-control-icon-magnetic-y:0px;transform:translate3d(var(--resume-control-icon-magnetic-x), var(--resume-control-icon-magnetic-y), 0);transition:transform var(--resume-control-icon-magnetic-return-duration) var(--resume-control-magnetic-easing);will-change:transform}.resume-overlay__control[data-magnetic-active=true] svg{transition-duration:var(--resume-control-icon-magnetic-follow-duration)}}.page-reveal--relaxed{--page-reveal-blur:16px;--page-reveal-duration:.7s;--page-reveal-offset:-5px;--page-reveal-stagger:.1s}.page-reveal--fast{--page-reveal-blur:16px;--page-reveal-duration:.48s;--page-reveal-offset:-5px;--page-reveal-stagger:50ms}.page-reveal__item{animation:page-entry-reveal var(--page-reveal-duration) cubic-bezier(.22, 1, .36, 1) calc(var(--page-reveal-index) * var(--page-reveal-stagger)) backwards;will-change:filter, opacity, transform}@keyframes page-entry-reveal{0%{filter:blur(var(--page-reveal-blur));opacity:0;transform:translateY(var(--page-reveal-offset))}to{filter:blur();opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.site-shell,.page-reveal__item{filter:none;opacity:1;animation:none;transform:none}.site-shell,.resume-overlay,.resume-overlay__backdrop,.resume-overlay__document-reveal,.resume-overlay__controls{transition:none}}.intro{margin-top:122px;font-weight:500}.intro h1{font-size:inherit;font-weight:600}.intro__role{margin-top:8px;font-weight:500}.intro__copy{margin-top:58px}.intro__copy p:first-child{max-width:420px}.intro__copy p+p{margin-top:12px}.intro__copy span,.site-footer a{color:var(--blue)}.site-footer__copyright{color:#111;margin-top:24px}.selected-work{margin-top:98px}.section-heading,.project-row{grid-template-columns:48px 390px 135px;column-gap:16px;display:grid}.section-heading{text-transform:uppercase;align-items:center;font-weight:500}.section-heading h2,.section-heading p{font-size:inherit;font-weight:inherit}.section-heading h2{grid-column:1/3}.section-heading p{white-space:nowrap;grid-column:3}.project-list{margin-top:62px}.project-row{align-items:center;min-height:225px}.project-row+.project-row{margin-top:80px}.project-row__info{grid-column:1/3;grid-template-columns:48px minmax(0,1fr);align-items:start;column-gap:16px;display:grid}.project-row__number,.project-row__content{font-weight:500}.project-row__content{grid-column:2}.project-row h3{font-size:inherit;font-weight:500}.project-row__metadata{color:var(--muted)}.project-row__description{max-width:300px;margin-top:16px;font-weight:400}.project-row__thumbnail{aspect-ratio:4/3;opacity:.75;border-radius:12px;grid-column:3;width:135px;position:relative;overflow:visible}.project-row__frame{z-index:1;position:absolute;inset:0;overflow:visible}.project-row__frame-clip{background:#ebebeb;border-radius:12px;position:absolute;inset:0;overflow:hidden}.project-row__image{object-fit:cover}.site-footer{justify-content:space-between;align-items:end;margin-top:136px;font-weight:400;line-height:1.66;display:flex}.site-footer a{text-decoration:none}.site-footer a>span[aria-hidden=true]{color:var(--foreground)}.site-footer__email-text{--site-footer-email-magnetic-max-x:2.5px;--site-footer-email-magnetic-max-y:1.5px;--site-footer-email-magnetic-return-duration:.28s;--site-footer-email-magnetic-easing:cubic-bezier(.22, 1, .36, 1);display:inline-block}@media (hover:hover) and (pointer:fine){.site-footer__email-text{--site-footer-email-magnetic-x:0px;--site-footer-email-magnetic-y:0px;transform:translate3d(var(--site-footer-email-magnetic-x), var(--site-footer-email-magnetic-y), 0);transition:transform var(--site-footer-email-magnetic-return-duration) var(--site-footer-email-magnetic-easing);will-change:transform}}.lab-page{flex-direction:column;min-height:calc(100dvh - 120px);display:flex}.lab-intro{margin-top:122px;font-weight:500}.lab-placeholder-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:56px 28px;margin-top:58px;display:grid}.lab-placeholder__surface{--lab-placeholder-base:#f7f7f7;--lab-placeholder-middle:#eee;--lab-placeholder-wave:#e7e7e7;--lab-placeholder-wave-duration:3.6s;--lab-placeholder-wave-size:240%;background:var(--lab-placeholder-base);display:block;position:relative;overflow:hidden}.lab-placeholder__surface:after{width:var(--lab-placeholder-wave-size);content:"";background:linear-gradient(100deg, var(--lab-placeholder-base) 0%, var(--lab-placeholder-middle) 42%, var(--lab-placeholder-wave) 50%, var(--lab-placeholder-middle) 58%, var(--lab-placeholder-base) 100%);animation:lab-placeholder-wave var(--lab-placeholder-wave-duration) cubic-bezier(.45, 0, .55, 1) infinite;will-change:transform;background-size:100% 100%;position:absolute;top:0;bottom:0;left:0}.lab-placeholder__thumbnail{aspect-ratio:4/3;border-radius:12px;width:100%}.lab-placeholder__title{border-radius:999px;width:64%;height:10px;margin-top:14px}.lab-placeholder__year{border-radius:999px;width:22%;height:8px;margin-top:8px}@keyframes lab-placeholder-wave{0%{transform:translate(-100%)}96%,to{transform:translate(42%)}}.about-page{margin-top:122px}.about-page__label{font-size:inherit;text-transform:uppercase;font-weight:500}.about-intro__copy{max-width:600px;margin-top:32px}.about-intro__copy p+p{margin-top:20px}.about-info{margin-top:112px}.about-info+.about-info,.about-connect{margin-top:72px}.about-connect__link{color:var(--foreground);margin-top:32px;text-decoration:none;transition:color .28s cubic-bezier(.22,1,.36,1);display:inline-block}.about-connect__link-text{--about-connect-magnetic-max-x:2.5px;--about-connect-magnetic-max-y:1.5px;--about-connect-magnetic-return-duration:.28s;--about-connect-magnetic-easing:cubic-bezier(.22, 1, .36, 1);display:inline-block}.about-connect__arrow{color:var(--foreground)}@media (hover:hover) and (pointer:fine){.about-connect__link:hover{color:var(--blue)}.about-connect__link-text{--about-connect-magnetic-x:0px;--about-connect-magnetic-y:0px;transform:translate3d(var(--about-connect-magnetic-x), var(--about-connect-magnetic-y), 0);transition:transform var(--about-connect-magnetic-return-duration) var(--about-connect-magnetic-easing);will-change:transform}}.about-info__rows{gap:20px;margin:32px 0 0;display:grid}.about-info__row{grid-template-columns:48px minmax(0,1fr);column-gap:16px;display:grid}.about-info__row dt{color:var(--muted);font-weight:400}.about-info__row dd{margin:0}.about-info__organization{font-weight:500}.about-info__role{color:var(--muted);margin-top:2px;font-weight:400}.about-ultimately{max-width:760px;margin-top:156px}.about-ultimately>p{max-width:760px;margin-top:32px;font-size:clamp(28px,3vw,36px);font-weight:600;line-height:1.25}.about-page__footer{margin-top:200px}@media (min-width:801px){.site-shell{width:min(100% - 80px,800px)}.landing-content{position:relative;left:20px}}@media (min-width:801px) and (hover:hover) and (pointer:fine){.project-list{--thumbnail-sibling-shift:96px;--thumbnail-motion-duration:.42s;--thumbnail-fade-duration:.18s;--thumbnail-easing:cubic-bezier(.4, 0, .2, 1);--thumbnail-frame-active-width:405px;--thumbnail-preview-blur:24px;--thumbnail-preview-duration:.52s;--thumbnail-preview-opacity:.15;--thumbnail-preview-exit-collapse-duration:.5s;--thumbnail-active-frame-opacity-return-delay:.17s;--thumbnail-active-frame-opacity-return-duration:.33s;--thumbnail-preview-easing:cubic-bezier(.22, 1, .36, 1);--project-surface-background:#ffffff8c;--project-surface-backdrop-blur:10px;--project-surface-radius:14px;--project-surface-shadow:0 12px 24px #25252514;--project-surface-inner-shadow:inset 0 1px 2px #0000000d;--project-surface-duration:.2s;--project-surface-enter-duration:.2s;--project-surface-exit-opacity-duration:.5s;--project-surface-exit-opacity-delay:50ms;--project-surface-text-scale:1.03;--project-surface-magnetic-max-x:5px;--project-surface-magnetic-max-y:5px;--project-surface-magnetic-follow-duration:1s;--project-surface-magnetic-return-duration:.8s;--project-surface-text-magnetic-max-x:1.5px;--project-surface-text-magnetic-max-y:1px;--project-surface-text-magnetic-follow-duration:.14s;--project-surface-text-magnetic-return-duration:.26s;--project-surface-magnetic-easing:cubic-bezier(.22, 1, .36, 1);--project-surface-inline-padding:15px;--project-surface-block-padding:13px;--project-surface-width:328px}.project-row__thumbnail{z-index:0;opacity:1;transform-origin:0;transition:transform var(--thumbnail-motion-duration) var(--thumbnail-easing), opacity var(--thumbnail-fade-duration) ease-out;will-change:transform, opacity}.project-row__frame{aspect-ratio:4/3;opacity:.75;width:135px;transition:width var(--thumbnail-preview-exit-collapse-duration) var(--thumbnail-preview-easing), opacity var(--thumbnail-active-frame-opacity-return-duration) ease-out var(--thumbnail-active-frame-opacity-return-delay);will-change:opacity;backface-visibility:hidden;inset:50% auto auto 0;transform:translateY(-50%)}.project-row__frame-clip{border-radius:12px}.project-row__image{will-change:filter, opacity;backface-visibility:hidden}.project-row__content{--project-surface-magnetic-x:0px;--project-surface-magnetic-y:0px;--project-surface-text-magnetic-x:0px;--project-surface-text-magnetic-y:0px;isolation:isolate;transform:translate3d(var(--project-surface-magnetic-x), var(--project-surface-magnetic-y), 0);transition:transform var(--project-surface-magnetic-return-duration) var(--project-surface-magnetic-easing);will-change:transform;position:relative}.project-row__content[data-magnetic-active=true]{transition-duration:var(--project-surface-magnetic-follow-duration)}.project-row__content:before{top:calc(var(--project-surface-block-padding) * -1);left:calc(var(--project-surface-inline-padding) * -1);z-index:-1;width:var(--project-surface-width);height:calc(100% + (var(--project-surface-block-padding) * 2));content:"";background:var(--project-surface-background);border-radius:var(--project-surface-radius);box-shadow:var(--project-surface-shadow), var(--project-surface-inner-shadow);-webkit-backdrop-filter:blur(var(--project-surface-backdrop-blur));backdrop-filter:blur(var(--project-surface-backdrop-blur));opacity:0;pointer-events:none;transform-origin:0;transition:opacity var(--project-surface-exit-opacity-duration) ease-out var(--project-surface-exit-opacity-delay), transform var(--project-surface-enter-duration) ease-out;border:1px solid #ffffffa6;position:absolute;transform:scale(.98)}.project-row__content-text{transform-origin:0;transition:transform var(--project-surface-duration) ease-out;will-change:transform;transform:scale(1)}.project-row__content-text-motion{transform:translate3d(var(--project-surface-text-magnetic-x), var(--project-surface-text-magnetic-y), 0);transform-origin:0;transition:transform var(--project-surface-text-magnetic-return-duration) var(--project-surface-magnetic-easing);will-change:transform}.project-row__content[data-magnetic-active=true] .project-row__content-text-motion{transition-duration:var(--project-surface-text-magnetic-follow-duration)}.project-list:has(.project-row__info:hover) .project-row__thumbnail{opacity:0;transform:translateX(calc(var(--thumbnail-sibling-shift) * -1))}.project-row:has(.project-row__info:hover) .project-row__thumbnail{z-index:2;opacity:1;transform:none}.project-row__info:hover .project-row__content:before{opacity:1;transition:opacity var(--project-surface-enter-duration) ease-out, transform var(--project-surface-enter-duration) ease-out;transform:scale(1)}.project-row__info:hover .project-row__content-text{transform:scale(var(--project-surface-text-scale))}.project-row:has(.project-row__info:hover) .project-row__frame{opacity:1;width:var(--thumbnail-frame-active-width);transition:none}.project-row:has(.project-row__info:hover) .project-row__image{animation:thumbnail-preview-reveal var(--thumbnail-preview-duration) var(--thumbnail-preview-easing) both}@keyframes thumbnail-preview-reveal{0%{filter:blur(var(--thumbnail-preview-blur));opacity:var(--thumbnail-preview-opacity)}to{filter:blur();opacity:1}}}@media (min-width:801px) and (max-width:1099px) and (hover:hover) and (pointer:fine){.project-list{--thumbnail-frame-active-width:270px}}@media (max-width:800px){.site-shell{width:min(100% - 40px,1200px)}.section-heading,.project-row{grid-template-columns:40px minmax(0,1fr)}.project-row{row-gap:24px}.section-heading p{display:none}.project-row__info{grid-template-columns:40px minmax(0,1fr)}.project-row__thumbnail{opacity:1;grid-column:2;width:clamp(200px,45vw,220px)}.about-info__row{grid-template-columns:40px minmax(0,1fr)}}@media (max-width:640px){.lab-placeholder-grid{grid-template-columns:minmax(0,1fr);gap:44px}}@media (prefers-reduced-motion:reduce){.lab-placeholder__surface:after{animation:none}}@media (max-width:760px){.site-shell{padding-top:32px}}
