/* Source: /style.css */
@font-face{font-family:Integral;src:url('/assets/integral-demibold.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Unbounded;src:url('/assets/unbounded-site-fd1d541f9ead.woff2') format('woff2');font-weight:200 900;font-display:swap}
@font-face{font-family:DM;src:url('/assets/dm-sans.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--ink:#10110f;--cream:#e9e5d8;--muted:#8d8f80;--line:rgba(233,229,216,.25);--gutter:3.2vw;--header:90px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:0;scrollbar-gutter:stable}body{margin:0;background:var(--ink);color:var(--cream);font:14px/1.4 DM,Arial,sans-serif;-webkit-font-smoothing:antialiased}body.is-loading{overflow:hidden}body.dialog-open{overflow:hidden}a{color:inherit;text-decoration:none}button{color:inherit;font:inherit;border:0;background:none;cursor:pointer;padding:0}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid currentColor;outline-offset:7px}button:disabled{opacity:.25;cursor:default}img,video{display:block;max-width:100%}h1,h2,h3,p{margin:0}::selection{background:var(--cream);color:var(--ink)}.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}.skip-link{position:fixed;top:-100px;left:24px;z-index:1000;padding:14px;background:var(--cream);color:var(--ink)}.skip-link:focus{top:10px}
.site-header{position:fixed;inset:0 0 auto;height:var(--header);z-index:30;pointer-events:none;mix-blend-mode:difference;color:#eeeade}.site-header nav{position:absolute;top:31px;right:var(--gutter);display:flex;gap:32px;pointer-events:auto}.site-header nav a{display:flex;align-items:baseline;gap:6px;font-size:15px}.site-header nav a:after{content:'';height:1px;background:currentColor;position:absolute;bottom:-5px;width:0;transition:width .25s}.site-header nav a:hover:after{width:22px}.wordmark{position:fixed;left:var(--gutter);top:11vh;width:calc(100vw - 6.4vw);font-family:Unbounded,Arial,sans-serif;font-size:clamp(85px,14vw,230px);line-height:.87;letter-spacing:-.075em;pointer-events:auto;transform-origin:top left;will-change:transform;display:flex;flex-direction:column}.wordmark>span{display:block;white-space:nowrap;width:max-content}.wordmark>span:nth-child(2){align-self:flex-end;margin-top:.035em}.wordmark .letter{display:inline-block}.is-loading .site-header{opacity:0}.opening{height:165svh;position:relative}.opening-sticky{height:100svh;position:sticky;top:0;overflow:hidden}.opening-kicker{position:absolute;top:31px;left:var(--gutter);right:34%;display:flex;justify-content:space-between;font-size:10px;letter-spacing:.07em;line-height:1.25;opacity:1;transition:opacity .2s}.hero-aperture{position:absolute;inset:53% 27% 13%;overflow:hidden;will-change:inset;transform:translateZ(0);background:#232620}.hero-media,.hero-media>img,.hero-media>video,.hero-media>iframe{position:absolute;width:100%;height:100%;object-fit:cover;border:0}.hero-media>iframe{pointer-events:none;transform:scale(1.03)}.hero-media{transform:scale(1.08);will-change:transform}.hero-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.7),transparent 50%);opacity:0}.hero-film-label{position:absolute;left:6.2vw;bottom:17%;opacity:0;transform:translateY(20px);pointer-events:none}.hero-film-label>span{font-size:10px;letter-spacing:.12em}.hero-film-label p{font-family:Unbounded,Arial,sans-serif;font-size:clamp(44px,6.4vw,100px);line-height:1.15;letter-spacing:-.05em}.hero-play{margin-top:17px;font-size:10px;letter-spacing:.08em;pointer-events:auto}.hero-play span{margin-left:30px}.opening-footer{position:absolute;bottom:32px;left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;align-items:end;font-size:10px;line-height:1.4;letter-spacing:.035em}.scroll-cue{position:absolute;left:50%;transform:translateX(-50%);display:flex;gap:25px;align-items:center}.scroll-cue span{font-size:25px;font-weight:400;animation:down-cue 2s ease-in-out infinite}@keyframes down-cue{0%,100%{transform:translateY(-3px)}50%{transform:translateY(3px)}}
.film-section{position:relative;height:740svh;background:var(--ink)}.cinema{position:sticky;top:0;height:100svh;overflow:hidden;background:radial-gradient(ellipse at 30% 90%,#263027 0%,#10110f 65%);transition:background-color 1s}.cinema-top{position:absolute;top:calc(var(--header) + 22px);left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;align-items:center;z-index:3}.cinema-top h2,.cinema-top button{font-size:10px;letter-spacing:.09em;text-transform:uppercase;font-weight:400}.cinema-top button{display:flex;gap:25px}.film-caption{position:absolute;z-index:3;left:10.5vw;top:23vh;pointer-events:none;max-width:70vw;transition:opacity .2s,transform .3s}.film-category{font-size:9px;letter-spacing:.1em;display:block;margin-bottom:14px}.film-title{font-family:Unbounded,Arial,sans-serif;font-weight:400;font-size:clamp(52px,8vw,128px);letter-spacing:-.065em;line-height:.9;max-width:790px;text-wrap:balance}.film-track{position:absolute;inset:34% auto auto 24%;display:flex;gap:4vw;will-change:transform;height:45vh;align-items:center}.film-slide{position:relative;flex:0 0 58vw;width:58vw;height:100%;overflow:hidden;border:0;padding:0;text-align:left;background:#20221e;opacity:.35;transition:opacity .5s,filter .5s;filter:saturate(.75);cursor:pointer}.film-slide.active{opacity:1;filter:saturate(1)}.film-slide img,.film-slide video,.film-slide iframe{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:0}.film-slide iframe{pointer-events:none;width:102%;height:102%;left:-1%;top:-1%}.film-slide:after{content:'';position:absolute;inset:0;background:linear-gradient(120deg,rgba(0,0,0,.22),transparent 60%);pointer-events:none}.slide-play{position:absolute;bottom:24px;right:24px;width:50px;height:50px;border:1px solid rgba(233,229,216,.7);border-radius:50%;display:grid;place-items:center;z-index:2;font-size:10px;transition:background .3s,transform .3s}.film-slide:hover .slide-play{background:var(--cream);color:var(--ink);transform:scale(1.08)}.film-slide:focus-visible{outline-offset:-4px}.cinema-bottom{position:absolute;bottom:7vh;left:var(--gutter);right:var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:24px}.film-client{font-size:10px;letter-spacing:.05em;text-transform:uppercase;max-width:38%}.film-controls{display:flex;gap:25px;align-items:center}.film-controls button{font-size:24px;min-height:40px;min-width:32px}.film-counter{font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.film-counter i{font-style:normal;color:#8e9085;margin-left:12px}
.stills-section{position:relative;background:var(--cream);color:var(--ink);padding:110px var(--gutter) 100px}.section-meta{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.06em}.stills-heading{display:flex;justify-content:space-between;align-items:flex-end;margin:70px 8vw 90px 0}.stills-heading h2{font-family:Unbounded,Arial,sans-serif;font-size:clamp(92px,13.5vw,210px);font-weight:400;line-height:.86;letter-spacing:-.07em}.stills-heading em,.about-grid em{font-weight:400;font-style:italic}.stills-heading p{font-size:12px;line-height:1.5;margin-bottom:10px}.photo-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:100px 2.4vw;align-items:start}.photo-card{border:0;padding:0;width:100%;text-align:left;grid-column:span 5;position:relative}.photo-card:nth-child(6n+1){grid-column:2 / span 5}.photo-card:nth-child(6n+2){grid-column:9 / span 4;margin-top:180px}.photo-card:nth-child(6n+3){grid-column:1 / span 6;margin-top:-100px}.photo-card:nth-child(6n+4){grid-column:8 / span 5;margin-top:90px}.photo-card:nth-child(6n+5){grid-column:2 / span 4;margin-top:-80px}.photo-card:nth-child(6n+6){grid-column:8 / span 4;margin-top:80px}.photo-card .photo-frame{display:block;overflow:hidden;background:#d5d1c6}.photo-card img{width:100%;height:auto;transition:transform .9s cubic-bezier(.2,.65,.2,1)}.photo-card:hover img{transform:scale(1.035)}.photo-card figcaption{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.025em;margin-top:16px}.photo-card .photo-number{opacity:.45}.text-link{font-size:10px;letter-spacing:.08em;display:flex;justify-content:space-between;border-bottom:1px solid;padding:16px 0;width:330px;max-width:100%}.all-photographs{margin:110px auto 0}.text-link span{font-size:18px}
.about-section{padding:100px var(--gutter) 0;background:var(--ink)}.about-section .section-meta button{font-size:10px;letter-spacing:.06em}.about-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:8vw;margin:95px 0 120px}.about-grid h2{font-family:Unbounded,Arial,sans-serif;font-size:clamp(80px,11vw,180px);line-height:.9;letter-spacing:-.065em;font-weight:400}.about-copy{max-width:460px;padding-top:10px}.bio{font-size:clamp(20px,2vw,30px);line-height:1.4;letter-spacing:-.02em}.contact-links{display:flex;flex-direction:column;margin-top:45px;gap:20px}.contact-links a{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.06em;border-bottom:1px solid var(--line);padding-bottom:16px}.contact-links a span{font-size:15px}.about-section footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:9px;letter-spacing:.04em;padding:26px 0 30px}.about-section footer span:last-child{opacity:.5}
.loader{position:fixed;inset:0;background:transparent;z-index:100;color:var(--cream);overflow:hidden;transition:opacity .45s;will-change:opacity}.loader[hidden]{display:none}.loader-top{position:absolute;left:var(--gutter);right:var(--gutter);top:32px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.08em}.loader-bottom{position:absolute;bottom:30px;left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;align-items:end;font-size:10px;letter-spacing:.06em}.loader-bottom button{font-size:9px;letter-spacing:.05em}dialog{border:0;padding:0;color:var(--cream);background:var(--ink);max-width:none;max-height:none;width:100vw;height:100dvh;inset:0;margin:0}dialog::backdrop{background:rgba(0,0,0,.8)}dialog[open]{display:flex;flex-direction:column}.dialog-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:26px var(--gutter);border-bottom:1px solid var(--line);font-size:11px}.dialog-bar h2{font-size:14px;font-weight:400}.dialog-bar button{font-size:10px;letter-spacing:.05em;min-height:32px}.player-body{flex:1;min-height:0;position:relative;display:grid;place-items:center;margin:25px 5vw}.player-body iframe,.player-body video{width:100%;height:100%;border:0}.original-link{font-size:10px;letter-spacing:.06em;text-align:center;padding:20px;margin-top:auto}.original-link:hover{text-decoration:underline}.player-poster{height:100%;max-height:65vh;object-fit:contain}.player-fallback{display:grid;gap:25px;justify-items:center}.player-fallback a{border-bottom:1px solid;padding:12px 0}#photo-viewer{background:var(--cream);color:var(--ink)}#photo-viewer .dialog-bar{border-color:#bbb8ae}#photo-viewer>img{margin:auto;max-height:calc(100dvh - 170px);max-width:90vw;object-fit:contain}.photo-controls{display:flex;justify-content:center;align-items:center;gap:50px;padding:20px;font-size:10px}.photo-controls button{font-size:25px;min-width:40px}.index-list{overflow:auto;padding:10px var(--gutter) 40px}.index-entry{display:grid;grid-template-columns:40px 100px 1fr auto;align-items:center;gap:25px;width:100%;text-align:left;border-bottom:1px solid var(--line);padding:18px 0}.index-entry img{width:100px;height:60px;object-fit:cover}.index-entry .index-title{font-family:Unbounded,Arial,sans-serif;font-size:clamp(24px,4vw,48px);letter-spacing:-.045em}.index-entry .index-client{font-size:9px;letter-spacing:.04em;color:var(--muted);text-align:right}.index-entry:hover .index-title{font-style:italic}.noscript{position:fixed;bottom:0;z-index:500;background:var(--cream);color:var(--ink);padding:20px;width:100%}
@media(min-width:1700px){.film-track{height:49vh;top:30%}.film-title{max-width:1000px}.wordmark{font-size:14vw}}
@media(max-width:760px){:root{--gutter:6vw;--header:78px}.site-header nav{top:24px;gap:20px}.site-header nav a{font-size:12px}.wordmark{top:18vh;width:88vw;font-size:18vw;line-height:.94;letter-spacing:-.075em}.wordmark>span:nth-child(2){margin-top:0}.opening-kicker{top:24px;font-size:8px;right:50%}.opening{height:148svh}.hero-aperture{inset:47% 14% 20%}.opening-footer{bottom:25px;font-size:8px}.scroll-cue{left:auto;right:0;transform:none;gap:14px}.hero-film-label{left:9vw;bottom:22%}.hero-film-label p{font-size:12vw;max-width:80vw}.hero-film-label>span{font-size:8px}.hero-play{font-size:9px}.cinema-top{top:100px}.cinema-top h2,.cinema-top button{font-size:9px}.film-caption{top:25vh;left:6vw;max-width:88vw}.film-category{font-size:8px;margin-bottom:12px}.film-title{font-size:15vw;max-width:90vw}.film-track{top:38%;left:12%;gap:6vw;height:33vh}.film-slide{width:82vw;flex-basis:82vw}.film-slide .slide-play{width:38px;height:38px;bottom:15px;right:15px}.cinema-bottom{bottom:11vh;flex-wrap:wrap;row-gap:30px}.film-client{font-size:8px;max-width:52%}.film-controls{gap:14px}.film-counter{font-size:10px}.film-counter i{margin-left:5px}.film-controls button{font-size:20px}.stills-section{padding-top:100px;padding-bottom:70px}.section-meta{font-size:8px}.stills-heading{margin:55px 0 60px}.stills-heading h2{font-size:22vw}.stills-heading p{font-size:10px}.photo-grid{grid-template-columns:repeat(6,1fr);gap:48px 18px}.photo-card:nth-child(6n+1){grid-column:1 / span 4}.photo-card:nth-child(6n+2){grid-column:4 / span 3;margin-top:0}.photo-card:nth-child(6n+3){grid-column:1 / span 5;margin-top:0}.photo-card:nth-child(6n+4){grid-column:3 / span 4;margin-top:0}.photo-card:nth-child(6n+5){grid-column:1 / span 4;margin-top:0}.photo-card:nth-child(6n+6){grid-column:3 / span 4;margin-top:0}.photo-card figcaption{font-size:8px;margin-top:10px}.all-photographs{margin-top:70px;font-size:9px;width:100%}.about-section{padding-top:80px}.about-section .section-meta button{font-size:8px}.about-grid{grid-template-columns:1fr;gap:45px;margin:65px 0 80px}.about-grid h2{font-size:23vw}.about-copy{max-width:none}.bio{font-size:21px;max-width:440px}.about-section footer{font-size:8px;align-items:start;flex-wrap:wrap;row-gap:22px}.about-section footer span:last-child{display:none}.loader-top,.loader-bottom{font-size:8px}.loader-bottom button{font-size:8px}.index-entry{grid-template-columns:24px 64px 1fr;gap:16px}.index-entry img{width:64px;height:45px}.index-entry .index-client{display:none}.index-entry .index-title{font-size:25px}.dialog-bar{font-size:10px}.player-body{margin:20px 0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.loader{display:none!important}.hero-media{transform:none!important}.photo-card img{transform:none!important}}

/* Heavy extended typography: the reference's graphic weight. */
.wordmark{font-weight:900;font-size:13.2vw;line-height:.92;letter-spacing:-.065em}
.film-title{font-weight:800;text-transform:uppercase;font-size:7.3vw;line-height:.95;letter-spacing:-.06em;max-width:80vw}
.hero-film-label p{font-family:Unbounded,Arial,sans-serif;font-weight:800;text-transform:uppercase;font-size:5.7vw;letter-spacing:-.06em;max-width:76vw;line-height:1}
.stills-heading h2{font-weight:800;font-size:15vw;line-height:.95;letter-spacing:-.07em;text-transform:uppercase}
.about-grid h2{font-weight:800;font-size:8vw;line-height:1;letter-spacing:-.06em;text-transform:uppercase}
.stills-heading em,.about-grid em{font-style:normal;font-weight:inherit}


.index-entry .index-title{font-weight:700;text-transform:uppercase;font-size:clamp(20px,3vw,40px)}
.index-entry:hover .index-title{font-style:normal;opacity:.65}
.photo-categories{display:flex;gap:25px;font-size:10px;margin-top:28px}
.photo-categories a{border-bottom:1px solid;padding-bottom:5px}
@media(max-width:760px){.wordmark{font-size:15.6vw;top:20vh;line-height:.98}.hero-film-label p{font-size:10vw;max-width:82vw}.film-title{font-size:12vw;max-width:88vw}.stills-heading h2{font-size:19vw}.about-grid h2{font-size:15vw}.photo-categories{gap:20px;font-size:9px}.stills-heading{display:block}.stills-heading p{margin-top:30px}.index-entry .index-title{font-size:18px}}

/* Opening filmstrip: spread, gather, then open the first film. */
.wordmark{font-weight:550;font-size:11.8vw;letter-spacing:-.065em;line-height:.98;top:15vh}
.wordmark>span:nth-child(2){margin-top:.03em}
.film-title,.hero-film-label p{font-weight:650;letter-spacing:-.055em}
.about-grid h2{font-weight:550}
.opening{height:180svh}
.hero-aperture{inset:auto;z-index:9;will-change:left,top,width,height}
.reel-card{position:absolute;overflow:hidden;background:#232620;will-change:left,top,width,height;pointer-events:none}
.reel-card img,.reel-card video{width:100%;height:100%;object-fit:cover}
.hero-film-label{z-index:12;bottom:18%}
.opening-footer{z-index:13}
@media(max-width:760px){.wordmark{font-size:15.1vw;top:23vh;font-weight:550}.opening{height:180svh}.hero-film-label{bottom:28%}.hero-film-label p{font-size:10vw}}

/* Widescreen frames and titles below the image. */
.cinema{--film-width:min(62vw,90vh);--film-top:14vh}
.film-track{left:calc((100vw - var(--film-width))/2);top:var(--film-top);height:calc(var(--film-width)*.5625);gap:4vw}
.film-slide{width:var(--film-width);flex-basis:var(--film-width);border-radius:clamp(14px,2vw,30px);aspect-ratio:16/9}
.film-caption{top:calc(var(--film-top) + var(--film-width)*.5625 + 3.5vh);left:4vw;width:92vw;max-width:none;text-align:center}
.film-category{font-size:9px;margin-bottom:15px}
.film-title{font-size:5.6vw;max-width:100%;line-height:1.05}
.film-title.long-title{font-size:4.6vw}
.cinema-top{top:88px}
.cinema-bottom{bottom:3.5vh}
.hero-film-label{left:5vw;width:90vw;bottom:auto;text-align:center}
.hero-film-label p{font-size:4.9vw;max-width:none}
.hero-film-label>span{display:none}
.hero-play{margin-top:20px}
.hero-media{transform:none!important}
.hero-aperture,.reel-card{aspect-ratio:16/9;border-radius:8px}
.player-body iframe,.player-body video{width:min(90vw,calc((100dvh - 160px)*1.777778));height:auto;aspect-ratio:16/9;max-height:100%;border-radius:16px;object-fit:contain;background:#000}
.index-entry img{aspect-ratio:16/9;height:auto;border-radius:5px}
@media(max-width:760px){
 .cinema{--film-width:88vw;--film-top:25vh}
 .film-track{gap:6vw}
 .film-caption{top:calc(var(--film-top) + var(--film-width)*.5625 + 32px);left:6vw;width:88vw}
 .film-title{font-size:9vw}.film-title.long-title{font-size:7.8vw}
 .film-category{font-size:8px;margin-bottom:15px}
 .cinema-top{top:100px}.cinema-bottom{bottom:12vh}
 .hero-film-label p{font-size:9vw}.hero-play{margin-top:18px}
 .player-body iframe,.player-body video{width:96vw;border-radius:10px}
}

.stills-heading h2{font-weight:650;letter-spacing:-.045em}
.photo-card figcaption>span:first-child{font-size:9px}

/* One pinned stage: the opening card becomes the first film in the same track. */
.opening.film-section{height:870svh}
.film-anchor{position:absolute;left:0;width:1px;height:1px;pointer-events:none}
.opening-sticky.cinema{background:var(--ink)}
.cinema:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 30% 100%,var(--scene-tint,#263027),transparent 70%);opacity:var(--scene-tint-opacity,0);pointer-events:none;transition:background .5s;mask-image:linear-gradient(#000 55%,transparent);-webkit-mask-image:linear-gradient(#000 55%,transparent)}
.film-track{position:absolute;inset:0;width:100%;height:100%;display:block;transform:none!important;pointer-events:none}
.film-slide{position:absolute;flex:none;will-change:left,top,width,height,scale;transform-origin:50% 50%;transition:filter .5s;filter:none}
.film-caption{z-index:25;top:auto}
.film-title{font-size:4.9vw}.film-title.long-title{font-size:4.3vw}
.cinema-top,.cinema-bottom{z-index:25}
.cinema-top{justify-content:flex-end}
.film-ui{opacity:0}
.opening-footer{z-index:25}

@media(max-width:760px){.film-title{font-size:9vw}.film-title.long-title{font-size:7.8vw}.film-caption{width:88vw;left:6vw}.opening.film-section{height:870svh}}

/* Still film images spin in a ring, then unfurl into the opening strip. */
html{scrollbar-gutter:stable}
.intro-backdrop{position:absolute;inset:0;z-index:0;background:var(--ink)}
.intro-orbit{position:absolute;inset:0;z-index:1;pointer-events:none;--intro-radius:min(29vw,390px);--intro-vertical:calc(var(--intro-radius)*.52)}
.intro-card{position:absolute;left:50%;top:47%;width:min(19vw,280px);aspect-ratio:16/9;overflow:hidden;border-radius:8px;background:#22241f;transform-origin:50% 50%;box-shadow:0 10px 40px #0003;transform:translate(-50%,-50%) translate(var(--intro-x),var(--intro-y)) scale(.94)}
/* The first ring is real HTML with ordinary image files. It can paint before
   deferred animation scripts execute; the script reuses these exact elements. */
.intro-card:nth-child(1){--intro-x:calc(var(--intro-radius)*-.85264);--intro-y:calc(var(--intro-vertical)*-.5225)}
.intro-card:nth-child(2){--intro-x:calc(var(--intro-radius)*-.94088);--intro-y:calc(var(--intro-vertical)*.33874)}
.intro-card:nth-child(3){--intro-x:calc(var(--intro-radius)*-.32062);--intro-y:calc(var(--intro-vertical)*.94721)}
.intro-card:nth-child(4){--intro-x:calc(var(--intro-radius)*.54107);--intro-y:calc(var(--intro-vertical)*.84098)}
.intro-card:nth-child(5){--intro-x:calc(var(--intro-radius)*.99533);--intro-y:calc(var(--intro-vertical)*.09655)}
.intro-card:nth-child(6){--intro-x:calc(var(--intro-radius)*.70008);--intro-y:calc(var(--intro-vertical)*-.71407)}
.intro-card:nth-child(7){--intro-x:calc(var(--intro-radius)*-.12235);--intro-y:calc(var(--intro-vertical)*-.99249)}
.intro-card img,.intro-card video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.film-slide img,.film-slide video,.intro-card img,.intro-card video{transform:scale(var(--preview-scale,1));transform-origin:center}
/* Keep Safari's video layer inside the rounded aperture at fractional sizes.
   A one-pixel bleed covers the poster beneath without changing the frame. */
.film-slide,.intro-fanning .intro-card{-webkit-mask-image:linear-gradient(#fff,#fff);mask-image:linear-gradient(#fff,#fff)}
/* Only a revealed trial video needs Safari's clipping layer. Still-only cards
   retain the ordinary image paint path that fixed the first-load blank ring. */
.intro-motion-trial .intro-card:has(>video[data-preview-visible="true"]){-webkit-mask-image:linear-gradient(#fff,#fff);mask-image:linear-gradient(#fff,#fff)}
.film-slide video,.intro-card video{inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);max-width:none}
/* The opening's small, transformed frames must not retain a bright poster
   under the anti-aliased edge of a playing video. Restore it on media failure. */
.intro-card img,.film-slide img{visibility:inherit}
:is(.intro-card,.film-slide):has(>video[data-preview-visible="true"])>img{visibility:hidden;transition:visibility 0s linear 180ms}
.intro-card img{inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);max-width:none}
.intro-card:after{content:'';position:absolute;inset:0;background:linear-gradient(120deg,rgba(0,0,0,.22),transparent 60%);pointer-events:none}
.loader-chrome{z-index:50}
.loader-bottom button{min-height:36px}
.is-loading .film-track,.is-loading .opening-footer,.is-loading .opening-kicker{visibility:hidden}
/* Orbit cards are separate from this destination strip. Keep the strip fully
   transparent until the same live players are handed back in finishIntro. */
.is-loading .film-track{opacity:0;pointer-events:none}
.is-loading.intro-reveal .film-track,.is-loading.intro-fanning .film-track{visibility:visible}
.is-loading.intro-fanning .film-slide{visibility:hidden}
@media(max-width:760px){.loader-top{top:25px}.loader-bottom{bottom:25px}.intro-card{border-radius:6px}}
@media(max-width:760px){.intro-orbit{--intro-radius:28vw;--intro-vertical:calc(var(--intro-radius)*.88)}.intro-card{width:25vw;aspect-ratio:3/4}}
.loader[data-phase="error"] .load-status{position:absolute;left:10%;top:58%;width:80%;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal;text-align:center;font-size:14px;line-height:1.5}
.loader[data-phase="error"] .intro-progress{display:none}
.loader[data-phase="error"] .loader-bottom{flex-wrap:wrap;align-items:center}

.intro-progress{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);display:flex;align-items:baseline;gap:6px;font-variant-numeric:tabular-nums}
.load-count{font:500 clamp(30px,3.6vw,54px)/1 Unbounded,Arial,sans-serif;letter-spacing:-.07em}
.load-unit{font:400 11px/1 DM,Arial,sans-serif;opacity:.65}
@media(max-width:760px){.intro-progress{gap:4px}.load-count{font-size:25px}.load-unit{font-size:9px}}

/* Mobile name and opening film strip. */
@media(max-width:760px){
 body:not(.press-page) .wordmark{left:6vw;top:23.5svh;width:88vw;font-size:16vw;font-weight:550;line-height:1.02;letter-spacing:-.065em}
 body:not(.press-page) .wordmark>span:nth-child(2){margin-top:.045em}
 body:not(.press-page) .site-header nav{top:26px;right:6vw;gap:16px}
 body:not(.press-page) .site-header nav a{font-size:11px;min-height:28px;align-items:center}
}

/* The owner's Integral DemiBold wordmark, restored after the Heavy comparison. */
.wordmark{font-family:Integral,Arial,sans-serif;font-weight:600;letter-spacing:-.035em;font-size:12.7vw;line-height:1.02}
/* Outline exploration: retain Integral's letterforms and scale the stroke with the name. */
@supports (-webkit-text-stroke:1px currentColor){.wordmark{-webkit-text-fill-color:transparent;-webkit-text-stroke:.045em currentColor}}
.wordmark .letter{display:inline}
@media(max-width:760px){
 body:not(.press-page) .wordmark{font-weight:600;font-size:17.2vw;letter-spacing:-.035em;line-height:1.08}
 body:has(.opening.film-section) .wordmark{line-height:.94}
 body:has(.opening.film-section) .wordmark>span{height:auto}
 body:has(.opening.film-section) .wordmark>span:nth-child(2){margin-top:.02em}
}

/* The project title opens the same film as its preview. */
.film-title-trigger{display:block;width:100%;min-height:44px;pointer-events:auto;font:inherit;letter-spacing:inherit;text-transform:inherit;text-align:inherit;text-wrap:inherit}
.mobile-scroll-hint{display:none}
.scroll-cue{text-transform:uppercase}
.scroll-cue .cue-desktop,.scroll-cue .cue-mobile{font:inherit;animation:none}
.scroll-cue .cue-mobile{display:none}
@media(max-width:760px), (max-width:1000px) and (max-height:500px){
 .scroll-cue .cue-desktop{display:none}
 .scroll-cue .cue-arrow{display:inline-block}
 .scroll-cue .cue-mobile{display:inline}
}

/* Responsive composition: keep film, caption and controls inside the safe frame. */
html{-webkit-text-size-adjust:100%}
.film-controls button,.photo-controls button{min-width:44px;min-height:44px;touch-action:manipulation}
#open-index{min-height:44px;align-items:center;padding-inline:8px;touch-action:manipulation}
.loader-bottom button,.scroll-cue{min-height:44px;align-items:center}
.loader-bottom{bottom:max(20px,env(safe-area-inset-bottom));gap:12px}
.dialog-bar{flex-shrink:0;padding-top:max(16px,env(safe-area-inset-top));padding-inline:max(var(--gutter),env(safe-area-inset-left)) max(var(--gutter),env(safe-area-inset-right))}
.dialog-bar button{min-height:44px;min-width:60px;flex:none}
.dialog-bar h2,.dialog-bar>span{min-width:0;overflow-wrap:anywhere}
.index-list{min-height:0;overscroll-behavior:contain;padding-bottom:max(32px,env(safe-area-inset-bottom))}
.index-entry{grid-template-columns:40px 100px minmax(0,1fr) auto}
.index-title{overflow-wrap:anywhere}
.photo-controls{flex-shrink:0;padding-bottom:max(20px,env(safe-area-inset-bottom))}
#photo-viewer>img{min-height:0;flex:1;max-height:calc(100dvh - 180px - env(safe-area-inset-top) - env(safe-area-inset-bottom));width:90%;object-fit:contain}
.contact-links a,.about-section footer a,.photo-categories a{min-height:44px;align-items:center}
.about-section footer{align-items:center;padding-bottom:max(30px,env(safe-area-inset-bottom))}
@media(hover:none){.photo-card:hover img{transform:none}}
@media(max-width:760px){
 :root{--gutter:max(6vw,env(safe-area-inset-left),env(safe-area-inset-right))}
 body:has(.opening.film-section) .site-header .corner-menu-trigger{top:max(clamp(40px,7svh,60px),calc(env(safe-area-inset-top) + 8px))}
 .cinema-top{top:max(clamp(40px,7svh,60px),calc(env(safe-area-inset-top) + 8px));left:auto;right:max(calc(6vw + 52px),calc(env(safe-area-inset-right) + 66px))}
 .cinema-top .film-strip-label{display:none}
 .cinema-bottom{bottom:max(40px,calc(env(safe-area-inset-bottom) + 22px));gap:6px;flex-wrap:nowrap;flex-direction:column;text-align:center}
 .film-client{width:100%;max-width:280px;height:24px;display:flex;align-items:center;justify-content:center;line-height:12px}
 .film-controls{gap:22px;flex:none;justify-content:center}
 .film-counter{font-size:12px;min-width:54px}
 .mobile-scroll-hint{display:block;font:italic 500 17px/1.2 'Cormorant Garamond',Georgia,serif}
 .opening-footer{bottom:max(34px,calc(env(safe-area-inset-bottom) + 18px));display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}

 .opening-footer .scroll-cue{position:static;transform:none;order:1;justify-content:center;font:italic 500 17px/1.2 'Cormorant Garamond',Georgia,serif;gap:12px;text-transform:none}
 .opening-footer .scroll-cue .cue-arrow{font:400 28px/1 DM,Arial,sans-serif}
 .opening-kicker{top:max(28px,calc(env(safe-area-inset-top) + 8px))}
 .index-entry{grid-template-columns:20px 56px minmax(0,1fr);gap:12px}
 .index-entry img{width:56px}
 .index-entry .index-title{font-size:clamp(14px,4.4vw,22px);line-height:1.2}
 .photo-card figcaption{gap:8px;line-height:1.5}
 .photo-card figcaption>span:first-child{font-size:8px}
 .photo-number{flex:none}
 .section-meta{gap:20px;line-height:1.5}
 .section-meta>span:last-child{text-align:right}
 /* Center the label against the button's 44px touch target, not its bottom edge. */
 .loader-bottom{left:var(--gutter);right:var(--gutter);align-items:center}
 .loader-bottom .load-label,.loader-bottom button{font-size:8px;line-height:1.4;white-space:nowrap}
}
/* A short, wide screen needs its own composition, rather than a squeezed portrait. */
@media(max-width:760px) and (max-height:560px) and (orientation:portrait){
 body:has(.opening.film-section) .site-header .corner-menu-trigger,.cinema-top{top:max(16px,env(safe-area-inset-top))}
 .cinema-bottom{bottom:max(16px,env(safe-area-inset-bottom));gap:3px}
 .film-title{font-size:7.8vw}.film-title.long-title{font-size:6.7vw}
 :root .opening-sticky .film-caption .film-category{font-size:18px;margin-bottom:6px}
 .opening-sticky .film-awards{height:32px;margin-top:3px}
 .opening-sticky .film-awards .award-badge{min-height:32px;padding-block:0}
 .mobile-scroll-hint{font-size:15px}
}
@media(max-height:500px) and (orientation:landscape){
 body:has(.opening.film-section) .site-header .corner-menu-trigger{top:max(26px,calc(env(safe-area-inset-top) + 8px))}
 .cinema-top{top:66px;right:max(var(--gutter),calc(env(safe-area-inset-right) + 14px))}
 .cinema-bottom{bottom:max(12px,env(safe-area-inset-bottom));flex-wrap:nowrap}
 .film-caption{left:12%;width:76%}
 .film-title,.film-title.long-title{font-size:clamp(18px,4.8svh,27px);line-height:1.05}
 .film-title-trigger{min-height:44px}
 .film-category{font-size:9px;margin-bottom:5px}
 .film-client{max-width:33%;font-size:8px}
 .film-controls{gap:12px}
 body:not(.press-page) .wordmark{top:19svh;font-size:clamp(32px,12svh,65px);width:66%;left:var(--gutter);line-height:1.02}
 body:has(.opening.film-section) .wordmark{line-height:1.02}
 body:has(.opening.film-section) .wordmark>span{height:auto}
 .opening-kicker{font-size:8px;top:24px}
 .opening-footer{bottom:18px}
 .loader-bottom{bottom:max(12px,env(safe-area-inset-bottom))}
}
@media(max-height:500px) and (orientation:landscape){
 .cinema-bottom{flex-direction:row;align-items:center}
 .film-client{width:auto;height:auto;justify-content:flex-start;text-align:left}
 .mobile-scroll-hint{display:none}
 .opening-footer{flex-direction:row;align-items:center;justify-content:center;gap:20px}
 .opening-footer .scroll-cue{position:static;transform:none;order:1}

}

/* Keep the mobile film navigation low when Safari retracts its browser bars.
   The opening ring and name retain their existing small-viewport composition. */
.opening-sticky.cinema.mobile-film-stack.is-film-settled{height:100dvh}
.opening-sticky.cinema.mobile-film-stack .cinema-bottom{
 bottom:max(clamp(16px,3dvh,28px),calc(env(safe-area-inset-bottom) + 12px));
 justify-content:flex-start;
}
.opening-sticky.cinema.mobile-film-stack .film-controls{margin-top:auto}
.opening-sticky.cinema.mobile-film-stack .mobile-scroll-hint{margin-top:6px}
.opening-sticky.cinema.mobile-film-stack .film-caption{transition:opacity .2s,transform .3s,top 320ms cubic-bezier(.22,1,.36,1)}
@media(prefers-reduced-motion:reduce){
 .opening-sticky.cinema.mobile-film-stack .film-caption{transition:none}
}

/* A small social mark with a full keyboard and touch target on every footer. */
.footer-instagram-nav{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.footer-instagram-nav>a{display:inline-flex;align-items:center;min-height:44px}
a.footer-instagram{display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;min-width:44px;min-height:44px;padding:12px;margin:0;border:0;color:var(--cream,#e9e5d8);line-height:1;text-decoration:none;touch-action:manipulation}
.footer-instagram svg{display:block;flex:none;width:20px;height:20px;max-width:none}
a.footer-instagram:focus-visible{outline:2px solid currentColor;outline-offset:3px}
@media(hover:hover){a.footer-instagram:hover{opacity:.7}}


/* Source: /player.css */
/* A capsule timeline, open film-frame playhead, and traveling timecode. */
#film-player.film-lightbox{--fp-gutter:clamp(12px,4vw,64px);--fp-reserve:270px;color:#eee7d7;background:rgba(7,9,8,.57);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
#film-player.film-lightbox::backdrop{background:rgba(5,7,6,.48)}
#film-player.film-lightbox.fp-entering::backdrop{animation:fp-backdrop-in 550ms ease-out both}
#film-player.film-lightbox.fp-closing::backdrop{animation:fp-backdrop-out 340ms ease-in both}
#film-player.film-lightbox.fp-closing .fp-shell,#film-player.film-lightbox.fp-closing .dialog-bar,#film-player.film-lightbox.fp-closing .original-link{pointer-events:none}
.fp-shell{transform-origin:50% 50%}
@keyframes fp-backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes fp-backdrop-out{from{opacity:var(--fp-backdrop-start,1)}to{opacity:0}}
#film-player.film-lightbox .dialog-bar{flex:none;border:0;padding:24px var(--fp-gutter) 12px;min-height:65px}
#film-player.film-lightbox .dialog-bar h2{min-width:0;font-size:11px;line-height:1.4;letter-spacing:.025em;font-weight:400;overflow-wrap:anywhere}
#film-player.film-lightbox .close-player{flex:none;border:1px solid #eee7d745;border-radius:100px;min-width:44px;min-height:44px;padding:0 14px;font-size:9px;letter-spacing:.05em;touch-action:manipulation}
#film-player.film-lightbox .close-player:hover{background:#eee7d7;color:#10110f}
#film-player.film-lightbox .player-body{margin:auto 0;display:grid;place-items:center;flex:1 0 auto;min-height:min-content;padding:12px var(--fp-gutter);width:100%}
#film-player.film-lightbox .original-link{margin:0;flex:none;align-self:center;padding:12px 16px 22px;font-size:9px;letter-spacing:.08em;text-decoration:none;opacity:.7}
#film-player.film-lightbox .original-link:hover{opacity:1;text-decoration:underline;text-underline-offset:5px}
.fp-shell{--film-aspect:1.777777778;width:min(90vw,100%,max(260px,calc((100svh - var(--fp-reserve) - env(safe-area-inset-top) - env(safe-area-inset-bottom))*var(--film-aspect))));max-width:1500px;min-width:0;--progress:0%;--hover:0%}
.fp-screen{width:100%;aspect-ratio:var(--film-aspect);position:relative;overflow:hidden;border-radius:0;background:#050605;box-shadow:0 22px 90px #0007;container:film-frame / inline-size}
#film-player .fp-screen>video,#film-player .fp-screen>iframe,#film-player .fp-screen>img{display:block;position:absolute;inset:0;width:100%;height:100%;max-height:none;aspect-ratio:auto;border:0;border-radius:0;object-fit:contain;background:#050605}
#film-player .fp-screen.has-picture-aperture>video{object-fit:cover}
#film-player .fp-screen.has-picture-aperture>iframe{height:calc(100% * var(--film-aperture-scale,1));top:50%;bottom:auto;transform:translateY(-50%)}
#film-player .fp-screen>.fp-end-poster{object-fit:cover}
#film-player .fp-screen>.fp-end-poster[hidden],#film-player .fp-screen>iframe[hidden]{display:none}
.fp-controls{padding:44px 12px 0;color:#eee7d7;font-family:DM,Arial,sans-serif;container:film-controls / inline-size}
.fp-timeline{position:relative;height:38px;--progress:0%;--hover:0%;touch-action:pan-y}
.fp-track{position:absolute;left:0;top:15px;width:100%;height:4px;display:grid;grid-template-columns:repeat(48,minmax(0,1fr));gap:4px;pointer-events:none}
.fp-track i{display:block;min-width:0;height:100%;border-radius:9px;background:#eee7d72e}
.fp-track-fill{clip-path:inset(0 calc(100% - var(--progress)) 0 0);transition:clip-path 120ms linear}
.fp-track-fill i{background:#eee7d7}
.fp-playhead{position:absolute;left:var(--progress);top:17px;width:40px;height:30px;transform:translate(-50%,-50%);pointer-events:none;filter:drop-shadow(0 1px 2px #0008)}
.fp-playhead svg{display:block;width:100%;height:100%;overflow:visible;stroke:#eee7d7;stroke-width:1.7;stroke-linecap:square}
.fp-playhead .fp-playhead-axis{stroke-width:2.2}
.fp-clock,.fp-hover{position:absolute;left:clamp(29px,var(--progress),calc(100% - 29px));top:-27px;transform:translateX(-50%);font-size:11px;line-height:1;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:.075em;pointer-events:none;white-space:nowrap}
.fp-clock{padding:6px 9px 5px;border-radius:3px;background:#eee7d7;color:#171a15;box-shadow:0 2px 12px #0002}
.fp-playhead,.fp-clock{transition:left 120ms linear}
.fp-timeline.is-scrubbing .fp-playhead,.fp-timeline.is-scrubbing .fp-clock,.fp-timeline.is-scrubbing .fp-track-fill{transition:none}
.fp-hover{left:clamp(20px,var(--hover),calc(100% - 20px));top:37px;opacity:0;color:#c5c1b7;font-size:9px;font-weight:400;letter-spacing:.04em}
.fp-timeline.is-hovered .fp-hover{opacity:1}
.fp-seek{appearance:none;-webkit-appearance:none;position:absolute;left:0;top:-5px;width:100%;height:44px;margin:0;opacity:0;cursor:pointer;z-index:2}
.fp-seek::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:1px;height:44px}
.fp-seek::-moz-range-thumb{width:1px;height:44px;border:0}
.fp-seek:disabled{cursor:default}
.fp-timeline:focus-within{outline:1px solid #eee7d7;outline-offset:6px;border-radius:1px}
.fp-timeline:focus-within .fp-playhead svg{stroke:#fff}
.fp-toolbar{display:flex;align-items:center;gap:22px;min-height:44px;margin-top:8px}
.fp-toolbar button{display:inline-flex;flex:none;align-items:center;justify-content:center;gap:10px;border:0;background:transparent;color:inherit;padding:0;min-width:44px;min-height:44px;font:inherit;font-size:9px;letter-spacing:.08em;cursor:pointer;touch-action:manipulation}
.fp-toolbar button:disabled{opacity:.3;cursor:default}
.fp-toolbar button:hover:not(:disabled){color:#fff}
.fp-toolbar button:focus-visible{outline:1px solid #eee7d7;outline-offset:5px}
.fp-play-icon{display:block;width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:square;stroke-linejoin:miter;pointer-events:none}
.fp-play-triangle{fill:currentColor;stroke:none;display:none}
.fp-pause-bars{stroke-width:3}
.is-paused .fp-play-triangle{display:block}
.is-paused .fp-pause-bars{display:none}
#film-player .fp-picture-toggle{position:absolute;inset:0;z-index:2;display:grid;place-items:center;width:100%;height:100%;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:#eee7d7;cursor:pointer;touch-action:manipulation}
#film-player .fp-picture-toggle:disabled{cursor:default}
.fp-picture-toggle .fp-play-icon{width:68px;height:68px;opacity:0;filter:drop-shadow(0 2px 8px #000);transition:opacity 180ms ease}
.show-play .fp-picture-toggle .fp-play-icon{opacity:1}
#film-player .fp-picture-toggle:focus-visible{outline:1px solid #eee7d7;outline-offset:-8px}
#film-player .fp-screen>iframe{pointer-events:none}
.fp-duration{flex:none;white-space:nowrap;font-size:10px;color:#eee7d76e;font-variant-numeric:tabular-nums;letter-spacing:.02em}
.fp-toolbar-space{flex:1}
.fp-fullscreen{font-size:24px!important;min-width:44px}
.fp-toolbar .fp-mute{min-width:44px;min-height:44px}
.fp-sound-icon{display:block;width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round}
.fp-sound-bars{transform-origin:18px 18px;transition:transform 180ms ease,opacity 180ms ease}
.fp-sound-bars path{transform-box:fill-box;transform-origin:center;vector-effect:non-scaling-stroke}
.fp-sound-quiet,.fp-sound-brackets,.fp-sound-slash{opacity:0;transition:opacity 180ms ease}
.fp-sound-brackets{stroke-width:1.25;stroke-linecap:square;stroke-linejoin:miter}
.fp-sound-slash{stroke-width:1.6}
.fp-mute[aria-pressed="true"] .fp-sound-bars{transform:scaleY(.6);opacity:0}
.fp-mute[aria-pressed="true"] .fp-sound-quiet{opacity:.65}
.fp-mute[aria-pressed="true"] .fp-sound-brackets{opacity:.72}
.fp-mute[aria-pressed="true"] .fp-sound-slash{opacity:.9}
@media(prefers-reduced-motion:no-preference){
  .fp-mute.is-sounding:not(:disabled) .fp-sound-bars path{animation:fp-sound-wave 1200ms ease-in-out infinite}
  .fp-mute.is-sounding .fp-sound-bars path:nth-child(2){animation-duration:1050ms;animation-delay:-420ms}
  .fp-mute.is-sounding .fp-sound-bars path:nth-child(3){animation-duration:1380ms;animation-delay:-780ms}
  .fp-mute.is-sounding .fp-sound-bars path:nth-child(4){animation-duration:1140ms;animation-delay:-210ms}
  .fp-mute.is-sounding .fp-sound-bars path:nth-child(5){animation-duration:1290ms;animation-delay:-630ms}
}
@keyframes fp-sound-wave{0%,100%{transform:scaleY(.55)}25%{transform:scaleY(.95)}50%{transform:scaleY(.4)}75%{transform:scaleY(1)}}
.fp-status{margin:5px 0 0;font-size:10px;line-height:1.5;color:#d9d2c4;text-align:center}
.fp-status:empty{display:none}
.fp-shell:fullscreen{--fp-fullscreen-reserve:205px;width:100%;max-width:none;height:100dvh;padding:max(12px,env(safe-area-inset-top)) max(12px,4vw,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,4vw,env(safe-area-inset-left));background:#080a08;display:flex;flex-direction:column;justify-content:center;overflow:auto}
.fp-shell:fullscreen .fp-screen,.fp-shell:fullscreen .fp-controls{margin-inline:auto;flex:none}
.fp-shell:fullscreen .fp-screen{width:min(100%,max(1px,calc((100dvh - var(--fp-fullscreen-reserve) - env(safe-area-inset-top) - env(safe-area-inset-bottom))*var(--film-aspect))))}
.fp-shell:fullscreen .fp-controls{width:min(100%,max(260px,calc((100dvh - var(--fp-fullscreen-reserve) - env(safe-area-inset-top) - env(safe-area-inset-bottom))*var(--film-aspect))))}
.fp-shell:fullscreen .fp-screen{height:auto;aspect-ratio:var(--film-aspect);min-height:0}
@media(max-width:760px){#film-player.film-lightbox{--fp-reserve:260px}#film-player.film-lightbox .dialog-bar{padding:18px var(--fp-gutter) 10px;gap:14px}#film-player.film-lightbox .dialog-bar h2{font-size:10px}.fp-shell{width:min(92vw,100%,max(260px,calc((100svh - var(--fp-reserve) - env(safe-area-inset-top) - env(safe-area-inset-bottom))*var(--film-aspect))))}.fp-controls{padding:42px 9px 0}.fp-track{grid-template-columns:repeat(32,minmax(0,1fr));gap:3px}.fp-track i:nth-child(n+33){display:none}.fp-playhead{width:34px;height:27px}.fp-clock{font-size:10px;top:-25px;padding:5px 8px}.fp-toolbar{gap:17px}.fp-status{font-size:10px;max-width:100%;overflow-wrap:anywhere}#film-player.film-lightbox .original-link{min-height:44px;padding:12px 16px 20px}}
@media(max-height:500px) and (orientation:landscape){#film-player.film-lightbox{--fp-reserve:188px}#film-player.film-lightbox .dialog-bar{min-height:52px;padding-top:4px;padding-bottom:4px}#film-player.film-lightbox .player-body{padding-block:8px}.fp-shell{width:min(82vw,100%,max(260px,calc((100svh - var(--fp-reserve) - env(safe-area-inset-top) - env(safe-area-inset-bottom))*var(--film-aspect))))}.fp-controls{padding-top:28px}.fp-timeline{height:32px}.fp-clock{top:-20px;font-size:9px;padding:4px 7px}.fp-toolbar{margin-top:0;min-height:44px;gap:12px}.fp-shell:fullscreen{--fp-fullscreen-reserve:145px}#film-player.film-lightbox .original-link{padding:10px 12px}.fp-status:empty{display:none}}
@container film-controls (max-width:340px){.fp-toolbar{gap:8px}.fp-toolbar-space{min-width:0}}

#film-player .original-link[hidden]{display:none}
@media(prefers-reduced-motion:reduce){#film-player.film-lightbox::backdrop{animation:none!important}.fp-playhead,.fp-clock,.fp-track-fill,.fp-sound-bars,.fp-sound-quiet,.fp-sound-brackets,.fp-sound-slash,.fp-picture-toggle .fp-play-icon{transition:none}}

/* Three small films float over the last frame; no separate card or client block. */
.fp-screen::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(145deg,rgba(5,6,5,.36),rgba(5,6,5,.62) 65%,rgba(5,6,5,.8));opacity:0;pointer-events:none;transition:opacity 620ms ease}
.fp-screen.has-ended::after{opacity:1}
.fp-up-next{position:absolute;right:clamp(14px,2.3cqw,32px);bottom:clamp(14px,2.3cqw,32px);z-index:3;width:min(59%,580px);color:#eee7d7;text-align:left;animation:fp-next-in 700ms cubic-bezier(.22,1,.36,1) both}
.fp-up-next[hidden]{display:none}
.fp-next-kicker{margin:0 0 12px;font:normal 300 clamp(21px,2.5cqw,29px)/1.1 'swear-display',Georgia,serif;letter-spacing:0;text-transform:none}
.fp-next-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}
.fp-next-card{display:block;min-width:0;min-height:44px;margin:0;padding:0;border:0;background:none;color:inherit;text-align:left;touch-action:manipulation;animation:fp-next-in 650ms calc(var(--next-order,0)*70ms + 70ms) cubic-bezier(.22,1,.36,1) both}
.fp-next-image{position:relative;display:block;width:100%;aspect-ratio:16/9;overflow:hidden;background:#181b16;outline:1px solid transparent;outline-offset:3px;transition:outline-color 200ms ease}
#film-player .fp-next-image>img,#film-player .fp-next-image>video{position:absolute;inset:0;display:block;width:100%;height:100%;max-height:none;object-fit:cover;transform:scale(var(--preview-scale,1));pointer-events:none}
.fp-next-image>video{opacity:0;transition:opacity 260ms ease}
.fp-next-image>video.is-playing{opacity:1}
.fp-next-title{display:block;margin-top:9px;font:600 clamp(9px,1.05cqw,12px)/1.35 Integral,Unbounded,Arial,sans-serif;text-transform:uppercase;letter-spacing:-.025em;overflow-wrap:anywhere;text-wrap:balance;transition:color 200ms ease}
.fp-next-card:hover .fp-next-title{color:#fff}
.fp-next-card:hover .fp-next-image{outline-color:#eee7d766}
.fp-next-card:focus-visible{outline:2px solid #eee7d7;outline-offset:5px}
@keyframes fp-next-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@container film-frame (max-width:700px){.fp-up-next{width:min(74%,450px)}.fp-next-row{gap:10px}.fp-next-kicker{margin-bottom:9px;font-size:23px}.fp-next-title{font-size:10px;margin-top:7px}}
@container film-frame (max-width:480px){.fp-up-next{right:12px;bottom:12px;width:calc(100% - 24px)}.fp-next-row{gap:9px}.fp-next-kicker{margin-bottom:7px;font-size:21px}.fp-next-title{font-size:9px;line-height:1.25;margin-top:7px}}
@container film-frame (max-width:340px){.fp-up-next{right:9px;bottom:9px;width:calc(100% - 18px)}.fp-next-row{gap:7px}.fp-next-kicker{font-size:18px;margin-bottom:5px}.fp-next-title{font-size:8px;line-height:1.2;margin-top:5px}}
@media(prefers-reduced-motion:reduce){.fp-screen::after,.fp-next-image,.fp-next-image>video,.fp-next-title{transition:none}.fp-up-next,.fp-next-card{animation:none}}


/* Source: /awards.css */
/* Custom typographic laurels; recognition text remains selectable and crawlable. */
@font-face{font-family:'Cormorant Garamond';src:url(/assets/cormorant-garamond-italic.woff2) format('woff2');font-style:italic;font-weight:500;font-display:swap}
.award-badge{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none;width:154px;min-height:69px;padding:6px 25px;text-align:center;color:var(--cream,#e9e5d8);transition:opacity .25s}
.award-badge:before,.award-badge:after{content:'';position:absolute;width:24px;height:66px;top:50%;left:0;transform:translateY(-50%);background:currentColor;-webkit-mask:url(/assets/laurel-branch.svg) center/contain no-repeat;mask:url(/assets/laurel-branch.svg) center/contain no-repeat;opacity:.8}
.award-badge:after{left:auto;right:0;transform:translateY(-50%) scaleX(-1)}
.award-badge:hover{opacity:.65}
.award-result{font-size:8px;font-weight:400;letter-spacing:.07em;text-transform:uppercase;line-height:1.25;margin-bottom:5px}
.award-name{font-family:'Cormorant Garamond',Georgia,serif;font-size:20px;font-weight:500;font-style:italic;letter-spacing:-.025em;line-height:1.05}
.award-year{font-size:8px;letter-spacing:.05em;line-height:1;margin-top:5px;opacity:.65}
.film-awards{height:48px;display:flex;justify-content:center;align-items:center;gap:14px;margin-top:9px;pointer-events:auto}
.film-awards:empty{visibility:hidden}
.film-awards .award-badge{width:126px;min-height:48px;padding:1px 19px}
.film-awards .award-badge:before,.film-awards .award-badge:after{width:18px;height:45px}
.film-awards .award-result{font-size:8px;letter-spacing:.04em;margin-bottom:4px}
.film-awards .award-name{font-size:15px;line-height:1;white-space:nowrap}
.film-awards .award-year{font-size:8px;margin-top:4px}
.press-recognition{display:grid;grid-template-columns:1.1fr 1fr;gap:8vw;margin:0 0 48px;padding:0 0 32px;border-bottom:1px solid #e9e5d83a}
.recognition-project{min-width:0}
.recognition-project h2{font:400 11px/1.4 DM,Arial,sans-serif;letter-spacing:.02em;margin:0 0 18px;color:#b4b3a9}
.recognition-awards{display:flex;align-items:center;justify-content:flex-start;gap:18px;flex-wrap:wrap}
@media(max-width:1100px){.press-recognition{gap:5vw}.recognition-awards{gap:9px}.press-recognition .award-badge{width:126px;padding-inline:21px}.press-recognition .award-badge:before,.press-recognition .award-badge:after{width:21px}.press-recognition .award-name{font-size:18px}}
@media(max-width:760px){.film-awards{height:42px;gap:5px;margin-top:8px}.film-awards .award-badge{width:100px;min-height:42px;padding-inline:15px}.film-awards .award-badge:before,.film-awards .award-badge:after{width:15px;height:40px}.film-awards .award-name{font-size:13px}.film-awards .award-result,.film-awards .award-year{font-size:7px}.press-recognition{grid-template-columns:1fr;gap:27px;margin-bottom:30px;padding-bottom:28px}.recognition-project h2{font-size:10px;margin-bottom:14px}.recognition-awards{gap:7px;justify-content:flex-start;flex-wrap:nowrap}.press-recognition .award-badge{width:calc((100% - 14px)/3);max-width:142px;min-height:60px;padding-inline:17px}.press-recognition .award-badge:before,.press-recognition .award-badge:after{width:18px;height:57px}.press-recognition .award-name{font-size:17px}.press-recognition .award-result,.press-recognition .award-year{font-size:7px}}
@media(max-width:350px){.film-awards{gap:2px}.film-awards .award-badge{width:90px}.film-awards .award-name{font-size:12px}}
@media(prefers-reduced-motion:reduce){.award-badge{transition:none}}

/* Keep three project groups on one desktop row; let the reading order stack on small screens. */
@media(min-width:1001px){.press-recognition{grid-template-columns:1.5fr 1fr 1fr;gap:3vw}.recognition-awards{gap:9px;flex-wrap:nowrap}.press-recognition .award-badge{flex:1;width:auto;max-width:154px;min-width:0;padding-inline:19px}.press-recognition .award-name{font-size:18px}.press-recognition .award-badge:before,.press-recognition .award-badge:after{width:19px}}
@media(min-width:761px) and (max-width:1000px){.press-recognition{grid-template-columns:1fr;gap:24px}.recognition-project{display:flex;align-items:center;gap:26px}.recognition-project h2{width:125px;flex:none;margin:0}.recognition-awards{gap:12px}.press-recognition .award-badge{width:126px}}

/* Small, quiet recognition on phones; linked badges retain a 44px tap height. */
@media(max-width:760px){
 .film-awards{height:44px;gap:4px;margin-top:3px}
 .film-awards .award-badge{width:82px;min-height:44px;padding:5px 12px}
 .film-awards .award-badge:before,.film-awards .award-badge:after{width:11px;height:30px;opacity:.7}
 .film-awards .award-result,.film-awards .award-year{font-size:7px;letter-spacing:0}
 .film-awards .award-result{margin-bottom:2px}
 .film-awards .award-name{font-size:11px}
 .film-awards .award-year{margin-top:2px}
 .press-recognition .award-badge{max-width:108px;min-height:48px;padding-inline:14px}
 .press-recognition .award-badge:before,.press-recognition .award-badge:after{width:13px;height:38px}
 .press-recognition .award-name{font-size:15px}
}
@media(max-height:500px) and (orientation:landscape){
 .film-awards{height:44px;margin-top:0;gap:8px}
 .film-awards .award-badge{width:90px;min-height:44px;padding:3px 13px}
 .film-awards .award-badge:before,.film-awards .award-badge:after{width:12px;height:32px}
 .film-awards .award-name{font-size:12px}
 .film-awards .award-result,.film-awards .award-year{font-size:7px;margin-block:2px}
}


/* Source: /menu.css */
/* A quiet corner control opens the main navigation. */
:is(.site-header,.supporting-header) .corner-menu-trigger{position:absolute;top:max(20px,calc(env(safe-area-inset-top) + 8px));right:max(var(--gutter),calc(env(safe-area-inset-right) + 16px));display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;pointer-events:auto;font-size:11px;letter-spacing:.08em;will-change:transform;touch-action:manipulation}
.corner-menu-strokes{display:none;flex-direction:column;gap:6px;width:22px}
.corner-menu-strokes:before,.corner-menu-strokes:after{content:'';height:1px;width:100%;background:currentColor;transition:transform .25s}
.corner-menu-trigger:hover .corner-menu-strokes:before{transform:translateX(-3px)}
.corner-menu-trigger:hover .corner-menu-strokes:after{transform:translateX(3px)}
:is(.site-header,.supporting-header) [data-menu-navigation][hidden]{display:none}
body.corner-menu-open{overflow:hidden}
dialog.corner-menu{position:fixed;inset:0;width:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;overflow:hidden;color:var(--cream);background:transparent}
dialog.corner-menu[open]{display:flex;align-items:flex-end;flex-direction:column}
dialog.corner-menu::backdrop{background:#050604a8;backdrop-filter:blur(7px)}
.corner-menu-panel{position:relative;flex:none;width:min(58vw,780px);height:100%;padding:max(clamp(100px,18svh,180px),calc(env(safe-area-inset-top) + 80px)) max(clamp(42px,6vw,110px),calc(env(safe-area-inset-right) + 24px)) max(clamp(100px,18svh,180px),calc(env(safe-area-inset-bottom) + 24px));display:flex;flex-direction:column;align-items:stretch;overflow-y:auto;overscroll-behavior:contain;background:var(--ink);border-left:1px solid var(--line);animation:corner-menu-arrive .5s cubic-bezier(.22,1,.36,1) both}
.corner-menu-close{position:absolute;right:max(var(--gutter),calc(env(safe-area-inset-right) + 16px));top:max(20px,calc(env(safe-area-inset-top) + 8px));min-width:44px;min-height:44px;display:flex;align-items:center;gap:17px;font-size:11px;letter-spacing:.08em;touch-action:manipulation}
.corner-menu-cross{position:relative;width:20px;height:20px}
.corner-menu-cross:before,.corner-menu-cross:after{content:'';position:absolute;left:0;top:9px;width:20px;height:1px;background:currentColor;transform:rotate(45deg)}
.corner-menu-cross:after{transform:rotate(-45deg)}
.corner-menu [data-menu-navigation]{width:100%;margin-block:auto;display:flex;flex-direction:column;align-items:flex-start;gap:clamp(18px,4svh,40px)}
/* Negative tracking needs extra paint room for the final glyph in the rainbow text. */
.corner-menu [data-menu-navigation] a{display:flex;align-items:center;min-height:44px;max-width:100%;padding-inline-end:.14em;font:400 clamp(44px,6.3vw,90px)/1.15 Unbounded,Arial,sans-serif;letter-spacing:-.065em;overflow-wrap:anywhere;transition:opacity .2s,transform .3s;touch-action:manipulation}
.corner-menu [data-menu-navigation] a:hover{transform:translateX(8px)}
.corner-menu [data-menu-navigation] a[aria-current=page]{opacity:.48}
@keyframes corner-menu-arrive{from{opacity:0;transform:translateX(34px)}to{opacity:1;transform:translateX(0)}}
@keyframes corner-menu-mobile-arrive{from{transform:translate3d(100%,0,0)}to{transform:translate3d(0,0,0)}}
@keyframes corner-menu-mobile-leave{from{transform:var(--menu-leave-from,translate3d(0,0,0))}to{transform:translate3d(100%,0,0)}}
@keyframes corner-menu-link-arrive{from{opacity:0;transform:translate3d(18px,20px,0)}to{opacity:var(--menu-link-opacity,1);transform:translate3d(0,0,0)}}
@media(max-width:760px),(max-width:1000px) and (max-height:500px) and (orientation:landscape){
 :is(.site-header,.supporting-header) .corner-menu-trigger{top:max(26px,calc(env(safe-area-inset-top) + 8px));right:max(24px,calc(env(safe-area-inset-right) + 14px));width:44px;justify-content:center}
 .corner-menu-label{display:none}
 .corner-menu-strokes{display:flex}
 .corner-menu-panel{width:100%;padding:max(100px,calc(env(safe-area-inset-top) + 80px)) max(9vw,calc(env(safe-area-inset-right) + 24px)) max(100px,calc(env(safe-area-inset-bottom) + 24px)) max(9vw,calc(env(safe-area-inset-left) + 24px));border-left:0;animation:corner-menu-mobile-arrive .6s cubic-bezier(.22,1,.36,1) both}
 .corner-menu.is-closing .corner-menu-panel{animation:corner-menu-mobile-leave .3s cubic-bezier(.4,0,.6,1) both}
 .corner-menu-close{top:max(26px,calc(env(safe-area-inset-top) + 8px));right:max(34px,calc(env(safe-area-inset-right) + 24px));font-size:10px;gap:12px}
 .corner-menu [data-menu-navigation]{gap:32px}
 .corner-menu [data-menu-navigation] a{font-size:clamp(40px,13vw,76px);animation:corner-menu-link-arrive .42s cubic-bezier(.22,1,.36,1) backwards;animation-delay:calc(120ms + var(--menu-link-order,0) * 50ms)}
 .corner-menu [data-menu-navigation] a[aria-current=page]{--menu-link-opacity:.48}
}
@media(max-height:600px){
 .corner-menu-panel{padding-top:max(82px,calc(env(safe-area-inset-top) + 66px));padding-bottom:max(24px,calc(env(safe-area-inset-bottom) + 16px))}
 .corner-menu [data-menu-navigation]{gap:clamp(8px,2svh,14px)}
 .corner-menu [data-menu-navigation] a{font-size:clamp(32px,8svh,48px)}
}
@media(prefers-reduced-motion:reduce){.corner-menu-panel,.corner-menu.is-closing .corner-menu-panel,.corner-menu [data-menu-navigation] a{animation:none}.corner-menu [data-menu-navigation] a,.corner-menu-strokes:before,.corner-menu-strokes:after{transition:none}}

/* Supporting pages keep their header in document flow, using the same menu control. */
.supporting-header .corner-menu-trigger{position:static;inset:auto;transform:none;flex:none}


/* Source: /stills.css */
/* One photography chapter: a clear entrance, then a continuous project sequence. */
.stills-section{--stills-muted:#a4a499;background:#10110f;color:var(--cream);padding:0;position:relative}
.stills-section a{color:inherit}
.in-stills .site-header{mix-blend-mode:difference;background:transparent;color:#fff}
.stills-intro{height:84svh;min-height:420px;position:relative}
.stills-landing{height:100%;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:80px 5vw 100px}
.stills-intro h2{position:relative;margin:0;text-align:center;font:600 clamp(80px,23vw,400px)/.85 Integral,Arial,sans-serif;letter-spacing:-.055em;color:var(--cream)}
.stills-title-mask{display:block;overflow:hidden;white-space:nowrap;padding:.16em .04em .12em;margin:-.16em -.04em -.12em}
.stills-title-letter{display:inline-block}
.stills-has-motion .stills-title-letter{transform:translate3d(0,135%,0);opacity:0}
/* The crest travels across the word: each letter overshoots, then lands. */
.stills-has-motion .is-stills-title-visible .stills-title-letter{transform:translate3d(0,0,0);opacity:1;transition:transform 1.05s cubic-bezier(.34,1.56,.64,1),opacity .18s ease-out;transition-delay:calc(var(--letter-order)*85ms)}
.stills-chapter-cue{position:absolute;bottom:48px;left:calc(50% - 22px);width:44px;height:44px;display:grid;place-items:center;font:400 28px/1 DM,Arial,sans-serif;color:var(--stills-muted)}
.stills-projects{padding:0 var(--gutter) 130px;scroll-margin-top:90px}
.stills-section [hidden]{display:none!important}
.stills-filters{position:sticky;top:76px;z-index:3;display:flex;justify-content:flex-end;gap:12px;width:max-content;max-width:100%;margin:0 3vw 54px auto;padding:8px;background:transparent;mix-blend-mode:difference}
.stills-has-motion .stills-filters{opacity:var(--filter-reveal,0);transform:translate3d(0,calc(42px * (1 - var(--filter-reveal,0))),0);transition:opacity .65s ease-out}
.stills-has-motion .stills-filters:focus-within{opacity:1;transform:translate3d(0,0,0);transition:none}
.stills-filters button{position:relative;min-width:44px;min-height:44px;padding:12px;font:400 12px/1.2 DM,Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#fff;touch-action:manipulation;transition:color .2s}
.stills-filters button::after{content:"";position:absolute;inset:5px;pointer-events:none;opacity:0;background:linear-gradient(currentColor,currentColor) left top/6px 1px no-repeat,linear-gradient(currentColor,currentColor) left top/1px 6px no-repeat,linear-gradient(currentColor,currentColor) right top/6px 1px no-repeat,linear-gradient(currentColor,currentColor) right top/1px 6px no-repeat,linear-gradient(currentColor,currentColor) left bottom/6px 1px no-repeat,linear-gradient(currentColor,currentColor) left bottom/1px 6px no-repeat,linear-gradient(currentColor,currentColor) right bottom/6px 1px no-repeat,linear-gradient(currentColor,currentColor) right bottom/1px 6px no-repeat;transition:opacity .2s}
.stills-filters button[aria-pressed="true"]{color:#fff}
.stills-filters button[aria-pressed="true"]::after{opacity:1}
.stills-filters button:focus-visible::after{opacity:1}
.stills-filters button:focus-visible{outline-offset:0}
/* Project navigation and categories share the top of the photography chapter. */
.stills-toolbar{position:sticky;top:76px;z-index:3;display:flex;align-items:center;justify-content:flex-end;gap:24px;margin:0 3vw 54px;mix-blend-mode:difference}
.stills-toolbar .stills-filters{position:static;margin:0;mix-blend-mode:normal}
.project-index-trigger{display:flex;align-items:center;gap:10px;min-width:44px;min-height:44px;padding:0 6px;flex:none;order:1;color:#fff;touch-action:manipulation}
.project-index-label{font:400 10px/1.2 DM,Arial,sans-serif;letter-spacing:.09em;white-space:nowrap}
.stills-has-motion .project-index-trigger{opacity:var(--filter-reveal,0);transform:translate3d(0,calc(42px * (1 - var(--filter-reveal,0))),0);transition:opacity .65s ease-out}
.stills-has-motion .project-index-trigger:focus-visible{opacity:1;transform:none;transition:none}
.project-index-trigger:hover .film-strip-icon i{transform:translateY(0)}
.stills-project-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:5vw;row-gap:130px;align-items:start;padding:0 3vw 60px}
.stills-project-card{display:block;grid-column:1 / span 5;min-width:0;transform:translate3d(0,var(--project-travel,0px),0)}
.stills-project-card.is-offset,.stills-page .stills-project-card:nth-child(even){grid-column:8 / span 5;margin-top:140px}
.stills-project-card.is-lead{grid-column:2 / span 10;margin:0 0 30px}
.stills-project-card.is-wide{grid-column:1 / -1;margin:0;max-width:none}
.stills-project-grid.is-filtered .stills-project-card{grid-column:1 / span 5;margin:0}
.stills-project-grid.is-filtered .stills-project-card.is-filter-offset{grid-column:8 / span 5;margin-top:140px}
.stills-project-grid.is-filtered .stills-project-card.is-wide{grid-column:1 / -1}
.project-image{position:relative;display:block;overflow:visible;transform:scale(var(--project-scale,1));transform-origin:center}
.project-image-clip{display:block;overflow:hidden;background:#22231f}
.stills-project-card.is-in-view,.stills-project-card.is-in-view .project-image{will-change:transform}
.project-image img{display:block;width:100%;height:auto;transition:transform 1s cubic-bezier(.22,1,.36,1)}
/* Cap the whole frame, so the natural ratio and exterior brackets stay together. */
#stills .project-image{--project-max-height:min(60svh,calc(100svh - 230px));width:min(100%,calc(var(--project-max-height) * var(--project-aspect,1)))}
#stills .stills-project-card.is-lead .project-image{margin-inline:auto}
.project-image::after{content:"";position:absolute;inset:-4px;z-index:1;pointer-events:none;opacity:0;color:var(--cream);background:linear-gradient(currentColor,currentColor) left top/20px 1px no-repeat,linear-gradient(currentColor,currentColor) left top/1px 20px no-repeat,linear-gradient(currentColor,currentColor) right top/20px 1px no-repeat,linear-gradient(currentColor,currentColor) right top/1px 20px no-repeat,linear-gradient(currentColor,currentColor) left bottom/20px 1px no-repeat,linear-gradient(currentColor,currentColor) left bottom/1px 20px no-repeat,linear-gradient(currentColor,currentColor) right bottom/20px 1px no-repeat,linear-gradient(currentColor,currentColor) right bottom/1px 20px no-repeat;transition:opacity .3s ease,inset .45s cubic-bezier(.22,1,.36,1)}
.stills-project-card:focus-visible .project-image::after{inset:-12px;opacity:1}
.project-meta{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:32px 0 10px;font:400 9px/1.4 DM,Arial,sans-serif;letter-spacing:.075em;text-transform:uppercase;color:var(--stills-muted)}
.project-title{display:block;margin:0;font:normal 650 clamp(28px,3.4vw,52px)/1.05 Unbounded,Arial,sans-serif;letter-spacing:-.055em;text-transform:uppercase;text-wrap:balance;overflow-wrap:anywhere;font-synthesis:none}
.project-word{display:inline-block;overflow:hidden;vertical-align:top;padding:.13em .08em .2em;margin:-.13em -.08em -.2em}
.project-word-inner{display:inline-block;vertical-align:top}
.stills-has-motion .project-word-inner{transform:translate3d(0,125%,0);transition:transform .85s cubic-bezier(.22,1,.36,1);transition-delay:calc(var(--word-order)*65ms)}
.stills-has-motion .is-title-visible .project-word-inner,.stills-has-motion .stills-project-card:focus-visible .project-word-inner{transform:translate3d(0,0,0)}
.project-arrow{-webkit-text-fill-color:currentColor;display:inline-block;font:400 .48em/1 DM,Arial,sans-serif;vertical-align:middle;margin-left:10px;transition:transform .35s}
.stills-project-card.is-lead .project-title,.stills-project-card.is-wide .project-title{font-size:clamp(46px,6vw,88px)}
.stills-collection-preview{display:grid;grid-template-columns:.78fr 1.22fr;gap:7vw;align-items:center}
.stills-project-card:focus-visible{outline:1px solid var(--cream);outline-offset:12px}
.stills-index-link{display:flex;justify-content:space-between;align-items:center;gap:30px;margin:50px 3vw 0;padding:36px 0;border-top:1px solid #e9e5d840;border-bottom:1px solid #e9e5d840}
.stills-index-link .project-title{font-size:clamp(34px,4vw,64px)}
/* Main-page photography titles share the film titles' typography. */
#stills .stills-project-card .project-title{font:normal 650 clamp(28px,3.4vw,52px)/1.05 Unbounded,Arial,sans-serif;letter-spacing:-.055em;text-transform:uppercase;text-wrap:balance}
#stills .stills-project-card.is-lead .project-title,#stills .stills-project-card.is-wide .project-title{font-size:clamp(36px,4.9vw,80px)}
@media(min-width:761px){
 #stills .stills-project-grid{row-gap:64px}
 #stills .stills-project-grid:not(.is-filtered) .stills-project-card.is-offset,#stills .stills-project-grid.is-filtered .stills-project-card.is-filter-offset{margin-top:96px}
 #stills .stills-project-card.is-lead .project-image{transform-origin:center top}
}
@media(hover:hover){.stills-filters button:hover{color:#fff}.stills-filters button:hover::after{opacity:1}.stills-project-card:hover .project-image::after{inset:-12px;opacity:1}.stills-project-card:hover .project-image img{transform:scale(1.02)}}
@media(max-width:760px){
 .stills-intro{height:clamp(250px,40svh,340px);min-height:0}
 .stills-landing{padding:66px 6vw 56px}
 .stills-intro h2{font-size:23vw;letter-spacing:-.045em}
 .stills-chapter-cue{bottom:18px;font-size:25px}
 .stills-projects{padding:0 6vw 75px;scroll-margin-top:90px}
 .stills-filters{top:66px;gap:1px;padding:4px 0;margin:0 0 24px auto}
 .stills-filters button{padding:12px 10px;font-size:10px;letter-spacing:.04em}
 .stills-toolbar{top:66px;gap:4px;flex-direction:column;align-items:flex-end;margin:0 0 24px}
 .stills-toolbar .stills-filters{margin:0;max-width:100%;padding:0}
 .project-index-trigger{order:0}
 .project-index-label{font-size:9px}
 .stills-project-grid{display:block;padding:0}
 .stills-project-card{width:84%;margin:0 0 80px}
 .stills-project-card.is-offset,.stills-page .stills-project-card:nth-child(even){margin:0 0 80px auto}
 .stills-project-card.is-lead{width:100%;margin:0 0 80px}
 .stills-project-card.is-wide{width:100%;margin:0 0 80px}
 .stills-project-grid.is-filtered .stills-project-card{width:84%;margin:0 0 80px}
 .stills-project-grid.is-filtered .stills-project-card.is-filter-offset{margin:0 0 80px auto}
 .stills-project-grid.is-filtered .stills-project-card.is-wide{width:100%}
 #stills .stills-project-grid .stills-project-card{margin-inline:auto;text-align:center}
 #stills .stills-project-card .project-image{margin-inline:auto}
 #stills .stills-project-card .project-meta{justify-content:center}
 .stills-collection-preview{gap:5vw}
 .project-title{font-size:clamp(24px,7.8vw,35px)}
 .project-meta{margin-top:24px;font-size:8px}
 .stills-project-card.is-lead .project-title,.stills-project-card.is-wide .project-title{font-size:clamp(33px,10vw,44px)}
 .stills-index-link{margin:48px 0 0;padding:28px 0;gap:15px}
 #stills .stills-project-card .project-title{font-size:clamp(24px,7.8vw,35px)}
 #stills .stills-project-card.is-lead .project-title,#stills .stills-project-card.is-wide .project-title{font-size:clamp(28px,9vw,44px)}
}
@media(max-height:500px) and (orientation:landscape){.stills-intro{height:92svh;min-height:300px}.stills-intro h2{font-size:19vw}.stills-chapter-cue{bottom:20px}}
@media(prefers-reduced-motion:reduce){.stills-has-motion .project-index-trigger{transition:none;transform:none;opacity:1}}
@media(prefers-reduced-motion:reduce){.stills-has-motion .stills-title-mask,.stills-has-motion .stills-title-letter{transform:none!important;opacity:1!important;transition:none!important}}
@media(prefers-reduced-motion:reduce){.project-image img,.project-image::after,.project-arrow,.stills-has-motion .project-word-inner,.stills-has-motion .stills-filters{transition:none}.stills-project-card,.project-image,.stills-has-motion .project-word-inner,.stills-has-motion .stills-filters{transform:none!important;will-change:auto!important}.stills-intro h2,.stills-has-motion .stills-filters{opacity:1!important}}


/* Source: /interaction.css */
/* A moving spectrum lives in the lettering, never in the image or hit area. */
@property --link-shimmer { syntax:"<percentage>"; inherits:true; initial-value:0%; }
:where(a[href],button,.film-info>summary,.film-up-next>summary){--link-shimmer:0%;--shimmer-animation:none;--shimmer-word-animation:none}
@media(hover:hover){
 :where(a[href],button:not(:disabled),.film-info>summary,.film-up-next>summary):hover{--link-shimmer:100%;--shimmer-animation:link-spectrum 4s linear infinite;--shimmer-word-animation:word-spectrum 4s linear infinite}
}

@supports (background-clip:text) and (color:color-mix(in srgb,white,black)){
 :is(.film-title-trigger,.corner-menu-label,.corner-menu [data-menu-navigation] a,
 .corner-menu-close>span:first-child,.project-word-inner,.stills-page .project-title,.stills-index-link .project-title,
 .stills-filters button,.index-entry .index-title,[id="open-index"],
 .contact-links a:not([data-closing-reveal]),.about-section footer a:not([data-closing-reveal]),
 .closing-section a[data-closing-reveal]:not(.footer-instagram)>.closing-reveal-inner,.press-entry h2,.press-preview-meta a,
 .press-contact,.back-films,.award-result,.award-name,.award-year,
 .close-player>span,.close-index,.original-link,.fp-next-title,.fp-next-kicker,
 .sg-back>span,.sg-close>span,.sg-next-title,.sg-next-label,
 .stills-page-header a,.stills-page-footer a,.stills-page-next,.stills-page-next em,
 .stills-chapter-cue,.scroll-cue,[id="skip-intro"],[id="retry-loading"],
 .fp-play-label,.film-controls button,.sg-controls button,.project-index-label,.pindex-title,.pindex-close,
 .film-list-card h2,.film-list-card .film-list-client,.film-list-card .film-list-type,
 .film-gallery-index a,.film-gallery-scroll>span:first-child,.film-preview-toggle,
 .film-back,.film-info>summary>:first-child,.film-info-credits a,.film-source-link a,
 .film-document .feature-synopsis a,.film-page-header nav a,.film-page-footer a:not(.footer-instagram),
 .film-up-next-summary-label,.film-up-next-card-title,.film-gallery-open-index>span:last-child,
 .film-gallery-picker-title,.film-gallery-picker-client,[data-film-gallery-index-close]>span){
  background-image:linear-gradient(90deg,
   color-mix(in srgb,currentColor,var(--shimmer-color-1,#9081fa) var(--link-shimmer)) 0%,
   color-mix(in srgb,currentColor,var(--shimmer-color-2,#1afffe) var(--link-shimmer)) 20%,
   color-mix(in srgb,currentColor,var(--shimmer-color-3,#eddd1b) var(--link-shimmer)) 40%,
   color-mix(in srgb,currentColor,var(--shimmer-color-4,#fd8f50) var(--link-shimmer)) 60%,
   color-mix(in srgb,currentColor,var(--shimmer-color-5,#fa3335) var(--link-shimmer)) 80%,
   color-mix(in srgb,currentColor,var(--shimmer-color-6,#9081fa) var(--link-shimmer)) 100%);
  background-size:400% 100%;background-position:0% 50%;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  animation:var(--shimmer-animation,none);
 }
 /* A masked link moves its own text layer. Paint the spectrum on that layer,
    not its stationary parent, so transformed lettering stays visible. */
 .closing-section a[data-closing-reveal]{background-image:none;-webkit-text-fill-color:currentColor;animation:none}
 /* Restore the original soft palette on large titles; navigation keeps its vivid colors. */
 :is(.film-title-trigger,.project-word-inner,.stills-page .project-title,.stills-index-link .project-title,
 .index-entry .index-title,.press-entry h2,.fp-next-title,.sg-next-title,.stills-page-next em,.stills-page-name,.pindex-title,
 .film-list-card h2){
  --shimmer-color-1:#ffa77e;--shimmer-color-2:#ff789f;--shimmer-color-3:#b7a0ff;
  --shimmer-color-4:#7be6ee;--shimmer-color-5:#f1df88;--shimmer-color-6:#ffa77e;
 }
 /* Large project lettering has a slower drift than small navigation labels. */
 body :is(.film-title-trigger,.stills-page .project-title,.stills-index-link .project-title,
 .index-entry .index-title,.fp-next-title,.sg-next-title,.pindex-title,.film-list-card h2){animation-duration:12s}
 .stills-project-card .project-title .project-word-inner{background-size:calc(var(--shimmer-width,300px) * 4) 100%;animation:var(--shimmer-word-animation,none);animation-duration:12s}
 /* A gallery card fills the viewport; only its hovered lettering shimmers.
    The gallery stylesheet restores pointer events on these text-sized labels. */
 .film-list-card :is(h2,.film-list-client,.film-list-type){--link-shimmer:0%;--shimmer-animation:none;--shimmer-word-animation:none}
 @media(hover:hover){
  .film-list-card :is(h2,.film-list-client,.film-list-type):hover{--link-shimmer:100%;--shimmer-animation:link-spectrum 4s linear infinite}
 }
 /* No color transition: leaving the hit area restores the normal text immediately.
    Existing word-rise and menu-slide transitions remain independent. */
}
.film-title-trigger{width:fit-content;max-width:100%;margin-inline:auto}
@keyframes link-spectrum{from{background-position:0% 50%}to{background-position:-400% 50%}}
@keyframes word-spectrum{
 from{background-position:calc(0px - var(--shimmer-offset,0px)) 50%}
 to{background-position:calc(var(--shimmer-width,300px) * 12 - var(--shimmer-offset,0px)) 50%}
}

.award-badge:focus-visible,.index-entry:focus-visible .index-title{opacity:1}
#film-player.film-lightbox .close-player:hover{background:transparent;color:#eee7d7}
@media(hover:hover){
 .award-badge:hover,.index-entry:hover .index-title{opacity:1}
}

/* Touch and keyboard focus keep normal text and existing focus outlines.
   Reduced motion retains the hover spectrum without moving it. */
@media(prefers-reduced-motion:reduce){
 :is(.film-title-trigger,.corner-menu-label,.corner-menu [data-menu-navigation] a,
 .corner-menu-close>span:first-child,.project-word-inner,.stills-page .project-title,.stills-index-link .project-title,
 .stills-filters button,.index-entry .index-title,[id="open-index"],
 .contact-links a:not([data-closing-reveal]),.about-section footer a:not([data-closing-reveal]),
 .closing-section a[data-closing-reveal]:not(.footer-instagram)>.closing-reveal-inner,.press-entry h2,.press-preview-meta a,
 .press-contact,.back-films,.award-result,.award-name,.award-year,
 .close-player>span,.close-index,.original-link,.fp-next-title,.fp-next-kicker,
 .sg-back>span,.sg-close>span,.sg-next-title,.sg-next-label,
 .stills-page-header a,.stills-page-footer a,.stills-page-next,.stills-page-next em,
 .stills-chapter-cue,.scroll-cue,[id="skip-intro"],[id="retry-loading"],
 .fp-play-label,.film-controls button,.sg-controls button,.project-index-label,.pindex-title,.pindex-close,
 .film-list-card h2,.film-list-card .film-list-client,.film-list-card .film-list-type,
 .film-gallery-index a,.film-gallery-scroll>span:first-child,.film-preview-toggle,
 .film-back,.film-info>summary>:first-child,.film-info-credits a,.film-source-link a,
 .film-document .feature-synopsis a,.film-page-header nav a,.film-page-footer a:not(.footer-instagram),
 .film-up-next-summary-label,.film-up-next-card-title,.film-gallery-open-index>span:last-child,
 .film-gallery-picker-title,.film-gallery-picker-client,[data-film-gallery-index-close]>span){animation:none;transition:none;background-position:50% 50%}
 .stills-project-card .project-title .project-word-inner{animation:none;background-position:calc(var(--shimmer-width,300px) * -.7 - var(--shimmer-offset,0px)) 50%}
}
@media(forced-colors:active){
 /* System link/button colors remain readable when gradients are suppressed. */
 :is(a,button,a *,button *,.film-info>summary>:first-child,.film-up-next-summary-label){-webkit-text-fill-color:currentColor!important;background-image:none!important;animation:none!important}
 .wordmark:hover{color:LinkText}
}


/* Source: /wordmark-hover.css */
/* Absolute SVG contours share the native glyph positions and baseline. */
:is(.wordmark,[data-wordmark-hover])>span{position:relative}
[data-wordmark-hover]>span{display:block;width:max-content}
.wordmark-hover-baseline{display:inline-block!important;width:0!important;height:0!important;margin:0!important;padding:0!important;border:0!important;vertical-align:baseline;overflow:hidden;pointer-events:none}
.wordmark-hover-svg{position:absolute;inset:0;width:100%;height:100%;max-width:none;display:block;overflow:visible;opacity:0;pointer-events:none;-webkit-text-stroke:0}
.wordmark-hover-outline{font-style:normal;font-kerning:none;letter-spacing:0;fill:none;stroke-width:var(--wordmark-hover-stroke,.045em);-webkit-text-stroke:0;-webkit-text-fill-color:transparent}
@media(hover:hover){
 :is(.wordmark,[data-wordmark-hover]).has-wordmark-hover.is-wordmark-hover{animation:none}
 :is(.wordmark,[data-wordmark-hover]).has-wordmark-hover.is-wordmark-hover>span{-webkit-text-stroke-color:transparent}
 :is(.wordmark,[data-wordmark-hover]).has-wordmark-hover.is-wordmark-hover .wordmark-hover-svg{opacity:1}
}
@media(forced-colors:active){
 :is(.wordmark,[data-wordmark-hover]).has-wordmark-hover.is-wordmark-hover>span{-webkit-text-stroke-color:currentColor}
 :is(.wordmark,[data-wordmark-hover]).has-wordmark-hover.is-wordmark-hover .wordmark-hover-svg{display:none}
}


/* Source: /closing.css */
/* The same header wordmark returns to its opening scale for the closing scene. */
.about-section.closing-section{--closing-runway:48svh;position:relative;min-height:calc(var(--closing-stage-height,100svh) + var(--closing-runway));display:block;padding-top:0}
.closing-stage{position:sticky;top:0;min-height:100svh;display:flex;flex-direction:column;padding-top:clamp(90px,13svh,150px)}
.closing-section:not(.closing-has-motion){min-height:0}
.closing-section:not(.closing-has-motion) .closing-stage{position:relative;min-height:0;padding-top:0}
.closing-wordmark-space{height:var(--closing-name-height,27vw);flex:none;pointer-events:none}
.closing-section .about-grid{grid-template-columns:1.1fr 1fr;align-items:start;gap:8vw;margin:32px 0 36px}
.closing-section [data-closing-reveal]{overflow:hidden}
.closing-section .closing-reveal-inner{display:block;transform:translate3d(0,0,0)}
.closing-has-motion [data-closing-reveal]{pointer-events:none}
.closing-has-motion [data-closing-reveal][data-closing-visible],.closing-has-motion [data-closing-reveal]:focus-within{pointer-events:auto}
.closing-has-motion .closing-reveal-inner{transform:translate3d(0,calc((1 - var(--closing-reveal,1)) * (112% + 44px)),0)}
.closing-has-motion [data-closing-reveal]:focus-within>.closing-reveal-inner{transform:none}
.closing-section .contact-links a>.closing-reveal-inner{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;font:inherit}
.closing-section .about-copy{padding:0;max-width:520px}
.closing-section .bio{font-size:clamp(18px,1.8vw,26px);line-height:1.4}
.closing-section .contact-links{margin:0;gap:4px}
.closing-section .contact-links a{padding-bottom:0}
.closing-section footer{margin-top:auto;border-top:0}
@media(max-width:760px){
 .closing-stage{padding-top:max(102px,12svh)}
 .closing-section .about-grid{grid-template-columns:1fr;gap:24px;margin:32px 0 24px}
 .closing-section .bio{font-size:18px;max-width:36ch}
 .closing-section .contact-links{gap:2px}
 .closing-section footer{row-gap:8px;padding-top:12px}
}
@media(max-height:500px) and (orientation:landscape){
 .closing-stage{padding-top:76px}
 .closing-section .about-grid{grid-template-columns:1.1fr 1fr;gap:8vw;margin:18px 0}
 .closing-section .bio{font-size:16px}
 .closing-section .contact-links{gap:0}
 .closing-section footer{padding-top:8px;padding-bottom:max(12px,env(safe-area-inset-bottom))}
}
@media(max-width:760px) and (max-height:650px) and (orientation:portrait){
 .closing-section .about-grid{gap:16px;margin:20px 0 16px}
 .closing-section .bio{font-size:16px}
 .closing-section .contact-links{flex-direction:row;gap:12px}
 .closing-section .contact-links a{flex:1;min-width:0;font-size:9px;letter-spacing:0;gap:4px}
 .closing-section .contact-links a span{font-size:12px}
}

/* Group the utility links and align the closing details in deliberate rows. */
.closing-section .closing-footer{display:grid;grid-template-columns:minmax(0,1fr) auto 44px;grid-template-areas:"links back social" "copyright discipline discipline";column-gap:24px;row-gap:8px;align-items:center;border-top:1px solid var(--line);padding:16px 0 max(24px,env(safe-area-inset-bottom));font-size:10px}
.closing-footer .footer-links{grid-area:links;display:flex;align-items:center;gap:clamp(18px,2.5vw,36px);min-width:0}
.closing-footer .footer-links>.closing-reveal-inner{display:flex;align-items:center;gap:inherit}
.closing-section .closing-footer .closing-reveal-inner{display:block;opacity:1}
.closing-section .closing-footer .footer-links>.closing-reveal-inner{display:flex}
.closing-footer .footer-links a{display:inline-flex;white-space:nowrap}
.closing-footer .footer-copyright{grid-area:copyright;margin:0;font-size:9px;letter-spacing:.03em;opacity:.6;white-space:nowrap}
.closing-footer #year{display:inline;opacity:inherit}
.closing-footer .footer-back{grid-area:back;display:inline-flex;justify-self:end;white-space:nowrap}
.closing-footer .footer-instagram{grid-area:social;justify-self:end}
.closing-footer .footer-discipline{grid-area:discipline;justify-self:end;font-size:9px;letter-spacing:.08em}
@media(max-width:760px){
 .closing-section .closing-footer{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"links social" "copyright back";column-gap:16px;row-gap:4px;padding-top:12px}
 .closing-footer .footer-links{gap:clamp(16px,5vw,28px)}
 .closing-footer .footer-back{font-size:9px;letter-spacing:.025em}
 .closing-footer .footer-discipline{display:none}
}
@media(max-height:500px) and (orientation:landscape){
 .closing-section .closing-footer{padding-block:8px max(12px,env(safe-area-inset-bottom));row-gap:4px}
}
@media(prefers-reduced-motion:reduce){
 .closing-has-motion .closing-reveal-inner{transform:none}
 .closing-has-motion [data-closing-reveal]{pointer-events:auto}
}


/* Source: /stills-gallery.css */
/* Each photographic project gets a quiet, uncropped viewing room. */
#photo-viewer.stills-gallery{--sg-ink:#10110f;--sg-cream:#e9e5d8;--sg-gutter:clamp(20px,4vw,64px);margin:0;inset:0;width:100%;height:100dvh;max-width:none;max-height:none;padding:0;border:0;overflow:hidden;background:var(--sg-ink);color:var(--sg-cream);overscroll-behavior:contain}
#photo-viewer.stills-gallery::backdrop{background:#090a09e6}
#photo-viewer.stills-gallery[open]{display:block}
.sg-shell{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:100%;height:100%;min-width:0;background:var(--sg-ink);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
.sg-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.4fr) minmax(0,1fr);align-items:start;gap:20px;padding:28px var(--sg-gutter) 20px}
.sg-back,.sg-close{display:inline-flex;align-items:center;gap:12px;min-width:44px;min-height:44px;width:max-content;max-width:100%;padding:0;font:400 10px/1.35 DM,Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;touch-action:manipulation}
.sg-back{justify-self:start;text-align:left}.sg-back>span:first-child{font-size:22px;letter-spacing:0}
.sg-close{justify-self:end}.sg-close svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.2}
.sg-heading{text-align:center;min-width:0;padding-top:3px}
.sg-heading h2{margin:0;font:normal 650 clamp(28px,3.1vw,48px)/1.08 Unbounded,Arial,sans-serif;letter-spacing:-.055em;text-transform:uppercase;overflow-wrap:anywhere;text-wrap:balance}
.sg-category{margin:0 0 9px;font:400 9px/1.3 DM,Arial,sans-serif;letter-spacing:.13em;text-transform:uppercase;opacity:.62}
.sg-stage{min-width:0;min-height:0;overflow:hidden}
.sg-rail{position:relative;display:flex;align-items:center;gap:clamp(18px,3vw,48px);width:100%;height:100%;min-height:0;padding-block:12px;overflow-x:auto;overflow-y:hidden;direction:ltr;scroll-snap-type:x mandatory;scroll-padding-left:var(--sg-gutter);overscroll-behavior-x:contain;scrollbar-width:none;touch-action:pan-x pinch-zoom;cursor:grab;user-select:none;-webkit-user-select:none}
.sg-rail::-webkit-scrollbar,.sg-thumbnails::-webkit-scrollbar{display:none}
.sg-rail:focus-visible{outline:1px solid #e9e5d866;outline-offset:-4px}
.sg-rail.is-dragging{cursor:grabbing;scroll-snap-type:none}
.sg-rail.is-wheel-scrolling{scroll-snap-type:none}
.sg-image{position:relative;flex:none;display:flex;align-items:center;justify-content:center;width:70vw;height:100%;min-width:0;margin:0;padding:0;scroll-snap-align:start}
.sg-image img{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;border:0;border-radius:0;pointer-events:none}
.sg-footer{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;column-gap:20px;row-gap:18px;padding:22px var(--sg-gutter) 24px}
.sg-thumbnails{position:relative;grid-column:1/-1;justify-self:center;display:flex;gap:8px;width:max-content;max-width:min(780px,100%);overflow-x:auto;overflow-y:hidden;padding:4px 2px;scrollbar-width:none;overscroll-behavior-x:contain;touch-action:pan-x pinch-zoom}
.sg-thumb{flex:0 0 44px;display:flex;align-items:center;justify-content:center;width:44px;min-width:44px;height:56px;padding:3px;border:1px solid transparent;border-radius:0;opacity:.38;transition:opacity .25s,border-color .25s;touch-action:manipulation}
.sg-thumb img{width:100%;height:100%;object-fit:contain;pointer-events:none}
.sg-thumb[aria-pressed="true"]{opacity:1;border-color:#e9e5d899}.sg-thumb:hover{opacity:1}
.sg-thumb:focus-visible{outline:1px solid currentColor;outline-offset:-1px}
.sg-explore{font:italic 500 20px/1.2 'Cormorant Garamond',Georgia,serif;opacity:.55}
.sg-mobile-hint{display:none}
.sg-controls{display:flex;align-items:center;justify-content:center;gap:18px}
.sg-controls button{min-width:44px;min-height:44px;font:400 25px/1 DM,Arial,sans-serif;touch-action:manipulation}
.sg-counter{min-width:64px;text-align:center;font:400 11px/1.3 DM,Arial,sans-serif;letter-spacing:.06em;font-variant-numeric:tabular-nums;white-space:nowrap}
.sg-next-project{display:flex;justify-self:end;align-items:center;justify-content:flex-end;gap:20px;min-height:44px;max-width:100%;text-align:right;touch-action:manipulation}
.sg-next-project>span:first-child{display:flex;flex-direction:column;gap:4px;min-width:0}
.sg-next-label{font:italic 500 20px/1 'Cormorant Garamond',Georgia,serif;opacity:.65}
.sg-next-title{display:block;max-width:240px;font:normal 650 12px/1.2 Unbounded,Arial,sans-serif;letter-spacing:-.035em;text-transform:uppercase;overflow-wrap:anywhere;text-wrap:balance}
.sg-next-arrow{flex:none;font:400 25px/1 DM,Arial,sans-serif}
.sg-next-project[hidden]{display:none}
.sg-announcement{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.sg-transition-frame{display:none;pointer-events:none;position:absolute;z-index:3;color:var(--sg-cream);background:linear-gradient(currentColor,currentColor) left top/20px 1px no-repeat,linear-gradient(currentColor,currentColor) left top/1px 20px no-repeat,linear-gradient(currentColor,currentColor) right top/20px 1px no-repeat,linear-gradient(currentColor,currentColor) right top/1px 20px no-repeat,linear-gradient(currentColor,currentColor) left bottom/20px 1px no-repeat,linear-gradient(currentColor,currentColor) left bottom/1px 20px no-repeat,linear-gradient(currentColor,currentColor) right bottom/20px 1px no-repeat,linear-gradient(currentColor,currentColor) right bottom/1px 20px no-repeat}
#photo-viewer.sg-entering,#photo-viewer.sg-closing{background:transparent}
.sg-entering .sg-shell{background:var(--sg-ink);animation:sg-aperture 820ms cubic-bezier(.76,0,.24,1) both}
.sg-entering .sg-transition-frame{display:block;animation:sg-frame-open 820ms cubic-bezier(.76,0,.24,1) both}
.sg-entering .sg-heading,.sg-entering .sg-footer{animation:sg-label-arrive 560ms 240ms cubic-bezier(.22,1,.36,1) both}
.sg-entering .sg-image{animation:sg-photo-arrive 700ms cubic-bezier(.22,1,.36,1) both;animation-delay:var(--sg-arrival-delay,100ms)}
.sg-entering::backdrop{animation:sg-background-in 650ms ease-out both}
.sg-closing .sg-shell{animation:sg-leave 220ms ease-in both;pointer-events:none}
.sg-closing::backdrop{animation:sg-background-out 220ms ease-in both}
@keyframes sg-aperture{from{clip-path:inset(38% 32%)}to{clip-path:inset(0)}}
@keyframes sg-frame-open{0%{inset:38% 32%;opacity:.8}75%{opacity:.5}100%{inset:16px;opacity:0}}
@keyframes sg-photo-arrive{from{opacity:.25;transform:translateY(38px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes sg-label-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes sg-leave{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(20px)}}
@keyframes sg-background-in{from{opacity:0}to{opacity:1}}
@keyframes sg-background-out{from{opacity:1}to{opacity:0}}
@media(max-width:760px){
 #photo-viewer.stills-gallery{--sg-gutter:20px}
 .sg-header{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7px 20px;padding:10px var(--sg-gutter) 12px}
 .sg-back,.sg-close{font-size:9px;gap:9px}
 .sg-heading{grid-row:2;grid-column:1/-1;padding-top:3px}
 .sg-heading h2{font-size:clamp(26px,7.2vw,38px);line-height:1.08}
 .sg-category{margin:0 0 7px;font-size:8px}
 .sg-rail{gap:18px;scroll-padding-left:0}.sg-image{scroll-snap-align:center;scroll-snap-stop:always}
 .sg-footer{grid-template-columns:minmax(0,1fr);gap:9px;padding:10px var(--sg-gutter) 12px}
 .sg-thumbnails{grid-column:1;gap:5px;max-width:100%;padding-block:2px}
 .sg-thumb{height:48px}
 .sg-explore{display:block;grid-row:3;justify-self:center;font-size:17px}
 .sg-controls{grid-row:2;justify-self:center;gap:16px}
 .sg-next-project{grid-row:4;justify-self:center;text-align:center;justify-content:center;gap:14px}
 .sg-next-project>span:first-child{flex-direction:column;gap:4px;align-items:center}
 .sg-next-title{max-width:min(64vw,240px);font-size:11px}.sg-next-label{font-size:18px}.sg-next-arrow{font-size:22px}
 .sg-desktop-hint{display:none}.sg-mobile-hint{display:inline}
}
@media(max-width:760px) and (max-height:620px){
 .sg-footer{row-gap:6px;padding-block:8px}
 .sg-explore{font-size:16px}
}
@media(hover:none){.sg-desktop-hint{display:none}.sg-mobile-hint{display:inline}}
@media(max-height:500px) and (orientation:landscape){
 .sg-header{grid-template-columns:minmax(0,1fr) minmax(0,2.4fr) minmax(0,1fr);gap:12px;padding:4px var(--sg-gutter) 2px;align-items:center}
 .sg-heading{grid-row:1;grid-column:2;padding:0}.sg-heading h2{font-size:clamp(20px,6svh,28px);line-height:1.08}
 .sg-category{font-size:7px;margin:0 0 4px}.sg-back,.sg-close{font-size:8px}
 .sg-stage{min-height:80px}.sg-rail{gap:22px;padding-block:6px}
 .sg-footer{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:6px 18px;padding:2px var(--sg-gutter) 4px}
 .sg-thumbnails{grid-row:1;grid-column:1/-1;gap:5px;padding:1px 2px;max-width:min(680px,100%)}
 .sg-thumb{height:44px}
 .sg-explore{display:block;font-size:17px;grid-row:2}.sg-controls{grid-row:2;grid-column:2;gap:8px}
 .sg-next-project{grid-row:2;grid-column:3;justify-self:end;text-align:right;gap:10px}
 .sg-next-project>span:first-child{flex-direction:column;gap:3px;align-items:flex-end}
 .sg-next-label{font-size:16px}.sg-next-title{font-size:10px;max-width:160px}.sg-next-arrow{font-size:20px}
 .sg-back{grid-row:1;grid-column:1}.sg-close{grid-row:1;grid-column:3}
}
@media(prefers-reduced-motion:reduce){
 .sg-entering .sg-shell,.sg-closing .sg-shell,.sg-entering::backdrop,.sg-closing::backdrop,.sg-entering .sg-image,.sg-entering .sg-heading,.sg-entering .sg-footer{animation:none!important}
 .sg-entering .sg-transition-frame{display:none}
 .sg-thumb{transition:none}
}


/* Source: /play-cursor.css */
/* A quiet play cue at the mouse position, only on playable desktop previews. */
.play-cursor{display:none;position:fixed;left:0;top:0;z-index:40;width:0;height:0;pointer-events:none;color:var(--cream);opacity:0;will-change:transform}
.play-cursor-crosshair{position:absolute;width:20px;height:20px;left:-10px;top:-10px;filter:drop-shadow(0 1px 2px #000b)}
.play-cursor-crosshair::before,.play-cursor-crosshair::after{content:'';position:absolute;background:currentColor}
.play-cursor-crosshair::before{width:20px;height:1px;left:0;top:9.5px}
.play-cursor-crosshair::after{height:20px;width:1px;top:0;left:9.5px}
.play-cursor-label{position:absolute;left:22px;top:0;transform:translateY(-50%);font:500 12px/1 DM,Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;text-shadow:0 1px 6px #000b,0 0 2px #0008}
.play-cursor.label-left .play-cursor-label{left:auto;right:22px}
@media(hover:hover) and (pointer:fine) and (min-width:761px){
  .play-cursor{display:block}
  .play-cursor.is-visible{opacity:1;transition:opacity .14s ease-out}
  .film-slide.has-play-cursor,.film-slide.has-play-cursor *,.film-watch [data-film-start].has-play-cursor,.film-watch [data-film-start].has-play-cursor *,.film-list-image.has-play-cursor,.film-list-image.has-play-cursor *{cursor:none}
}
@media(max-width:1000px) and (max-height:500px){.play-cursor{display:none}.film-slide.has-play-cursor,.film-slide.has-play-cursor *,.film-watch [data-film-start].has-play-cursor,.film-watch [data-film-start].has-play-cursor *{cursor:pointer}}
@media(prefers-reduced-motion:reduce){.play-cursor.is-visible{transition:none}}

