@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.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)}
.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}}
