:root{--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", system-ui, sans-serif;--font-weight: 500;--font-mono: "B612 Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--pt-duration: 1s;--pt-ease: cubic-bezier(.76, 0, .24, 1);--pt-gap: 8px;--pt-radius: 10px;--pt-pan-fade: .85;--pt-gap-color: color-mix(in srgb, var(--color-text) 10%, var(--color-bg));--pt-fade-out: .18s;--pt-fade-in: .42s;--pt-fade-delay: 80ms;--pt-rise: 20px;--pt-fade-ease: cubic-bezier(.16, 1, .3, 1);--theme-fade: .4s}:root,[data-theme=dark]{--color-bg: #000000;--color-text: #ffffff;--color-text-dim: rgba(255, 255, 255, .45);--color-border: rgba(255, 255, 255, .1);--color-placeholder: rgba(255, 255, 255, .04);--nav-link-hover-bg: rgba(255, 255, 255, .1);--glass-fill: rgba(106, 106, 106, .12);--glass-fill-hover: rgba(106, 106, 106, .24);--glass-fill-active: rgba(106, 106, 106, .36);--glass-ink: #ffffff;--glass-rim-hi: rgba(255, 255, 255, .8);--glass-rim-mid: rgba(255, 255, 255, .45);--glass-rim-lo: rgba(255, 255, 255, .08);--glass-glow: rgba(255, 255, 255, .06);--footer-gradient: linear-gradient( to top, rgba(0, 0, 0, .92) 0%, rgba(0, 0, 0, 0) 100% )}[data-theme=light]{--pt-pan-fade: 1;--color-bg: #ffffff;--color-text: #000000;--color-text-dim: rgba(0, 0, 0, .4);--color-border: rgba(0, 0, 0, .1);--color-placeholder: rgba(0, 0, 0, .04);--nav-link-hover-bg: rgba(0, 0, 0, .07);--glass-fill: rgba(255, 255, 255, .22);--glass-fill-hover: rgba(255, 255, 255, .36);--glass-fill-active: rgba(255, 255, 255, .5);--glass-ink: #000000;--glass-rim-hi: rgba(255, 255, 255, .95);--glass-rim-mid: rgba(0, 0, 0, .14);--glass-rim-lo: rgba(0, 0, 0, .06);--glass-glow: rgba(255, 255, 255, .18);--footer-gradient: linear-gradient( to top, rgba(255, 255, 255, .92) 0%, rgba(255, 255, 255, 0) 100% )}:root{--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 2rem;--space-xl: 4rem;--grid-gutter: 1rem;--media-gap: 2rem;--thumb-gutter: 8px;--content-padding: 1.25rem;--gap-images: 20px;--blocks-margin: max(var(--content-padding), 8.33vw);--block-full: 100%;--block-large: 80%;--block-medium: 58%;--space-normal: clamp(3rem, 14vw, 17rem);--space-wide: clamp(4rem, 18.75vw, 22.5rem);--space-loose: clamp(5rem, 26vw, 31rem);--strip-tile: clamp(240px, 43.3vw, 832px);--strip-dim: .55;--nav-height: 6.5rem;--nav-top: 1.4rem;--footer-height: 3rem;--radius: 6px;--radius-sm: 2px;--radius-pill: 100px;--pill-font: .8rem;--pill-leading: 1.4;--pill-pad-y: .5rem;--pill-pad-x: 1rem;--pill-border: 1px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:smooth}html.lenis,html.lenis body{height:auto}html.lenis{scroll-behavior:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.split-line-mask{padding-block:.15em .25em;margin-block:-.15em -.25em}.split-line-mask+.split-line-mask{margin-top:-.4em}html.motion-pending [data-reveal]{opacity:0}html.theme-fading,html.theme-fading *{transition:background-color var(--theme-fade) ease,color var(--theme-fade) ease,border-color var(--theme-fade) ease!important}body{background-color:var(--color-bg);color:var(--color-text);font-family:var(--font);font-weight:var(--font-weight);font-size:.9375rem;line-height:1.3;letter-spacing:.01em;min-height:100vh;overflow-x:hidden;transition:background-color .25s ease,color .25s ease}a{color:inherit;text-decoration:none}a:hover{opacity:.55}img,video,picture{display:block;max-width:100%;height:auto}.media-video{position:relative;display:block}.media-video .media-video__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}html.is-swapping .media-video__video{visibility:hidden}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--grid-gutter);padding:0 var(--content-padding);width:100%}.x1{grid-column:span 1}.x2{grid-column:span 2}.x3{grid-column:span 3}.x4{grid-column:span 4}.x5{grid-column:span 5}.x6{grid-column:span 6}.x7{grid-column:span 7}.x8{grid-column:span 8}.x9{grid-column:span 9}.x10{grid-column:span 10}.x11{grid-column:span 11}.x12{grid-column:span 12}.thumbnails{column-count:4;column-gap:var(--thumb-gutter);padding:var(--content-padding);padding-top:calc(var(--nav-height) + var(--content-padding));padding-bottom:calc(var(--footer-height) + var(--content-padding));width:100%}.thumbnail{position:relative;break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid;padding-bottom:var(--thumb-gutter);cursor:pointer}.thumbnail-link{display:block}.thumbnail--soon{cursor:default}.thumbnail-img{overflow:hidden;background-color:var(--color-placeholder);border-radius:var(--radius);transition:background-color .25s ease;clip-path:inset(0 round var(--radius))}.thumbnail-img img,.thumbnail-img video{width:100%;height:auto;display:block;transition:transform 1.2s cubic-bezier(.22,1,.36,1),opacity .6s ease}.thumbnail:not(.thumbnail--soon):hover .thumbnail-img img,.thumbnail:not(.thumbnail--soon):hover .thumbnail-img video{transform:scale(1.015);opacity:.85}.thumbnail-img img.is-loading{opacity:0}html[data-motion] .thumbnail{overflow:clip}.thumbnail-title{font-size:.8rem;font-weight:var(--font-weight);letter-spacing:.01em;color:var(--color-text-dim);margin-top:.35rem;padding:0 2px;transition:color .2s ease}.thumbnail:not(.thumbnail--soon):hover .thumbnail-title{color:var(--color-text)}.pill{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:var(--pill-pad-y) var(--pill-pad-x);border:var(--pill-border) solid transparent;border-radius:var(--radius-pill);background-color:transparent;font-family:inherit;font-size:var(--pill-font);font-weight:var(--font-weight);letter-spacing:.01em;line-height:var(--pill-leading);white-space:nowrap;color:var(--color-text-dim);transition:background-color .25s ease,color .2s ease;cursor:default;--ring-top: color-mix(in srgb, var(--color-text) 38%, transparent);--ring-bottom: color-mix(in srgb, var(--color-text) 10%, transparent)}.pill:before{content:"";position:absolute;inset:calc(-1 * var(--pill-border));padding:var(--pill-border);border-radius:inherit;background:linear-gradient(to bottom,var(--ring-top),var(--ring-bottom));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);pointer-events:none}.pill:hover{background-color:var(--color-placeholder);color:var(--color-text);--ring-top: color-mix(in srgb, var(--color-text) 70%, transparent)}.pill--link{cursor:pointer}.pill--nav{color:transparent;cursor:pointer}.pill--nav:before{display:none}.pill--nav:hover,.pill--nav.active{background-color:transparent;color:transparent}.pill--glass{color:var(--glass-ink);background-color:var(--glass-fill);box-shadow:inset 0 1px 0 var(--glass-rim-hi),inset 0 -1px 0 var(--glass-rim-lo),inset 0 0 14px var(--glass-glow),inset 1.5px 0 1px #ff78aa38,inset -1.5px 0 1px #6ebeff38;transition:background-color .3s ease,color .2s ease}.pill--glass:before{background:linear-gradient(135deg,var(--glass-rim-hi) 0%,var(--glass-rim-lo) 38%,var(--glass-rim-lo) 62%,var(--glass-rim-mid) 100%)}.pill--glass:after{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;-webkit-backdrop-filter:var(--glass-backdrop, blur(8px) saturate(1.5));backdrop-filter:var(--glass-backdrop, blur(8px) saturate(1.5));transition:opacity .35s ease}html.vt-active .pill--glass:after{opacity:0;transition:none}@media (prefers-reduced-motion: reduce){.pill--glass:after{transition:none}}.pill--glass.active{background-color:var(--glass-fill-active)}.nav-actions:has(li:nth-child(1) a:hover)~.nav-glass li:nth-child(1) .pill--glass,.nav-actions:has(li:nth-child(2) a:hover)~.nav-glass li:nth-child(2) .pill--glass,.nav-actions:has(li:nth-child(3) a:hover)~.nav-glass li:nth-child(3) .pill--glass{background-color:var(--glass-fill-hover)}.nav{position:fixed;top:0;left:0;right:0;z-index:100;min-height:var(--nav-height);display:grid;grid-template-columns:1fr;align-items:start;padding:var(--nav-top) calc(var(--content-padding) + var(--nav-actions-w, 320px) + var(--space-lg)) 0 var(--content-padding);pointer-events:none;mix-blend-mode:difference}.nav>*{pointer-events:all}.nav-identity{max-width:72ch}.nav-bio{font-size:clamp(.9rem,.55vw + .68rem,1.2rem);font-weight:var(--font-weight);letter-spacing:-.01em;line-height:1.02;color:#fff;margin:0}.nav-folder{margin-right:.15em}.nav-folder-hover,.nav-folder:hover .nav-folder-idle{display:none}.nav-folder:hover .nav-folder-hover{display:inline}.nav-home{color:inherit;transition:opacity .2s ease}.nav-home:hover{opacity:.65}.nav-contact{color:#ffffff73}.nav-copy{padding:0;border:none;background:none;font:inherit;letter-spacing:inherit;color:#ffffff73;cursor:pointer}.nav-copy:hover{color:#fff;transition:color .2s ease}.nav-glass,.nav-actions{position:fixed;top:var(--nav-top);right:var(--content-padding)}.nav-glass{z-index:100}.nav-actions{z-index:101;mix-blend-mode:difference}.nav-glass{pointer-events:none}.nav-links{display:flex;align-items:center;gap:12px;justify-content:flex-end;list-style:none}.nav-links>li{display:flex}.theme-switch-spacer{display:block;width:76px;height:36px}.theme-switch{position:relative;width:76px;height:36px;padding:0;border:none;border-radius:var(--radius-pill);background-color:#fff;cursor:pointer;flex-shrink:0}.theme-switch-knob{position:absolute;top:4px;left:4px;width:28px;height:28px;border-radius:50%;background-color:#000;transform:translate(40px);transition:transform .28s cubic-bezier(.4,0,.2,1)}[data-theme=light] .theme-switch-knob{transform:translate(0)}.footer{position:fixed;bottom:0;left:0;right:0;z-index:100;height:var(--footer-height);display:flex;align-items:flex-end;justify-content:space-between;padding:0 var(--content-padding) .65rem;pointer-events:none;mix-blend-mode:difference}.footer small{font-size:.54rem;font-weight:var(--font-weight);letter-spacing:.04em;color:#ffffff73}@view-transition{navigation: auto;}.nav{view-transition-name:nav}html.vt-active .nav-glass{view-transition-name:nav-glass}.nav-actions{view-transition-name:nav-actions}.footer{view-transition-name:footer}.c-bar{view-transition-name:c-bar}html.vt-active .nav,html.vt-active .nav-actions,html.vt-active .footer{mix-blend-mode:normal}html.vt-active .nav-bio,html.vt-active .nav-copy:hover{color:var(--color-text)}html.vt-active .nav-contact,html.vt-active .nav-copy,html.vt-active .footer small{color:color-mix(in srgb,var(--color-text) 45%,transparent)}html.vt-active[data-theme=light] .nav-folder{filter:invert(1)}html.vt-active .theme-switch{background-color:var(--color-text)}html.vt-active .theme-switch-knob{background-color:var(--color-bg)}:active-view-transition-type(forward,back)::view-transition{background:var(--pt-gap-color)}:active-view-transition-type(forward,back)::view-transition-old(root),:active-view-transition-type(forward,back)::view-transition-new(root){animation-duration:var(--pt-duration),var(--pt-duration),var(--pt-duration);animation-timing-function:var(--pt-ease),linear,var(--pt-ease);animation-fill-mode:both;mix-blend-mode:normal}:active-view-transition-type(forward)::view-transition-old(root){animation-name:pt-exit-left,pt-card,pt-dim-out}:active-view-transition-type(forward)::view-transition-new(root){animation-name:pt-enter-right,pt-card,pt-dim-in}:active-view-transition-type(back)::view-transition-old(root){animation-name:pt-exit-right,pt-card,pt-dim-out}:active-view-transition-type(back)::view-transition-new(root){animation-name:pt-enter-left,pt-card,pt-dim-in}html:not(:active-view-transition-type(forward,back,theme))::view-transition-old(root),html:not(:active-view-transition-type(forward,back,theme))::view-transition-new(root){mix-blend-mode:normal}html:not(:active-view-transition-type(forward,back,theme))::view-transition-old(root){animation:pt-fade-out var(--pt-fade-out) ease-out both}html:not(:active-view-transition-type(forward,back,theme))::view-transition-new(root){animation:pt-rise-in var(--pt-fade-in) var(--pt-fade-ease) var(--pt-fade-delay) both}:active-view-transition-type(theme)::view-transition-old(root),:active-view-transition-type(theme)::view-transition-new(root){animation-duration:var(--theme-fade);animation-timing-function:ease}@keyframes pt-rise-in{0%{opacity:0;transform:translateY(var(--pt-rise))}}@keyframes pt-dim-out{to{opacity:var(--pt-pan-fade)}}@keyframes pt-dim-in{0%{opacity:var(--pt-pan-fade)}}@keyframes pt-exit-left{to{transform:translate(calc(-100% - var(--pt-gap)))}}@keyframes pt-enter-right{0%{transform:translate(calc(100% + var(--pt-gap)))}}@keyframes pt-exit-right{to{transform:translate(calc(100% + var(--pt-gap)))}}@keyframes pt-enter-left{0%{transform:translate(calc(-100% - var(--pt-gap)))}}@keyframes pt-card{0%,to{clip-path:inset(0 round 0)}12%,88%{clip-path:inset(0 round var(--pt-radius))}}@media (prefers-reduced-motion: reduce){:active-view-transition-type(forward,back)::view-transition{background:none}:active-view-transition-type(forward,back)::view-transition-old(root),:active-view-transition-type(forward,back)::view-transition-new(root){animation-duration:.2s;animation-timing-function:ease}:active-view-transition-type(forward,back)::view-transition-old(root){animation-name:pt-fade-out}:active-view-transition-type(forward,back)::view-transition-new(root){animation-name:pt-fade-in}html:not(:active-view-transition-type(forward,back,theme))::view-transition-new(root){animation-name:pt-fade-in}}@keyframes pt-fade-out{to{opacity:0}}@keyframes pt-fade-in{0%{opacity:0}}.project-page{padding-top:calc(var(--nav-height) + var(--space-lg));padding-bottom:calc(var(--footer-height) + var(--space-xl))}.project-media-full{width:100%;margin-bottom:var(--media-gap);padding:0 var(--content-padding)}.project-media-full img,.project-media-full video,.project-media-full iframe{width:100%;display:block;border-radius:var(--radius)}.embed-wrapper{position:relative;width:100%;padding-bottom:56.25%;height:0;overflow:hidden}.embed-wrapper--4x3{padding-bottom:58.06%}.embed-wrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}.project-media-half{display:grid;grid-template-columns:1fr 1fr;gap:var(--media-gap);margin-bottom:var(--media-gap);padding:0 var(--content-padding)}.project-media-full--natural img{max-width:var(--natural-w);margin-inline:auto}.project-media-half img,.project-media-half video{width:100%;height:auto;object-fit:cover;border-radius:var(--radius)}.project-blocks:has(.block){padding-inline:var(--blocks-margin)}.block[data-size=full]{width:var(--block-full)}.block[data-size=large]{width:var(--block-large)}.block[data-size=medium]{width:var(--block-medium)}.block[data-align=left]{margin-inline:0 auto}.block[data-align=center]{margin-inline:auto}.block[data-align=right]{margin-inline:auto 0}.block[data-space=tight]{margin-top:var(--gap-images)}.block[data-space=normal]{margin-top:var(--space-normal)}.block[data-space=wide]{margin-top:var(--space-wide)}.block[data-space=loose]{margin-top:var(--space-loose)}.block img,.block video{display:block;width:100%;height:auto;border-radius:var(--radius)}.block--pair{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-images);align-items:start}.block--strip{margin-inline:calc(-1 * var(--blocks-margin));overflow:hidden}.block-strip-row{display:flex;justify-content:center;gap:var(--gap-images)}.block-strip-tile{flex:0 0 var(--strip-tile)}.block-strip-tile img,.block-strip-tile video{aspect-ratio:16 / 9;object-fit:cover}@media (hover: hover){.block-strip-tile img,.block-strip-tile video{opacity:var(--strip-dim);transition:opacity .4s ease}.block-strip-tile:hover img,.block-strip-tile:hover video{opacity:1}}@media (hover: none){.block--strip{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.block--strip::-webkit-scrollbar{display:none}.block-strip-row{justify-content:flex-start;width:max-content;padding-inline:var(--blocks-margin)}.block-strip-tile{scroll-snap-align:center}.block-strip-tile--copy{display:none}}@media (prefers-reduced-motion: reduce){.block-strip-tile img,.block-strip-tile video{transition:none}}.project-text{--text-gap: var(--space-xl);--text-measure: min(56rem, calc((100vw - 2 * var(--content-padding)) * 7 / 12));padding:var(--text-gap) var(--content-padding)}.project-title{font-size:.9375rem;font-weight:var(--font-weight);letter-spacing:.01em;margin-bottom:var(--space-sm)}.project-year{font-size:.75rem;font-weight:var(--font-weight);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-dim);margin-bottom:var(--space-lg)}.project-description{font-size:.9375rem;font-weight:var(--font-weight);line-height:1.35;letter-spacing:.01em;color:var(--color-text-dim);max-width:var(--text-measure)}.project-description+.project-description{margin-top:var(--space-md)}.project-colophon{font-size:.8rem;line-height:1.3;letter-spacing:.01em;color:var(--color-text-dim);margin-top:var(--text-gap);max-width:var(--text-measure)}.project-credits{display:flex;flex-direction:column;gap:var(--text-gap);margin-top:var(--text-gap);font-size:.8rem;line-height:1.35;letter-spacing:.01em;color:var(--color-text-dim);max-width:var(--text-measure)}.project-credits dt{font-size:.68rem;font-weight:var(--font-weight);text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-dim);margin-bottom:var(--space-xs)}.project-credits dd{color:var(--color-text)}.about-page{padding-top:calc(var(--nav-height) + var(--space-xl));padding-bottom:calc(var(--footer-height) + var(--space-xl));padding-left:var(--content-padding);padding-right:var(--content-padding)}.about-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--grid-gutter)}@property --spot-r{syntax: "<length>"; inherits: false; initial-value: 0px;}.about-bio{grid-column:span 10;font-size:clamp(2rem,5.2vw,4.25rem);font-weight:var(--font-weight);line-height:1.05;letter-spacing:-.02em;text-wrap:pretty;margin-bottom:var(--space-xl);--mx: 50%;--my: 50%;color:transparent;background:radial-gradient(circle var(--spot-r) at var(--mx) var(--my),var(--color-text),transparent),color-mix(in srgb,var(--color-text) 55%,transparent);-webkit-background-clip:text;background-clip:text;transition:--spot-r .35s ease}.about-bio.is-lit{--spot-r: 220px}.about-bio.is-revealing{color:color-mix(in srgb,var(--color-text) 55%,transparent);background:none}@media (hover: none){.about-bio,.about-bio.is-revealing{color:var(--color-text);background:none}}.about-section-title{font-size:.68rem;font-weight:var(--font-weight);text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-dim);margin-bottom:var(--space-md)}.about-experience{grid-column:span 12;display:grid;grid-template-columns:1fr 1fr;gap:var(--grid-gutter);margin-bottom:var(--space-xl)}.experience-entry{display:grid;grid-template-columns:1fr auto;gap:var(--space-sm);padding:var(--space-sm) .5rem;border-top:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.85rem;letter-spacing:.01em;transition:background-color .2s ease,border-color .25s ease;cursor:default}.experience-entry:hover{background-color:var(--color-placeholder)}.experience-entry .role{color:var(--color-text);font-weight:var(--font-weight)}.experience-entry .company{color:var(--color-text-dim);font-weight:var(--font-weight)}.experience-entry .dates{font-size:.68rem;font-weight:var(--font-weight);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-dim);white-space:nowrap;align-self:start;padding-top:2px}.about-section{margin-bottom:30px}.pills{display:flex;flex-wrap:wrap;gap:.625rem}.pills--narrow{max-width:46rem}.about-awards{grid-column:span 8}.award-entry{display:flex;justify-content:space-between;align-items:baseline;padding:var(--space-xs) .5rem;border-top:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.85rem;letter-spacing:.01em;transition:background-color .2s ease,border-color .25s ease;cursor:default}.award-entry:hover{background-color:var(--color-placeholder)}.award-entry .award-name{color:var(--color-text);font-weight:var(--font-weight)}.award-entry .award-detail{font-size:.7rem;font-weight:var(--font-weight);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-dim)}@media (max-width: 1200px){.thumbnails{column-count:3}}@media (max-width: 900px){.thumbnails{column-count:2}.nav-bio,.nav-contact{font-size:.95rem}.about-bio{grid-column:span 12}.about-experience{grid-template-columns:1fr}.about-awards{grid-column:span 12}.project-text{max-width:100%}}@media (max-width: 600px){:root{--content-padding: .875rem;--grid-gutter: .625rem;--media-gap: 1rem;--nav-height: 11rem;--gap-images: 14px;--blocks-margin: var(--content-padding);--strip-tile: 85vw}.project-text{--text-gap: 3rem;--text-measure: 100%}.block[data-size]{width:100%;margin-inline:0}.block--pair{grid-template-columns:1fr}.thumbnails{column-count:1}.nav{padding-right:var(--content-padding)}.nav-glass,.nav-actions{top:calc(var(--nav-top) + var(--nav-copy-h, 6rem) + .5rem);left:var(--content-padding);right:auto}.nav-bio,.nav-contact{font-size:1.235rem;line-height:1.3}.nav-links{justify-content:flex-start;gap:6px}.pill--nav,.pill--glass{padding-inline:.75rem}.experience-entry,.award-entry{display:block}.experience-entry .dates,.award-entry .award-detail{display:block;margin-top:.2rem;white-space:normal;padding-top:0}.project-media-half{grid-template-columns:1fr}}
