@import url('fonts.css');
:root{--paper:#f5f5f2;--ink:#111110;--line:#c9c9c4;--accent:#d6ff44;--gutter:3.2vw;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button{border:0}button:focus-visible,a:focus-visible{outline:2px solid #718514;outline-offset:5px}::selection{background:var(--accent);color:var(--ink)}.skip{position:fixed;top:-100px;z-index:100;background:white;padding:16px}.skip:focus{top:10px}.header{height:96px;display:flex;align-items:center;padding:0 var(--gutter);gap:30px;position:relative;z-index:30;background:var(--paper)}.brand{font-family:Arial,sans-serif;font-weight:900;font-size:44px;letter-spacing:-6px;line-height:1}.brand span{font-size:14px;letter-spacing:0;vertical-align:top;display:inline-block;padding:4px 0 0 6px}.discipline{font-size:12px;line-height:1.3;font-weight:600;letter-spacing:.035em}.header nav{display:flex;gap:30px;margin-left:auto;font-size:13px;font-weight:700}.header nav a{position:relative;padding:8px 0}.header nav a:after{content:'';position:absolute;bottom:1px;left:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s}.header nav a:hover:after,.header nav a[aria-current]:after{transform:scaleX(1)}.menu-toggle{display:none}.hero{background:var(--paper);padding:0 var(--gutter) 24px}.hero-heading{font-family:'Barlow Condensed','Arial Narrow',sans-serif;font-size:20.05vw;letter-spacing:-.035em;font-weight:700;line-height:.82;margin:5px 0 26px;text-align:center;white-space:nowrap}.hero-frame{height:59vw;max-height:650px;min-height:400px;position:relative;background:#080808;overflow:hidden;color:white}.hero-frame>img{height:100%;width:100%;object-fit:cover;object-position:center 5%;transform:scale(1.04);animation:arrive 1.4s cubic-bezier(.2,.7,.3,1) both}.hero-frame:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#0009);pointer-events:none}.hero-tag{position:absolute;top:25px;left:26px;display:flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.1em}.hero-tag:before{content:'+';font-size:22px}.hero-bottom{position:absolute;bottom:28px;left:28px;right:28px;z-index:1;display:flex;align-items:end;justify-content:space-between}.hero-caption{font-size:14px;line-height:1.4}.hero-bottom a{display:flex;gap:22px;align-items:center;font-size:14px}.round-arrow{border:1px solid #ffffff6b;width:48px;height:48px;display:grid;place-items:center;border-radius:50%;font-size:25px;transition:background .3s,color .3s}.hero-bottom a:hover .round-arrow{background:white;color:black}.hero-meta{padding-top:16px;display:flex;justify-content:space-between;font-size:12px;font-weight:600;letter-spacing:.04em}.intro{display:grid;grid-template-columns:1fr 2fr;gap:4vw;padding:115px var(--gutter) 110px}.eyebrow{font-size:12px;font-weight:600;letter-spacing:.07em;text-transform:uppercase}.intro h2{font-size:clamp(30px,4.05vw,65px);font-weight:500;line-height:1.1;letter-spacing:-.05em;margin:0;max-width:970px}.intro a{font-size:13px;display:inline-block;border-bottom:1px solid;margin-top:30px;padding-bottom:6px}.work-section{padding:0 var(--gutter) 115px}.section-line{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--ink);padding:18px 0 32px}.section-line h2{font-size:14px;font-weight:600;margin:0}.section-line span{font-size:12px}.work-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:8vw 5vw;align-items:start}.work-card{margin:0}.work-card:nth-child(even){padding-top:140px}.photo-button{display:block;padding:0;background:#dfdfdc;width:100%;position:relative;overflow:hidden}.photo-button img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .75s cubic-bezier(.2,.7,.3,1);aspect-ratio:4/5}.work-card:nth-child(3) img{aspect-ratio:5/4}.photo-button:hover img{transform:scale(1.035)}.photo-button:after{content:'↗';width:48px;height:48px;border-radius:50%;position:absolute;right:18px;bottom:18px;display:grid;place-items:center;color:var(--ink);background:var(--paper);font-size:24px;opacity:0;transform:translateY(10px);transition:.3s}.photo-button:hover:after,.photo-button:focus-visible:after{opacity:1;transform:none}.caption{display:flex;justify-content:space-between;padding-top:15px;font-size:13px;font-weight:500}.caption span:last-child{color:#666}.collection-link{margin-top:70px;display:flex;justify-content:space-between;align-items:center;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-family:'Barlow Condensed',sans-serif;font-size:clamp(36px,6vw,100px);font-weight:600;line-height:1;letter-spacing:-.02em}.collection-link span:last-child{font-family:Arial,sans-serif;font-size:5vw;font-weight:400;transition:transform .3s}.collection-link:hover span:last-child{transform:translate(8px,-8px)}.archive-feature{background:var(--ink);color:var(--paper);padding:70px var(--gutter) 90px;overflow:hidden}.archive-top{display:flex;justify-content:space-between;align-items:end;margin-bottom:50px}.archive-top h2{font-family:'Barlow Condensed',sans-serif;font-size:clamp(80px,15vw,240px);line-height:.85;letter-spacing:-.025em;font-weight:600;margin:0}.archive-top span{font-size:13px}.archive-strip{display:grid;grid-template-columns:1fr 1.35fr .9fr;gap:22px;align-items:center}.archive-strip .photo-button{background:#242423}.archive-strip img{aspect-ratio:3/4;object-fit:cover}.archive-strip .work-card:nth-child(even){padding:0}.archive-strip .work-card:nth-child(2) img{aspect-ratio:1/1}.archive-strip .caption span:last-child{color:#aaa}.archive-feature .collection-link{font-size:25px;font-family:'DM Sans',sans-serif;letter-spacing:-.03em;border-color:#555;margin-top:52px}.archive-feature .collection-link span:last-child{font-size:35px}.bio-teaser{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;padding:140px var(--gutter);align-items:center}.bio-teaser img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;filter:grayscale(1)}.bio-teaser h2{font-size:clamp(35px,5vw,76px);font-weight:500;line-height:1.06;letter-spacing:-.055em;margin:28px 0}.bio-teaser p{font-size:16px;line-height:1.65;max-width:470px}.text-link{display:inline-block;font-size:14px;border-bottom:1px solid;padding-bottom:8px;margin-top:20px}footer{background:var(--ink);color:var(--paper);padding:55px var(--gutter) 24px}.footer-top{display:flex;justify-content:space-between;gap:20px;font-size:12px;line-height:1.5}.footer-top>a{font-size:18px;border-bottom:1px solid;height:fit-content;padding-bottom:7px}.footer-name{display:block;font-family:'Barlow Condensed',sans-serif;font-size:20vw;letter-spacing:-.035em;line-height:1;margin:60px 0 35px;white-space:nowrap;font-weight:700}.footer-bottom{display:flex;justify-content:space-between;gap:20px;font-size:12px;border-top:1px solid #555;padding-top:22px}.footer-bottom>div{display:flex;gap:25px}.gallery-heading{padding:45px var(--gutter) 55px}.gallery-heading .eyebrow{display:flex;justify-content:space-between}.gallery-heading h1,.bio-heading h1{font-family:'Barlow Condensed',sans-serif;font-size:clamp(86px,18vw,280px);font-weight:600;line-height:.9;letter-spacing:-.03em;margin:35px 0}.gallery-toolbar{display:flex;justify-content:space-between;gap:20px;padding-top:23px;border-top:1px solid var(--line);font-size:13px}.gallery-switch{display:flex;gap:24px}.gallery-switch a[aria-current]{border-bottom:1px solid;padding-bottom:6px}.gallery{padding:0 var(--gutter) 85px;columns:3;column-gap:24px}.gallery figure{break-inside:avoid;margin:0 0 35px}.gallery img{aspect-ratio:auto;height:auto;min-height:60px}.gallery .caption{font-size:12px}.gallery .photo-button:after{width:35px;height:35px;font-size:18px}.bio-heading{padding:45px var(--gutter) 0}.bio-content{display:grid;grid-template-columns:1fr 1fr;gap:7vw;padding:20px var(--gutter) 100px;align-items:start}.bio-content img{width:100%;height:auto;position:sticky;top:35px}.bio-copy p{font-size:18px;line-height:1.65;margin:0 0 30px}.bio-copy p:first-child{font-size:14px;font-weight:600;letter-spacing:.05em}.lightbox{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;border:0;background:#101010;color:#fff;padding:22px 30px;overflow:hidden}.lightbox[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:20px}.lightbox::backdrop{background:#101010}.viewer-bar,.viewer-bottom{display:flex;align-items:center;justify-content:space-between;font-size:13px;gap:12px}.lightbox button{padding:12px;background:transparent;border:1px solid #ffffff55;min-height:44px;font-size:12px}.lightbox img{height:100%;width:100%;object-fit:contain;min-height:0}.viewer-bottom>span{font-size:12px;max-width:50%;text-align:center}.reveal{animation:fade-up .8s both}@keyframes fade-up{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes arrive{from{opacity:.35;transform:scale(1.11)}to{opacity:1;transform:scale(1.04)}}
@media(min-width:1800px){.hero-frame{max-height:900px}.header{height:120px}}
@media(max-width:800px){:root{--gutter:5vw}.header{height:82px;gap:22px}.header nav{gap:17px;font-size:12px}.discipline{display:none}.intro{padding-top:75px;padding-bottom:75px;grid-template-columns:1fr;gap:24px}.intro h2{font-size:40px}.work-card:nth-child(even){padding-top:70px}.archive-strip{gap:15px}.bio-teaser{padding-top:85px;padding-bottom:85px;gap:5vw}.bio-teaser h2{font-size:40px}.gallery{columns:2}.bio-content{gap:5vw}.bio-copy p{font-size:16px}}
@media(max-width:560px){.header{height:75px}.brand{font-size:37px}.header nav{display:none}.menu-toggle{display:block;margin-left:auto;background:none;padding:12px 0;font-size:12px;letter-spacing:.04em}.menu-toggle span{font-size:20px;margin-left:12px}.header{z-index:41}.hero-heading{font-size:19.2vw;margin-top:12px;margin-bottom:21px}.hero-frame{height:65svh;min-height:400px;max-height:640px}.hero-frame>img{object-position:51% center;object-fit:cover}.hero-tag{top:17px;left:17px;font-size:10px}.hero-bottom{left:17px;right:17px;bottom:22px}.hero-caption{font-size:12px}.hero-bottom a{font-size:11px;gap:10px}.round-arrow{height:40px;width:40px}.hero-meta{font-size:10px;gap:8px}.intro{padding-top:65px;padding-bottom:65px}.intro h2{font-size:34px}.work-section{padding-bottom:65px}.work-grid{gap:38px 16px}.work-card:nth-child(even){padding-top:50px}.photo-button img{aspect-ratio:3/4}.caption{font-size:11px;gap:10px;padding-top:10px}.caption span:last-child{font-size:10px}.collection-link{margin-top:42px;font-size:44px;padding:18px 0}.collection-link span:last-child{font-size:35px}.archive-feature{padding-top:45px;padding-bottom:50px}.archive-top{margin-bottom:30px}.archive-top h2{font-size:22vw}.archive-top span{font-size:11px;text-align:right;max-width:60px}.archive-strip{grid-template-columns:1fr 1fr;gap:14px}.archive-strip .work-card:last-child{display:none}.archive-strip .work-card:nth-child(2) img{aspect-ratio:3/4}.archive-feature .collection-link{font-size:19px;margin-top:35px}.bio-teaser{grid-template-columns:1fr;gap:34px;padding-top:65px;padding-bottom:65px}.bio-teaser img{aspect-ratio:5/4}.bio-teaser h2{font-size:45px;margin-top:20px}.bio-teaser p{font-size:16px}.footer-top{font-size:10px;flex-wrap:wrap}.footer-top>a{font-size:15px}.footer-name{font-size:19.2vw;margin-top:45px;margin-bottom:25px}.footer-bottom{flex-wrap:wrap;font-size:10px;gap:24px}.footer-bottom>div{gap:18px}.footer-bottom>a{display:none}.gallery-heading{padding-top:30px;padding-bottom:30px}.gallery-heading h1{font-size:25vw;margin:32px 0}.gallery-heading .eyebrow{font-size:10px}.gallery-toolbar{font-size:12px}.gallery{column-gap:14px;padding-bottom:45px}.gallery figure{margin-bottom:23px}.gallery .caption{font-size:10px}.gallery .caption span:last-child{display:none}.bio-heading{padding-top:30px}.bio-heading h1{font-size:19.2vw}.bio-content{grid-template-columns:1fr;gap:35px;padding-bottom:55px}.bio-content img{position:static}.lightbox{padding:14px;gap:12px}.viewer-bottom>span{display:none}.lightbox button{font-size:11px}.viewer-bar{font-size:12px}#mobile-menu:not([hidden]){position:fixed;inset:75px 0 0;z-index:40;background:var(--ink);color:var(--paper);padding:35px var(--gutter);display:flex;flex-direction:column;gap:12px}#mobile-menu a{font-family:'Barlow Condensed',sans-serif;font-size:54px;line-height:1.15}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero-frame>img{transform:none!important}}

@media(prefers-reduced-motion:no-preference){.scroll-enter{opacity:0;transform:translateY(35px);transition:opacity .85s ease,transform .85s cubic-bezier(.2,.7,.3,1)}.scroll-enter.is-visible{opacity:1;transform:none}}

.hero-work-nav{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--ink);margin:0 0 24px;gap:0}.hero-work-nav a{display:flex;align-items:center;gap:18px;padding:20px 0;font-size:22px;font-weight:600;letter-spacing:-.035em;transition:opacity .25s}.hero-work-nav a:first-child{padding-right:30px;border-right:1px solid var(--line)}.hero-work-nav a:last-child{padding-left:30px}.hero-work-nav a:hover{opacity:.55}.hero-work-nav .work-nav-count{margin-left:auto;font-size:11px;font-weight:500;letter-spacing:.03em}.hero-work-nav a>span:last-child{font-size:28px;line-height:1}@media(max-width:560px){.hero-work-nav{margin-bottom:18px}.hero-work-nav a{font-size:20px;padding:15px 0;justify-content:space-between;gap:8px}.hero-work-nav a:first-child{padding-right:18px}.hero-work-nav a:last-child{padding-left:18px}.hero-work-nav .work-nav-count{display:none}.hero-work-nav a>span:last-child{font-size:24px}}

/* Photograph-led opening. */
.header{height:70px}
.hero{padding:0 0 24px}
.hero-heading{font-size:clamp(58px,9vw,150px);margin:6px var(--gutter) 20px;line-height:.88;text-align:left}
.hero-frame{height:calc(100svh - 175px);min-height:560px;max-height:1100px;width:100%}
.hero-frame>img{object-fit:contain;object-position:center center!important;transform:none;animation:photo-arrive 1.2s ease both}
.hero-frame:after{inset:70% 0 0;background:linear-gradient(transparent,#0009)}
.hero-tag{left:var(--gutter);top:24px}
.hero-bottom{left:var(--gutter);right:var(--gutter);bottom:28px;pointer-events:none}
.hero-meta{margin:0 var(--gutter)}
.hero-work-nav{position:absolute;z-index:3;right:var(--gutter);bottom:24px;display:flex;gap:36px;border:0;margin:0;color:white}
.hero-work-nav a{border:0!important;padding:12px 0!important;font-size:23px;gap:22px;border-bottom:1px solid #ffffff70!important}
.hero-work-nav .work-nav-count{display:none}
.hero-work-nav a:hover{opacity:1;border-bottom-color:white!important}
@keyframes photo-arrive{from{opacity:.4;transform:scale(1.025)}to{opacity:1;transform:none}}
@media(max-width:800px){.hero-frame{min-height:510px}.hero-work-nav{gap:25px}.hero-work-nav a{font-size:19px;gap:14px}.hero-caption{font-size:12px}}
@media(max-width:560px){.header{height:60px}.hero-heading{font-size:19.2vw;margin:5px var(--gutter) 17px}.hero-frame{height:calc(100svh - 180px);min-height:510px;max-height:900px}.hero-frame>img{object-fit:cover}.hero-tag{font-size:10px;top:18px}.hero-work-nav{left:var(--gutter);right:var(--gutter);bottom:20px;gap:26px;justify-content:space-between}.hero-work-nav a{font-size:22px;gap:20px;flex:1;justify-content:space-between}.hero-bottom{bottom:96px}.hero-caption{font-size:10px}.hero-meta{font-size:10px}#mobile-menu:not([hidden]){top:60px}}

/* Black photographic canvas, with names revealed on the image. */
:root{--paper:#080808;--ink:#f5f5f2;--line:#373737;color-scheme:dark}
body,.header,.hero,.intro,.work-section,.bio-teaser,.gallery-heading,.gallery,.bio-heading,.bio-content,footer,.archive-feature{background:#080808;color:#f5f5f2}
.archive-feature,footer{color:#f5f5f2}
.photo-button,.archive-strip .photo-button{background:#080808}
.work-card,.gallery figure{position:relative}
.work-card .caption,.gallery .caption{position:absolute;left:0;right:0;bottom:0;z-index:2;margin:0;padding:45px 20px 18px;background:linear-gradient(transparent,rgba(0,0,0,.8));color:#fff;font-size:14px;opacity:0;transform:translateY(5px);transition:opacity .25s ease,transform .25s ease;pointer-events:none}
.work-card .caption span:last-child,.archive-strip .caption span:last-child,.gallery .caption span:last-child{display:block;color:#fff;font-size:14px}
.work-card:hover .caption,.work-card:focus-within .caption{opacity:1;transform:none}
.photo-button:after{background:#fff;color:#080808}
.archive-feature .collection-link,footer .footer-bottom{border-color:#373737}
#mobile-menu:not([hidden]){background:#080808;color:#f5f5f2}
@media(hover:none){.work-card:hover .caption{opacity:0;transform:translateY(5px)}.work-card:focus-within .caption{opacity:1;transform:none}}

/* Entry page: a single photograph and two collection choices. */
body.landing-only{background:#080808}
.landing-only>.header,.landing-only>footer{display:none}
.landing-choice{position:relative;width:100%;height:100svh;min-height:500px;overflow:hidden;background:#080808;color:#fff}
.landing-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;background:#080808}
.landing-name{position:absolute;z-index:2;top:30px;left:var(--gutter);margin:0;font-family:'Barlow Condensed',sans-serif;font-weight:600;font-size:clamp(32px,4.5vw,72px);line-height:1;letter-spacing:-.025em}
.landing-links{position:absolute;z-index:3;left:50%;bottom:8vh;transform:translateX(-50%);display:flex;gap:70px;white-space:nowrap}
.landing-links a{display:flex;align-items:center;gap:35px;font-family:'Barlow Condensed',sans-serif;font-size:clamp(32px,3.5vw,56px);font-weight:600;line-height:1.1;border-bottom:1px solid #ffffff80;padding:14px 0;text-shadow:0 2px 20px #000;transition:border-color .25s,transform .25s}
.landing-links a:hover{border-color:#fff;transform:translateY(-4px)}
.landing-links a span{font:400 30px Arial,sans-serif}
.landing-choice:after{content:'';position:absolute;inset:65% 0 0;pointer-events:none;background:linear-gradient(transparent,#080808cc)}
@media(max-width:560px){.landing-photo{object-fit:cover}.landing-name{top:25px;left:6vw;font-size:38px}.landing-links{left:6vw;right:6vw;transform:none;bottom:7vh;gap:30px;justify-content:space-between}.landing-links a{font-size:31px;gap:16px;flex:1;justify-content:space-between}.landing-links a span{font-size:24px}}

.gallery{position:relative;columns:auto;padding:0 4vw 60px;column-gap:normal}
.gallery figure.work-card{margin:0;padding:0;break-inside:auto}
.gallery figure.work-card img{aspect-ratio:auto;width:100%;height:auto;min-height:0;display:block}
@media(max-width:767px){.gallery{padding-left:5vw;padding-right:5vw}}

.landing-links a{border:0;text-decoration:none;transition:opacity .25s}.landing-links a:hover{transform:none;opacity:.65}

/* Quiet motion: photographic opening, archive transitions and gallery reveals. */
@media(prefers-reduced-motion:no-preference){
 .landing-photo{transform:translate(var(--depth-x,0px),var(--depth-y,0px)) scale(1.025);transition:transform 1.2s cubic-bezier(.16,1,.3,1);animation:landing-exposure 1.5s ease both}
 .landing-name{animation:landing-type 1s cubic-bezier(.16,1,.3,1) both}
 .landing-links a{animation:landing-type 1s .15s cubic-bezier(.16,1,.3,1) both;transition:opacity .3s,letter-spacing .5s}
 .landing-links a:nth-child(2){animation-delay:.25s}
 .landing-links a:hover{letter-spacing:.045em}
 .gallery .scroll-enter{opacity:0;transform:translateY(28px);clip-path:inset(0 0 12% 0);transition:opacity .8s ease,transform 1s cubic-bezier(.16,1,.3,1),clip-path 1s cubic-bezier(.16,1,.3,1)}
 .gallery .scroll-enter.is-visible,.gallery .scroll-enter:focus-within{opacity:1;transform:none;clip-path:inset(0)}
 .lightbox[open]{animation:viewer-exposure .35s ease both}
 .lightbox[open] #viewer-image{animation:viewer-exposure .55s ease both}
 ::view-transition-old(root){animation:archive-out .3s ease both}
 ::view-transition-new(root){animation:archive-in .65s cubic-bezier(.16,1,.3,1) both}
}
@keyframes landing-exposure{from{opacity:0;filter:brightness(.5)}to{opacity:1;filter:brightness(1)}}
@keyframes landing-type{from{opacity:0;translate:0 15px;filter:blur(3px)}to{opacity:1;translate:0 0;filter:blur(0)}}
@keyframes viewer-exposure{from{opacity:0}to{opacity:1}}
@keyframes archive-out{to{opacity:0;transform:translateY(-12px)}}
@keyframes archive-in{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.gallery .scroll-enter{opacity:1;transform:none;clip-path:none}.landing-photo{transform:none}}

.gallery-toolbar{border-top:0}

/* Final motion direction: reveal, deliberate timing, no ornamental controls. */
.photo-button:after{display:none}
.landing-links a{min-width:210px;justify-content:center}
.landing-links a:focus-visible{outline:1px solid #ffffffaa;outline-offset:8px}
@media(prefers-reduced-motion:no-preference){
 .landing-photo{animation:entrance-photo 1.8s cubic-bezier(.16,1,.3,1) both}
 .landing-name{animation:entrance-word .95s .12s cubic-bezier(.16,1,.3,1) both}
 .landing-links a{animation:entrance-word 1s .35s cubic-bezier(.16,1,.3,1) both}
 .landing-links a:nth-child(2){animation-delay:.48s}
 .landing-links:has(a:hover) a:not(:hover){opacity:.35}
 .landing-links a:hover{opacity:1;letter-spacing:.025em}
 .gallery-heading.reveal{animation:entrance-word .9s .12s cubic-bezier(.16,1,.3,1) both}
 .photo-button img{transition:transform 1.1s cubic-bezier(.16,1,.3,1),filter .5s}
 .photo-button:hover img{transform:scale(1.035)}
 .work-card .caption{transition:opacity .4s,transform .5s cubic-bezier(.16,1,.3,1)}
 ::view-transition-old(root){animation:collection-leave .45s cubic-bezier(.4,0,1,1) both}
 ::view-transition-new(root){animation:collection-reveal .85s cubic-bezier(.16,1,.3,1) both}
}
@keyframes entrance-photo{from{opacity:0;scale:1.08;filter:brightness(.55)}to{opacity:1;scale:1;filter:brightness(1)}}
@keyframes entrance-word{from{opacity:0;clip-path:inset(100% 0 0);translate:0 24px}to{opacity:1;clip-path:inset(0);translate:0 0}}
@keyframes collection-leave{to{opacity:0;scale:.975}}
@keyframes collection-reveal{from{clip-path:inset(100% 0 0);translate:0 40px}to{clip-path:inset(0);translate:0 0}}
@media(max-width:560px){.landing-links a{min-width:0;justify-content:center}}

/* Minimal viewer chrome; the photograph travels independently of the backdrop. */
.lightbox button{border:0;box-shadow:none;background:transparent;border-radius:0;padding:12px 6px;font-size:13px;letter-spacing:.04em;transition:opacity .25s}
.lightbox button:hover{opacity:.55}
.lightbox button:focus-visible{outline:1px solid #fff;outline-offset:4px}
.lightbox[open]{background:transparent;isolation:isolate;animation:none}
.lightbox[open]::before{content:'';position:fixed;inset:0;z-index:-1;background:#080808;opacity:1;transition:opacity .5s ease;pointer-events:none}
.lightbox::backdrop{background:transparent}
.lightbox.is-opening::before,.lightbox.is-closing::before{opacity:0}
.lightbox[open] #viewer-image{animation:none}
.viewer-bar,.viewer-bottom{transition:opacity .25s ease}
.is-opening .viewer-bar,.is-opening .viewer-bottom,.is-closing .viewer-bar,.is-closing .viewer-bottom{opacity:0}
html{scrollbar-gutter:stable}
img{-webkit-user-drag:none;-webkit-touch-callout:none;user-select:none}
.photo-button,.landing-choice,.lightbox{-webkit-touch-callout:none}
.travelling-photo{animation:none!important;transition:none!important;max-width:none!important;max-height:none!important}

.landing-discipline{display:block;font-family:'DM Sans',Arial,sans-serif;font-size:clamp(11px,1.05vw,17px);font-weight:600;letter-spacing:.065em;line-height:1.5;margin-top:9px}
.landing-social{position:absolute;z-index:3;top:30px;right:var(--gutter)}
.instagram-link{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;color:inherit;transition:opacity .25s}
.instagram-link:hover{opacity:.55}
.header>.instagram-link{flex-shrink:0}
@media(max-width:560px){.landing-social{top:22px;right:5vw}.landing-name{font-size:34px}.landing-discipline{font-size:10px;letter-spacing:.055em;margin-top:7px}.header>.instagram-link{margin-right:auto}.header .menu-toggle{margin-left:0}}

.landing-social{display:flex;align-items:center;gap:8px}.header>.x-link{margin-left:-18px}@media(max-width:560px){.header>.instagram-link{margin-right:0}.header>.x-link{margin-left:-12px;margin-right:auto}.landing-social{gap:0}}

/* Touch layout, safe areas and readable viewer controls. */
@media(max-width:767px){
 html{scrollbar-gutter:auto}
 .gallery-heading{padding-bottom:26px}
 .gallery-toolbar a{display:inline-flex;align-items:center;min-height:44px}
 .gallery-switch{gap:25px}
 .photo-button{touch-action:manipulation}
 .lightbox{padding: max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));gap:12px;overscroll-behavior:contain}
 .viewer-bar,.viewer-bottom{font-size:12px}
 .viewer-bottom{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px}
 .viewer-bottom>#viewer-label{display:block;grid-column:1/-1;grid-row:1;max-width:none;font-size:13px;min-height:18px;text-align:center}
 #prev-image{grid-column:1;grid-row:2;text-align:left}
 #next-image{grid-column:2;grid-row:2;text-align:right}
 .lightbox button{min-height:48px;font-size:12px}
 .viewer-bar #close-viewer{margin-right:-6px}
}
@media(max-width:560px){
 .header{gap:12px;padding-top:env(safe-area-inset-top);height:calc(64px + env(safe-area-inset-top))}
 .header>.x-link{margin-left:0}
 .menu-toggle{min-width:76px;min-height:48px;font-size:13px;text-align:right}
 #mobile-menu:not([hidden]){top:calc(64px + env(safe-area-inset-top));padding-top:28px;padding-bottom:max(24px,env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain}
 #mobile-menu a{font-size:clamp(38px,11vw,54px);padding:5px 0}
 .landing-choice{min-height:420px;height:100svh}
 .landing-name{top:max(26px,env(safe-area-inset-top));left:6vw;font-size:clamp(27px,8.7vw,38px)}
 .landing-discipline{font-size:10px;letter-spacing:.025em}
 .landing-social{top:max(20px,env(safe-area-inset-top));right:4vw}
 .landing-links{bottom:max(36px,calc(env(safe-area-inset-bottom) + 28px));gap:24px}
 .landing-links a{font-size:clamp(28px,8vw,36px);min-height:56px;padding:14px 0}
 .gallery-heading .eyebrow{font-size:12px}
 .gallery-heading h1{margin:24px 0;font-size:24vw}
 .bio-copy p{font-size:17px;line-height:1.65}
 .footer-bottom{align-items:center;gap:16px;font-size:12px}
 .footer-bottom>div{gap:6px}
}
@media(max-height:500px) and (orientation:landscape){.landing-choice{min-height:320px}.landing-name{font-size:34px}.landing-links{bottom:22px}.landing-photo{object-fit:contain}.lightbox{gap:6px;padding-top:6px;padding-bottom:6px}.viewer-bottom>#viewer-label{display:none}.viewer-bottom{display:flex}.lightbox button{min-height:36px;padding:6px}}

/* New Work: white exhibition space, including navigation and photograph viewer. */
body.new-work-theme{background:#fff;color:#080808;color-scheme:light;--line:#d5d5d5}
.new-work-theme .header,.new-work-theme .gallery-heading,.new-work-theme .gallery,.new-work-theme footer,.new-work-theme #mobile-menu:not([hidden]){background:#fff;color:#080808}
.new-work-theme .photo-button{background:#f2f2f2}
.new-work-theme footer .footer-bottom{border-color:#d5d5d5}
.new-work-theme .lightbox{color:#080808}
.new-work-theme .lightbox[open]::before{background:#fff}
.new-work-theme .lightbox button:focus-visible{outline-color:#080808}

/* An optional index preserves the complete photographic sequence. */
.index-toggle{background:none;font-size:11px;letter-spacing:.08em;padding:8px 0;min-height:44px}
.index-toggle:hover{opacity:.55}
#artist-index{padding:32px 0 6px;border-top:1px solid var(--line);margin-top:22px}
#artist-index[hidden],.index-names button[hidden],.index-empty[hidden]{display:none}
.index-search{display:block;font-size:10px;letter-spacing:.1em}
.index-search input{display:block;width:100%;max-width:450px;border:0;border-bottom:1px solid currentColor;background:none;color:inherit;border-radius:0;font:inherit;font-size:24px;letter-spacing:0;padding:16px 0;margin-bottom:28px;outline-offset:5px}
.index-names{display:grid;grid-template-columns:repeat(4,1fr);gap:2px 24px}
.index-names button{background:none;text-align:left;padding:12px 0;font-size:14px;min-height:44px}
.index-names button:hover{opacity:.5}
.index-note,.index-empty{font-size:12px;line-height:1.6;opacity:.6;margin-top:26px}
.bio-intro{font-size:clamp(32px,5vw,72px);line-height:1.1;letter-spacing:-.04em;max-width:800px;margin:45px 0 65px}
.contact-editorial{padding:70px var(--gutter) 95px;border-top:1px solid #373737}
.contact-editorial h2{font-family:'Barlow Condensed',sans-serif;font-size:clamp(55px,10vw,150px);font-weight:600;line-height:.93;letter-spacing:-.02em;margin:35px 0 55px}
.contact-options{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.contact-options a{font-size:clamp(13px,1.4vw,20px);padding:18px 0;transition:opacity .25s}
.contact-options a:hover{opacity:.55}
.contact-options span{display:block;font-size:10px;letter-spacing:.1em;opacity:.6;margin-bottom:14px}
@media(prefers-reduced-motion:no-preference){.landing-name{animation-delay:.3s}.landing-links a{animation-delay:.55s}.landing-links a:nth-child(2){animation-delay:.65s}.landing-social{animation:entrance-word .8s .4s both}}
@media(max-width:767px){.index-names{grid-template-columns:repeat(2,1fr);gap:2px 18px}.index-names button{font-size:13px}.index-toggle{font-size:10px}.gallery-toolbar{align-items:center;gap:14px}.contact-options{grid-template-columns:1fr;gap:8px}.contact-editorial{padding-top:45px;padding-bottom:50px}.contact-editorial h2{margin-bottom:28px}.bio-intro{margin:30px 0 45px}}

/* A photographic title card, shown once per session. */
.entry-screen{position:fixed;inset:0;z-index:200;background:#080808;color:#f5f5f2;display:grid;place-items:center;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .65s ease,visibility .65s;overflow:hidden}
.intro-pending .entry-screen{visibility:visible;opacity:1;pointer-events:auto}
.intro-pending body{overflow:hidden}
.entry-frame{position:relative;width:min(70vw,660px);padding:30px 0}
.entry-kicker,.entry-place{display:block;font-size:10px;letter-spacing:.18em}
.entry-name{font-family:'Barlow Condensed',sans-serif;font-weight:600;font-size:clamp(88px,20vw,260px);line-height:.78;letter-spacing:-.035em;margin:32px 0 36px}
.entry-name span{display:block}
.entry-place{text-align:right;margin-top:18px;opacity:.6}
.entry-line{display:block;height:1px;background:#777;transform-origin:left}
.entry-skip{position:absolute;bottom:max(28px,env(safe-area-inset-bottom));right:6vw;min-height:44px;background:none;font-size:10px;letter-spacing:.12em;color:#aaa}
@media(prefers-reduced-motion:no-preference){.intro-pending.intro-ready .entry-name span{animation:develop-name 1.2s cubic-bezier(.16,1,.3,1) both}.intro-pending.intro-ready .entry-name span:nth-child(2){animation-delay:.16s}.intro-pending.intro-ready .entry-line{animation:exposure-line 1.35s ease both}.intro-pending .landing-photo,.intro-pending .landing-name,.intro-pending .landing-links a,.intro-pending .landing-social{animation-play-state:paused}}
@keyframes develop-name{from{clip-path:inset(100% 0 0);translate:0 24px;opacity:0;filter:blur(6px)}to{clip-path:inset(0);translate:0 0;opacity:1;filter:blur(0)}}
@keyframes exposure-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.entry-screen{transition:none}}

.bio-copy p:first-child{font-size:18px;font-weight:400;letter-spacing:0}
@media(max-width:560px){.bio-copy p:first-child{font-size:17px}}

/* Mobile navigation: a composed title page rather than a vertical utility list. */
.menu-wordmark{display:none}
@media(max-width:560px){
 .menu-open .header{position:fixed;inset:0 0 auto;height:calc(76px + env(safe-area-inset-top));padding-left:7vw;padding-right:7vw}
 .menu-open .header>.instagram-link{display:none}
 .menu-open .menu-wordmark{display:block;font-family:'Barlow Condensed',sans-serif;font-size:26px;font-weight:600;letter-spacing:-.02em;margin-right:auto}
 .menu-open .menu-toggle{font-size:10px;letter-spacing:.08em;min-width:72px}
 .menu-open .menu-toggle span{font-size:19px;margin-left:10px}
 #mobile-menu:not([hidden]){top:calc(76px + env(safe-area-inset-top));bottom:0;height:calc(100dvh - 76px - env(safe-area-inset-top));padding:12px 7vw max(30px,calc(env(safe-area-inset-bottom) + 20px));display:flex;flex-direction:column;gap:0}
 #mobile-menu .menu-home{font-family:'DM Sans',sans-serif;font-size:11px;font-weight:400;letter-spacing:.08em;padding:12px 0;min-height:44px;width:fit-content;opacity:.6}
 .menu-collections{margin-top:auto;padding-top:32px;padding-bottom:30px;display:flex;flex-direction:column;align-items:flex-start}
 .menu-caption{font-size:9px;letter-spacing:.15em;opacity:.5;margin-bottom:20px}
 #mobile-menu .menu-collections a{font-family:'Barlow Condensed',sans-serif;font-size:clamp(52px,15.5vw,84px);font-weight:500;line-height:1.05;letter-spacing:-.025em;padding:3px 0;min-height:44px;position:relative}
 #mobile-menu .menu-collections a[aria-current]:after{content:'';position:absolute;width:5px;height:5px;border-radius:50%;background:currentColor;right:-16px;top:50%;opacity:.6}
 .menu-secondary{display:flex;gap:36px;padding:8px 0 30px}
 #mobile-menu .menu-secondary a{font-family:'DM Sans',sans-serif;font-size:15px;line-height:1.4;font-weight:400;min-height:44px;padding:12px 0}
 .menu-signoff{margin-top:auto;padding-top:36px;display:flex;justify-content:space-between;gap:14px;font-size:8px;letter-spacing:.09em;opacity:.45}
 #mobile-menu a{transition:opacity .2s}
 #mobile-menu a:hover{opacity:.55}
}
@media(max-width:560px) and (prefers-reduced-motion:no-preference){
 #mobile-menu:not([hidden]){animation:menu-surface .35s ease both}
 #mobile-menu:not([hidden]) .menu-collections a{animation:menu-type .65s cubic-bezier(.16,1,.3,1) both}
 #mobile-menu:not([hidden]) .menu-collections a:nth-of-type(2){animation-delay:.07s}
 #mobile-menu:not([hidden]) .menu-secondary{animation:menu-type .6s .12s cubic-bezier(.16,1,.3,1) both}
}
@keyframes menu-surface{from{opacity:0}to{opacity:1}}
@keyframes menu-type{from{opacity:0;transform:translateY(18px);clip-path:inset(0 0 100%)}to{opacity:1;transform:translateY(0);clip-path:inset(0)}}
@media(max-width:560px) and (max-height:600px){.menu-collections{padding-top:16px;padding-bottom:12px}.menu-caption{margin-bottom:12px}.menu-signoff{padding-top:16px}.menu-secondary{padding-bottom:8px}}

@media(max-width:767px){.header>.instagram-link,.landing-social,.footer-bottom>div{display:none}.header .menu-toggle{margin-left:auto}}

/* The mobile entry is a single, fixed viewport; collections remain scrollable. */
@media(max-width:767px){
 html:has(body.landing-only){overflow:hidden;overscroll-behavior:none}
 body.landing-only{position:fixed;inset:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}
 .landing-only main{height:100%;overflow:hidden}
 .landing-only .landing-choice{height:100%;min-height:0;overscroll-behavior:none;touch-action:none}
}

.landing-bio{position:absolute;z-index:3;top:30px;right:var(--gutter);min-height:44px;display:flex;align-items:center;font-size:13px;font-weight:500;letter-spacing:.06em;transition:opacity .25s}
.landing-bio:hover{opacity:.55}
@media(max-width:560px){
 .landing-only>.header{display:flex;position:fixed;inset:0 0 auto;z-index:41;height:76px;background:transparent;color:#fff;pointer-events:none;padding-right:6vw}
 .landing-only>.header .menu-toggle{pointer-events:auto;margin-left:auto}
 .landing-only .landing-bio{display:none}
 .landing-only.menu-open>.header{background:#080808;pointer-events:auto}
 .landing-only.menu-open .landing-name{visibility:hidden}
}

/* Keep the title invisible until its exact font is ready; no fallback-font flash. */
.entry-frame{opacity:0}
.intro-ready .entry-frame{opacity:1}
.entry-screen{transition:opacity .85s ease,visibility .85s}
@keyframes develop-name{from{clip-path:inset(100% 0 0);translate:0 18px;opacity:0}to{clip-path:inset(0);translate:0 0;opacity:1}}
@media(prefers-reduced-motion:reduce){.entry-screen{transition:none}}

#viewer-image{touch-action:pan-y pinch-zoom;will-change:transform}

#viewer-image{touch-action:none;transform-origin:center;position:relative;z-index:0}
.viewer-bar,.viewer-bottom{position:relative;z-index:6}
.lightbox .viewer-bar,.lightbox .viewer-bottom{background:#080808}
.new-work-theme .lightbox .viewer-bar,.new-work-theme .lightbox .viewer-bottom{background:#fff}
.photo-zoomed{cursor:grab}

.collection-curtain{position:fixed;inset:0;z-index:150;pointer-events:auto}
@media(prefers-reduced-motion:no-preference){
 html[data-collection-transition]::view-transition-group(root){animation-duration:1.05s}
 html[data-collection-transition]::view-transition-old(root){animation:archive-push-left 1.05s cubic-bezier(.76,0,.24,1) both;mix-blend-mode:normal}
 html[data-collection-transition]::view-transition-new(root){animation:archive-open-left 1.05s cubic-bezier(.76,0,.24,1) both;mix-blend-mode:normal}
 html[data-collection-transition="old"]::view-transition-old(root){animation-name:archive-push-right}
 html[data-collection-transition="old"]::view-transition-new(root){animation-name:archive-open-right}
 .gallery-heading.reveal.collection-arrival{animation:none}
}
@keyframes archive-open-left{from{clip-path:inset(0 0 0 100%);transform:translateX(8%)}to{clip-path:inset(0);transform:translateX(0)}}
@keyframes archive-open-right{from{clip-path:inset(0 100% 0 0);transform:translateX(-8%)}to{clip-path:inset(0);transform:translateX(0)}}
@keyframes archive-push-left{from{transform:translateX(0);filter:brightness(1)}to{transform:translateX(-12%);filter:brightness(.65)}}
@keyframes archive-push-right{from{transform:translateX(0);filter:brightness(1)}to{transform:translateX(12%);filter:brightness(.65)}}

.viewer-stage{min-height:0;min-width:0;overflow:hidden;position:relative;width:100%;height:100%}

.gesture-hint{position:absolute;z-index:8;left:0;right:0;bottom:0;margin:0;padding:28px 8px 14px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.65));text-shadow:0 1px 6px #000;font-size:11px;letter-spacing:.015em;text-align:center;pointer-events:none}
.gesture-hint span{padding:0 7px;opacity:.6}
.gesture-hint[hidden]{display:none}
@media(prefers-reduced-motion:no-preference){.gesture-hint{animation:hint-arrive .5s .7s both}}
@keyframes hint-arrive{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}

/* A quiet, uninterrupted title card. */
.entry-frame{width:min(70vw,660px);padding:0}
.entry-kicker{font-size:10px;letter-spacing:.15em;opacity:.7}
.entry-name{margin:28px 0 25px;line-height:.85}
.entry-place{text-align:left;margin:0;font-size:9px;letter-spacing:.19em;opacity:.45}
@media(prefers-reduced-motion:no-preference){
 .intro-pending.intro-ready .entry-kicker{animation:entry-detail .8s .05s both}
 .intro-pending.intro-ready .entry-place{animation:entry-detail .9s .5s both}
}
@keyframes entry-detail{from{opacity:0;translate:0 5px}to{opacity:.6;translate:0 0}}
