.photography-page{min-height:100vh;overflow-x:hidden;overscroll-behavior-x:none}
.photography-page .portfolio-header{mix-blend-mode:normal}
.photo-gallery{--gallery-gutter:clamp(20px,5vw,76px);position:relative;height:2600vh}
.gallery-sticky{position:sticky;top:0;height:100svh;min-height:560px;padding:68px var(--gallery-gutter) 20px;display:grid;grid-template-rows:34px minmax(0,1fr) auto;overflow:hidden;isolation:isolate}
.gallery-heading{z-index:6;display:flex;justify-content:space-between;align-items:center;height:34px;padding:0 0 10px;border-bottom:1px solid var(--line);background:var(--paper);font:10px 'DM Mono',monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.gallery-heading-count{color:var(--ink)}
.photo-stage{position:relative;min-height:0;overflow:visible}
.photo-card{position:absolute;left:50%;top:44%;width:min(38vw,640px);margin:0;transform-origin:center center;will-change:transform,opacity}
.photo-card--portrait{top:31%}
.photo-frame{height:min(34svh,340px);width:100%;display:grid;place-items:center}
.photo-card--portrait .photo-frame{height:min(44svh,320px)}
.photo-card--portrait .photo-frame img{width:auto;height:auto;max-width:100%;max-height:100%}
.photo-frame img{display:block;width:100%;height:100%;object-fit:contain}
.gallery-controls{align-self:end;width:100%;padding:12px 0 0;border-top:1px solid var(--line);background:var(--paper)}
.gallery-status{display:flex;align-items:baseline;gap:8px;font:10px 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.gallery-status .current-count{color:var(--ink)}
.status-caption{margin-left:auto}
.film-strip{height:30px;position:relative;margin:9px 0 2px;overflow:visible}
.film-strip-track{position:absolute;left:0;right:0;top:14px;height:1px;background:var(--line)}
.film-strip-buttons{position:relative;height:100%;display:flex;justify-content:space-between;align-items:center;min-width:100%}
.film-button{position:relative;z-index:1;width:14px;height:14px;flex:0 0 14px;border:0;padding:0;background:var(--paper);cursor:pointer;display:grid;place-items:center}
.film-button::before{content:"";width:3px;height:6px;background:rgba(29,37,27,.34);transition:height .2s ease,width .2s ease,background .2s ease}
.film-button[aria-current="true"]::before{width:2px;height:22px;background:var(--ink)}
.film-button:hover::before{height:12px;background:var(--ink)}
.film-button:focus-visible{outline:1px solid var(--ink);outline-offset:3px}
.film-strip::after{content:"";position:absolute;z-index:2;top:2px;left:var(--film-progress,0%);height:26px;width:1px;background:var(--ink);transform:translateX(-50%);pointer-events:none}
.portfolio-footer{position:relative;z-index:1}
.photo-card--main{cursor:zoom-in}
.photo-lightbox{position:fixed;inset:0;margin:auto;box-sizing:border-box;width:min(94vw,1400px);height:min(92svh,1000px);max-width:none;max-height:none;padding:46px 18px 18px;border:1px solid var(--line);background:var(--paper);color:var(--ink);overflow:hidden}
.photo-lightbox::backdrop{background:rgba(22,25,22,.86)}
.photo-lightbox img{display:block;width:100%;height:100%;object-fit:contain}
.photo-lightbox-close{position:absolute;top:8px;right:12px;border:0;padding:4px 8px;background:transparent;color:var(--ink);font:32px/1 'DM Sans',sans-serif;cursor:pointer}
.photo-lightbox-close:focus-visible{outline:1px solid var(--ink);outline-offset:2px}
@media(max-width:760px){
  .photography-page .portfolio-header{grid-template-columns:1fr auto;top:14px;left:16px;right:16px}
  .photography-page .portfolio-header nav{display:flex;gap:12px;font-size:10px}
  .photography-page .portfolio-header nav{grid-column:2;grid-row:1;justify-self:end}
  .photography-page .portfolio-count{display:none}
  .photo-gallery{--gallery-gutter:16px}
  .gallery-sticky{min-height:500px;padding:58px 16px 14px;grid-template-rows:30px minmax(0,1fr) auto}
  .gallery-heading{height:30px;font-size:9px;padding-bottom:8px}
  .photo-card{top:43%;width:78vw}
  .photo-card--portrait{top:31%}
  .photo-frame{height:min(30svh,270px)}
  .photo-card--portrait .photo-frame{height:min(40svh,280px)}
  .gallery-controls{padding-top:9px}
  .gallery-status{font-size:9px}
  .film-button{width:10px;flex-basis:10px}
}
@media(max-width:390px){.photo-card{width:82vw}.photo-frame{height:min(28svh,230px)}.photo-card--portrait .photo-frame{height:min(38svh,260px)}.film-button{width:8px;flex-basis:8px}}
@media(prefers-reduced-motion:reduce){.film-button::before{transition:none}}
