/* One restrained, coloured print look for film photography, including future
   cards and galleries. The original image files and video pixels stay intact. */
:root{--film-photo-grade:saturate(.86) contrast(1.045) brightness(.98) sepia(.08);--film-photo-wash:linear-gradient(135deg,#123f343b 0%,#152b2220 43%,#e8ca932e 100%)}
body .project-image img,body .project-grid.is-music-collage .project-image img,body .current-art img,body .secondary-image img,body .trailer-image img,body .additional-work-image img,body .detail-gallery .detail-img,body .gallery-thumbnails img{filter:var(--film-photo-grade)!important;opacity:1}
.project-image,.current-art,.secondary-image,.trailer-image,.additional-work-image,.detail-photo{isolation:isolate}
.project-image::before,.current-art::before,.secondary-image::before,.trailer-image::before,.additional-work-image::before,.detail-photo::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:var(--film-photo-wash);mix-blend-mode:soft-light;opacity:.65}
.project-grid.is-music-collage .project-image::after,.current-art::after{z-index:2}
.project-image .project-number,.project-image .project-photo-count,.project-image .project-open,.current-art>.mono,.current-art>.frame-corner,.trailer-image>span,.additional-work-image>span{z-index:3}
.detail-photo{position:relative;overflow:hidden}
.detail-photo>img{display:block}
.secondary-image{display:block;position:relative;overflow:hidden;flex:0 0 120px;width:120px;height:74px}
.secondary-project .secondary-image>img{display:block;width:100%;height:100%;object-fit:cover}

/* The crossfade owns both image layers; they cannot drift apart or flash an
   unprepared next photograph. Text, controls and click targets never move. */
.has-film-slides{position:relative;overflow:hidden}
body .has-film-slides>img.film-slide-frame{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;animation:none!important;scale:none!important;translate:none!important;transform:none;transition:opacity .75s ease;will-change:auto}
body .has-film-slides>img.film-slide-frame.is-slide-current{z-index:0;opacity:1}
body .has-film-slides>img.film-slide-frame.is-slide-next{z-index:0;opacity:0;pointer-events:none}
body .has-film-slides>img.film-slide-frame.is-slide-next.is-slide-reveal{z-index:1;opacity:1;will-change:opacity}
body.motion-off .has-film-slides>img,.page-hidden .has-film-slides>img,.has-film-slides.film-slides-paused>img{transition:none!important;will-change:auto}

/* Wide and intimate frames form a loose film wall. The smaller fairy tale and
   larger Horníček portrait keep their deliberate contrast. */
@media(min-width:1001px){
  .project-grid:not(.is-music-collage)>.project-card:nth-of-type(4n+1){grid-column:span 7;padding-top:0}
  .project-grid:not(.is-music-collage)>.project-card:nth-of-type(4n+2){grid-column:span 5;padding-top:clamp(24px,4vw,68px)}
  .project-grid:not(.is-music-collage)>.project-card:nth-of-type(4n+3){grid-column:span 4;padding-top:0}
  .project-grid:not(.is-music-collage)>.project-card:nth-of-type(4n){grid-column:span 8;padding-top:clamp(26px,4vw,68px)}
  .project-grid:not(.is-music-collage)>.project-card:nth-of-type(4n+1) .project-image{aspect-ratio:1.78}
  .project-grid:not(.is-music-collage)>.project-card:nth-of-type(4n+2) .project-image{aspect-ratio:1.34}
  .project-grid:not(.is-music-collage)>.project-card:nth-of-type(4n+3) .project-image{aspect-ratio:1.2}
  .project-grid:not(.is-music-collage)>.project-card:nth-of-type(4n) .project-image{aspect-ratio:1.73}
}
@media(max-width:760px){.secondary-image{flex-basis:78px;width:78px;height:56px}}
@media(prefers-reduced-motion:reduce){body .has-film-slides>img.film-slide-frame{transition:none!important;will-change:auto}}
