: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}: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-bg: rgba(255, 255, 255, .12);--glass-border: rgba(255, 255, 255, .18);--footer-gradient: linear-gradient( to top, rgba(0, 0, 0, .92) 0%, rgba(0, 0, 0, 0) 100% )}[data-theme=light]{--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-bg: rgba(0, 0, 0, .12);--glass-border: rgba(0, 0, 0, .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;--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}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}.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;margin-bottom:var(--thumb-gutter);cursor:pointer}.thumbnail a{display:block}.thumbnail-img{overflow:hidden;background-color:var(--color-placeholder);border-radius:var(--radius);transition:background-color .25s ease;transform:translateZ(0)}.thumbnail-img img,.thumbnail-img video{width:100%;height:auto;display:block;transition:transform .55s cubic-bezier(.25,.46,.45,.94),opacity .35s ease}.thumbnail:hover .thumbnail-img img,.thumbnail:hover .thumbnail-img video{transform:scale(1.02);opacity:.92}.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: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:#fff;cursor:pointer;--ring-top: rgba(255, 255, 255, .8);--ring-bottom: rgba(255, 255, 255, .22)}.pill--nav:hover,.pill--nav.active{background-color:#ffffff4d;color:#fff;opacity:1;--ring-top: rgba(255, 255, 255, .95)}[data-theme=light] .pill--nav{--ring-top: rgba(255, 255, 255, .22);--ring-bottom: rgba(255, 255, 255, .8)}[data-theme=light] .pill--nav:hover,[data-theme=light] .pill--nav.active{--ring-bottom: rgba(255, 255, 255, .95)}.pill--glass{color:transparent;-webkit-backdrop-filter:blur(0) saturate(1);backdrop-filter:blur(0) saturate(1);transition:background-color .3s ease,border-color .3s ease,backdrop-filter .3s ease,-webkit-backdrop-filter .3s ease}.pill--glass:before{display:none}.is-scrolled .pill--glass{background-color:var(--glass-bg);border-color:var(--glass-border);-webkit-backdrop-filter:blur(8px) saturate(1.4);backdrop-filter:blur(8px) saturate(1.4)}.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;transition:color .2s ease}.nav-copy:hover{color:#fff}.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;transition:background-color .25s ease;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),background-color .25s ease}[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}.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}::view-transition-group(nav),::view-transition-group(nav-actions),::view-transition-group(footer){mix-blend-mode:difference}:active-view-transition-type(forward,back)::view-transition{background:var(--color-text)}: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);animation-timing-function:var(--pt-ease),linear;animation-fill-mode:both;mix-blend-mode:normal}:active-view-transition-type(forward)::view-transition-old(root){animation-name:pt-exit-left,pt-card}:active-view-transition-type(forward)::view-transition-new(root){animation-name:pt-enter-right,pt-card}:active-view-transition-type(back)::view-transition-old(root){animation-name:pt-exit-right,pt-card}:active-view-transition-type(back)::view-transition-new(root){animation-name:pt-enter-left,pt-card}html:not(:active-view-transition-type(forward,back))::view-transition-old(root),html:not(:active-view-transition-type(forward,back))::view-transition-new(root){animation:none}@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}}@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-text{padding:var(--space-xl) var(--content-padding);max-width:75%}.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);margin-bottom:var(--space-md);max-width:58ch}.project-description:last-of-type{margin-bottom:var(--space-lg)}.project-colophon{font-size:.8rem;line-height:1.3;letter-spacing:.01em;color:var(--color-text-dim);margin-top:var(--space-lg)}.project-credits{font-size:.8rem;line-height:1.35;letter-spacing:.01em;color:var(--color-text-dim)}.project-credits dt{font-size:.68rem;font-weight:var(--font-weight);text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-dim);margin-top:var(--space-sm)}.project-credits dd{color:var(--color-text)}.project-credits .pills{margin:var(--space-xs) 0 var(--space-sm)}.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}@media (hover: none){.about-bio{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}.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}.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}}
