*{box-sizing:border-box}html{scrollbar-width:none}html::-webkit-scrollbar{display:none}body{margin:0;background:#f8f8f6;color:#111;font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button{border:0;background:none;padding:0}header{position:fixed;inset:0 0 auto;z-index:40;display:grid;grid-template-columns:20% 30% 40% 10%;padding:20px;font-size:12px;pointer-events:none}header>*{pointer-events:auto;width:max-content}.work-nav{max-width:100%;font-size:clamp(23px,3vw,43px);letter-spacing:-.04em;line-height:1.02}.work-nav button{text-align:left}.work-nav span{display:block;max-width:100%;overflow-wrap:anywhere}.instagram{justify-self:end}header a:hover,header button:hover{text-decoration:underline;text-underline-offset:4px}.cover{position:fixed;left:0;top:0;width:60%;height:73svh;overflow:hidden;background:#dfdcd7}.cover img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:50% 35%}#cover-incoming{opacity:0;transition:opacity .65s cubic-bezier(.22,1,.36,1)}.statement{position:fixed;z-index:5;left:20px;bottom:19px;font-size:clamp(25px,3vw,48px);font-weight:400;line-height:1.02;letter-spacing:-.035em;margin:0;pointer-events:none;max-width:75%}#work-list{margin-left:60%;width:40%;padding-bottom:0}.work-card{position:relative;display:block;width:100%;overflow:hidden;aspect-ratio:1/1.05;background:#dcd9d2}.work-card img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.22,1,.36,1);will-change:transform}.work-card:hover img{transform:scale(1.045)}.work-card .work-title{position:absolute;inset:47% 15px auto;text-align:center;font-size:clamp(23px,3vw,43px);letter-spacing:-.04em;line-height:1;color:#fff;mix-blend-mode:difference}.work-card:focus-visible{outline-offset:-5px}.home-ending{padding:70px 20px;font-size:11px}#curtain{position:fixed;inset:0;z-index:100;pointer-events:none;display:grid;grid-template-rows:repeat(10,1fr)}#curtain i{display:block;background:#111;transform:scaleY(0);transform-origin:bottom;will-change:transform}#cursor{position:fixed;z-index:60;background:#111;color:#fff;font-size:11px;padding:5px 10px;pointer-events:none;opacity:0;transform:translate(16px,16px)}body.over-work #cursor{opacity:1}#work-menu{position:fixed;inset:0;z-index:50;background:#f8f8f6;padding:100px 20% 50px;overflow:auto}#menu-close{position:fixed;right:20px;top:20px;font-size:12px}#menu-items a{display:block;font-size:clamp(24px,3.5vw,50px);letter-spacing:-.045em;line-height:1.15;width:max-content;max-width:100%;margin-bottom:7px}#menu-items a:hover{opacity:.45}#about{min-height:100svh;position:relative;padding-top:50px}.bio{margin-left:51%;width:29%;font-size:13px;line-height:1.05;text-transform:uppercase}.about-art{position:absolute;top:40svh;left:44%;width:12%;}.about-art img{display:block;width:100%;height:20svh;object-fit:cover}.about-art span{font-size:8px;display:block;margin-top:6px}.contact-label{position:absolute;top:83svh;left:21.25%;font-size:12px}.contact-links{position:absolute;top:82svh;left:51%;right:20px;font-size:clamp(19px,2.8vw,40px);line-height:1.02;letter-spacing:-.035em}.contact-links a{display:block;overflow-wrap:anywhere}.contact-links a:hover{text-decoration:underline;text-decoration-thickness:1px}.project-image{height:100svh;overflow:hidden;background:#d5d2cc}.project-image img{width:100%;height:100%;object-fit:contain}.project-end{padding:55px 21.25%;min-height:40svh;display:flex;flex-direction:column;align-items:flex-start;gap:20px}.project-end span{font-size:12px}.project-end button{font-size:clamp(25px,4vw,60px);letter-spacing:-.04em;text-align:left}.project-end a{font-size:12px}body[data-view=project] header,body[data-view=home] header{mix-blend-mode:difference;color:#fff}body[data-view=project] .work-nav{max-width:100%}:focus-visible{outline:2px solid #ac4f2b;outline-offset:5px}[hidden]{display:none!important}.enter-cover{animation:cover-in 1.2s cubic-bezier(.22,1,.36,1)}@keyframes cover-in{from{clip-path:inset(0 0 100%)}to{clip-path:inset(0)}}@media(max-width:700px){header{grid-template-columns:48% 25% 21% 6%;padding:16px 12px;font-size:10px}.work-nav{font-size:22px}.cover{position:relative;width:100%;height:75svh}.statement{position:relative;left:auto;bottom:auto;padding:20px 12px 35px;font-size:30px;max-width:100%;background:#f8f8f6}#work-list{margin-left:0;width:100%}.work-card{aspect-ratio:4/5}.work-card .work-title{font-size:34px}#work-menu{padding:90px 12px 40px}#menu-items a{font-size:32px}.bio{margin:50px 12px 0 48%;width:auto;font-size:12px;padding-right:12px}.about-art{left:12px;top:30svh;width:29%}.about-art img{height:28svh}.contact-label{left:12px;top:69svh}.contact-links{top:74svh;left:12px;font-size:25px;right:12px}#about{min-height:105svh}.project-end{padding:45px 12px}.project-image{height:88svh}body.over-work #cursor{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.work-card img{transform:none!important}#cursor{display:none}}

@media(max-width:700px){.contact-links a[href^="mailto:"]{font-size:clamp(17px,5vw,24px);margin-top:8px}}

.slideshow-pause{display:block;font-size:8px;line-height:1.4;margin-top:5px;text-decoration:underline;text-underline-offset:2px}

/* Full-screen work index with photographic background. */
#work-menu{padding:0;background:#ededeb;isolation:isolate}#menu-preview{position:fixed;inset:-20px;width:calc(100% + 40px);height:calc(100% + 40px);object-fit:cover;filter:blur(9px) grayscale(.35);opacity:.7;z-index:-2;pointer-events:none}#work-menu:before{content:'';position:fixed;inset:0;background:#fff5;z-index:-1;pointer-events:none}.menu-column{position:relative;margin-left:21.25%;padding:15px 20px 60px 0;width:70%;color:#303030}#menu-close{position:static;font-size:clamp(26px,3vw,48px);letter-spacing:-.04em;line-height:1.05;text-align:left;display:block}.menu-all,#menu-items a{display:block;font-size:clamp(26px,3vw,48px);letter-spacing:-.04em;line-height:1.05;margin:0;width:max-content;max-width:100%}.menu-all:hover,#menu-close:hover{text-decoration:underline;text-underline-offset:4px}#menu-items a{transition:transform .3s,color .25s,opacity .25s}#menu-items a:hover,#menu-items a:focus-visible{opacity:1;color:#111;transform:translateX(14px)}.menu-selected{position:fixed;left:20px;top:28svh;font-size:12px}body.menu-open header{visibility:hidden}#work-menu:not([hidden]){animation:menuReveal .45s ease both}@keyframes menuReveal{from{opacity:0}to{opacity:1}}@media(max-width:700px){.menu-column{margin-left:25%;width:75%;padding-top:18px}.menu-all,#menu-close,#menu-items a{font-size:clamp(25px,5.8vw,34px);line-height:1.1}.menu-selected{left:12px;font-size:9px;top:30svh}#menu-preview{filter:blur(6px) grayscale(.35)}}
#project-gallery .project-image{margin:0;height:auto;min-height:100svh;display:flex;align-items:center;justify-content:center;background:#e6e3dd}#project-gallery .project-image img{display:block;width:100%;height:auto;min-height:100svh;max-height:none;object-fit:cover}#project-gallery .project-image:nth-child(3n){padding:12svh 18%;background:#f8f8f6}#project-gallery .project-image:nth-child(3n) img{min-height:0;height:auto}#project-description{position:fixed;z-index:15;left:21.25%;bottom:20px;margin:0;width:28%;max-width:430px;font-size:14px;line-height:1.05;text-transform:uppercase;mix-blend-mode:difference;color:#fff;pointer-events:none}.project-end{position:relative;z-index:20;background:#f8f8f6}.project-end button{font-size:clamp(28px,4vw,64px)}@media(max-width:700px){#project-description{left:12px;bottom:18px;width:65%;font-size:11px}#project-gallery .project-image{min-height:80svh}#project-gallery .project-image img{min-height:80svh}#project-gallery .project-image:nth-child(3n){padding:10svh 10%}}

.project-hero{margin:0;width:100%;height:100svh;overflow:hidden}.project-hero img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 35%}.project-layout{display:grid;grid-template-columns:60% 40%;position:relative;align-items:start}.project-fixed{position:sticky;top:0;height:100svh;overflow:hidden}.project-fixed img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 35%}.project-right figure{margin:0;aspect-ratio:1/1.05;overflow:hidden}.project-right img{display:block;width:100%;height:100%;object-fit:cover}.project-end #project-description{position:static;mix-blend-mode:normal;color:#111;width:100%;max-width:430px;pointer-events:auto;font-size:15px;line-height:1.05;margin:0 0 60px}.project-end{padding-top:65px;padding-bottom:80px;min-height:65svh}.project-end button{margin-top:20px}@media(max-width:700px){.project-layout{display:block}.project-fixed{display:none}.project-right figure{aspect-ratio:4/5}.project-hero{height:100svh}.project-end #project-description{font-size:13px;margin-bottom:35px}}

.statement{width:calc(var(--statement-width,75vw) - 20px);max-width:none;font-size:clamp(24px,var(--statement-font,2.3611vw),72px);line-height:1.02;letter-spacing:-.035em;text-transform:uppercase;overflow-wrap:break-word} @media(max-width:700px){.statement{width:100%;font-size:clamp(24px,5.8vw,32px);padding:20px 12px 35px}}

.statement{transition:background-color .3s,color .3s,padding .3s;font-size:clamp(20px,var(--statement-font,2.3611vw),72px)}@media(max-width:700px){.statement{font-size:clamp(20px,4.8vw,26px)}}

/* Let the photographic backdrop shape the text contrast, without a panel. */
.statement,body.home-scrolled[data-view=home] .statement{background:transparent;color:#fff;mix-blend-mode:difference;padding:0;transition:none;box-decoration-break:slice;-webkit-box-decoration-break:slice}@media(max-width:700px){.statement,body.home-scrolled[data-view=home] .statement{padding:20px 12px 35px;mix-blend-mode:normal;color:#111;background:#f8f8f6}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

#curtain{display:flex;align-items:center;justify-content:center;background:#161716;color:#f8f8f6;transform:translateY(102%);will-change:transform}.curtain-label{display:block;font-size:clamp(30px,5.5vw,90px);font-weight:400;letter-spacing:-.045em;line-height:1;text-align:center;max-width:85%;overflow-wrap:anywhere}

/* Experimental alternating vertical shutters. */
#curtain{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:1fr;align-items:stretch;justify-content:stretch;background:transparent;transform:none;overflow:hidden}#curtain .transition-shutter{background:#171817;width:calc(100% + 1px);height:100%;transform:translateY(-102%);transform-origin:center;will-change:transform}#curtain .transition-shutter:nth-child(even){transform:translateY(102%)}

#all-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}.index-card{display:block;position:relative;aspect-ratio:2/3;overflow:hidden;background:#d8d5cf}.index-card img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.22,1,.36,1)}.index-card:hover img{transform:scale(1.035)}.index-card>span{position:absolute;left:18px;right:18px;top:47%;text-align:center;font-size:clamp(23px,3vw,48px);line-height:1.02;letter-spacing:-.04em;color:#fff;mix-blend-mode:difference;overflow-wrap:anywhere}body[data-view=all] header{mix-blend-mode:difference;color:#fff}@media(max-width:700px){#all-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.index-card>span{left:10px;right:10px;font-size:clamp(19px,4.8vw,28px)}}

/* Inverting shutters reveal the photographs throughout the transition. */
#curtain{mix-blend-mode:difference;background:transparent}#curtain .transition-shutter{background:#fff}
.portfolio-photo{display:block;margin:0;overflow:hidden;background:#eeece7}.portfolio-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.portfolio-photo.is-full{width:100%;height:100svh}.portfolio-photo.is-right{width:50%;margin-left:50%;height:auto}.portfolio-photo.is-right img{height:auto}#project>#project-description{position:fixed;z-index:25;left:21.25%;bottom:20px;width:28%;max-width:430px;margin:0;font-size:14px;line-height:1.05;text-transform:uppercase;color:#fff;mix-blend-mode:difference;pointer-events:none;white-space:pre-line}.project-end{min-height:60svh;padding-top:70px}@media(max-width:700px){.portfolio-photo.is-right{width:75%;margin-left:25%}#project>#project-description{left:12px;bottom:16px;width:64%;max-width:none;font-size:11px}}
/* Half-page photographs fit inside the viewport without cropping. */
.portfolio-photo.is-right{height:100svh;display:flex;align-items:center;justify-content:center;background:transparent}.portfolio-photo.is-right img{width:100%;height:100%;object-fit:contain;object-position:center}@media(max-width:700px){.portfolio-photo.is-right{height:85svh}.portfolio-photo.is-right img{height:100%;object-fit:contain}}

/* The description stays fixed until its reserved footer position catches up. */
.description-slot{min-height:var(--description-height,150px);margin-bottom:40px;width:100%}#project .description-slot #project-description{position:static;width:min(28vw,430px);max-width:none;margin:0;line-height:1.05;font-size:14px;text-transform:uppercase;white-space:pre-line;color:#111;mix-blend-mode:normal;pointer-events:auto}#project.description-floating .description-slot #project-description{position:fixed;z-index:25;left:21.25%;bottom:20px;width:min(28vw,430px);color:#fff;mix-blend-mode:difference;pointer-events:none}.project-end{padding-top:65px;min-height:60svh}#next-project-preview{position:fixed;z-index:70;pointer-events:none;width:12vw;height:20svh;opacity:0;transform:scale(.95);transform-origin:center;transition:opacity .18s,transform .25s;background:transparent}#next-project-preview img{display:block;width:100%;height:100%;object-fit:cover}#next-project-preview.visible{opacity:1;transform:scale(1)}@media(max-width:700px){#project .description-slot #project-description{width:64vw;font-size:11px}#project.description-floating .description-slot #project-description{left:12px;bottom:16px;width:64vw}.description-slot{margin-bottom:30px}#next-project-preview{display:none}}
/* Do not isolate the fixed caption from the photographic/white backdrop. */
.project-end{z-index:auto}#project.description-floating .description-slot #project-description{color:#fff;mix-blend-mode:difference}#project:not(.description-floating) .description-slot #project-description{color:#111;mix-blend-mode:normal}

.hover-shutters{position:absolute;inset:0;z-index:2;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));overflow:hidden;pointer-events:none;mix-blend-mode:difference}.hover-shutters>i{display:block;width:calc(100% + 1px);height:100%;background:#fff;transform:translateY(-102%);will-change:transform}.hover-shutters>i:nth-child(even){transform:translateY(102%)}@media(prefers-reduced-motion:reduce){.hover-shutters{display:none}}
.index-card>.hover-shutters{inset:0;width:auto;transform:none}



.home-slideshow-pause{position:absolute;z-index:2;right:12px;bottom:12px;padding:6px 9px;background:#ffffffdc;color:#111;font-size:10px}

.contact-phone{display:block}

/* Opening image fills the viewport; saved object-position controls cropping. */
.project-hero img{object-fit:cover}

/* Opening photograph uses full width and its natural height, without cropping. */
.project-hero{height:auto;overflow:visible}.project-hero img{display:block;width:100%;height:auto;min-height:0;max-height:none;object-fit:contain}

/* Adaptive navigation, consistently across home, projects, About and Works. */
body[data-view] header{color:#fff;mix-blend-mode:difference;background:transparent;isolation:auto}
body[data-view] header a,body[data-view] header button,body[data-view] header .work-nav,body[data-view] header #work-name{color:#fff}
body[data-view] header .brand,body[data-view] header .about-link,body[data-view] header .instagram{font-weight:600;-webkit-text-stroke:.15px currentColor}
#work-menu .menu-column{color:#fff;mix-blend-mode:difference}
#work-menu .menu-column a,#work-menu .menu-column button,#work-menu #menu-items a:hover,#work-menu #menu-items a:focus-visible{color:#fff;opacity:1}
#work-menu .menu-selected{color:#fff;mix-blend-mode:difference}


/* Match the homepage statement: invert the underlying image continuously. */
body[data-view] header{color:#fff;mix-blend-mode:difference;background:transparent}body[data-view] header a,body[data-view] header button,body[data-view] header #work-name{color:#fff;text-shadow:none;-webkit-text-stroke:0}

/* Phone portraits retain their natural proportions instead of desktop viewport cropping. */
@media(max-width:700px){
 .portfolio-photo.is-full{width:100%;height:auto!important;min-height:0;overflow:visible}
 .portfolio-photo.is-full img{display:block;width:100%;height:auto;min-height:0;max-height:none;object-fit:contain}
}

/* Half-width photos must not reserve an empty viewport above/below the image. */
.portfolio-photo.is-right{height:auto;min-height:0;align-items:flex-start}
.portfolio-photo.is-right img{display:block;width:auto;height:auto;max-width:100%;max-height:100svh;object-fit:contain}
@media(max-width:700px){.portfolio-photo.is-right{height:auto;min-height:0}.portfolio-photo.is-right img{width:100%;height:auto;max-height:none}}

/* Use the complete right-column width without adding side letterboxing. */
.portfolio-photo.is-right img{width:100%;height:auto;max-width:100%;max-height:none}

/* Large Works names with a cursor-following strip of project photographs. */
#work-menu{background:#f8f8f6;isolation:isolate}
#work-menu:before{display:none}
#work-menu .menu-column{color:#303030;mix-blend-mode:normal}
#work-menu .menu-column a,#work-menu .menu-column button{color:#303030}
#work-menu #menu-items a:hover,#work-menu #menu-items a:focus-visible{color:#111;opacity:1}
#menu-strip{position:fixed;z-index:5;display:flex;flex-wrap:nowrap;gap:7px;align-items:flex-start;width:max-content;max-width:min(74vw,940px);overflow:hidden;pointer-events:none;opacity:0;visibility:hidden;transform:translateY(7px);transition:opacity .18s,transform .22s,visibility .18s;background:transparent}
#menu-strip.visible{opacity:1;visibility:visible;transform:translateY(0)}
#menu-strip img{display:block;flex:0 0 auto;width:auto;height:var(--strip-height,18svh);max-width:none;object-fit:contain;background:transparent}
@media(pointer:coarse){#menu-strip{display:none}}
@media(prefers-reduced-motion:reduce){#menu-strip{transition:none;transform:none}}
#work-menu{-webkit-user-select:none;user-select:none}

/* Keep changing full-screen project backgrounds alongside the cursor strip. */
#work-menu{background:#ededeb;isolation:isolate}
#work-menu:before{display:block;content:'';position:fixed;inset:0;background:#fff5;z-index:-1;pointer-events:none}
#work-menu #menu-preview{position:fixed;inset:-20px;width:calc(100% + 40px);height:calc(100% + 40px);object-fit:cover;filter:blur(9px) grayscale(.35);opacity:.7;z-index:-2;pointer-events:none}
#work-menu .menu-column{color:#fff;mix-blend-mode:difference}
#work-menu .menu-column a,#work-menu .menu-column button,#work-menu #menu-items a:hover,#work-menu #menu-items a:focus-visible{color:#fff;opacity:1}
@media(max-width:700px){#work-menu #menu-preview{filter:blur(6px) grayscale(.35)}}
#work-menu .menu-column{z-index:6}

/* About on phones: keep text, slideshow and contact in document order. */
@media(max-width:700px){
 #about{min-height:100svh;padding-bottom:24px}
 #about .about-art{position:relative;top:auto;left:auto;right:auto;width:29%;margin:32px auto 40px}
 #about .about-art img{height:clamp(140px,26svh,220px)}
 #about .contact-label{position:static;margin:0 12px 14px}
 #about .contact-links{position:static;top:auto;left:auto;right:auto;margin:0 12px 20px}
}
