/* Photographs drift as intact surfaces; film previews keep their native frame. */
.floating-gallery-ready #series,
.floating-gallery-ready #commissions{overflow-x:clip;overflow-y:clip}
.floating-surface{position:relative;transform-origin:50% 50%;backface-visibility:hidden}
.floating-surface>.commission-media{box-shadow:0 var(--floating-shadow-y,10px) 30px rgb(20 22 20 / var(--floating-shadow-alpha,.07))}
.floating-gallery-ready #commissions{padding-top:20px}
#series>.commission-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}
.gallery-motion-toggle{flex:none;border:0;background:none;color:var(--muted);font:10px/1.5 "Helvetica Neue",Helvetica,Arial,sans-serif;padding:6px 0;cursor:pointer}
.gallery-motion-toggle[hidden]{display:none}
.gallery-motion-toggle:focus-visible,.preview-motion-toggle:focus-visible{outline:1px solid currentColor;outline-offset:4px}
#series .series-cover.cycle-ready>img{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;object-fit:cover}
#series .series-cycle-tools{display:flex;align-items:center;gap:8px;flex:none;margin-left:auto}
.series-cycle-label{font:10px/1.5 "Helvetica Neue",Helvetica,Arial,sans-serif;color:var(--muted)}
.series-cycle-next{border:0;background:transparent;padding:4px 7px;min-width:32px;min-height:32px;cursor:pointer;font:18px/1 sans-serif;color:inherit}
.series-cycle-next:focus-visible{outline:1px solid currentColor;outline-offset:1px}
.series-cycle-next:active{transform:scale(.97)}
#series .series-index-card:has(.series-cycle-tools) .detail-hint{display:none}
.ple-editing .floating-surface{transform:none!important;box-shadow:none}
.ple-editing .series-cycle-tools{visibility:hidden}
@media(max-width:680px){
 .floating-gallery-ready #commissions{padding-top:10px}
 .gallery-motion-toggle{font-size:9px}
 #series .series-cycle-tools{gap:2px}
 .series-cycle-label{font-size:9px}
 #series .archive-photo-caption{gap:5px}
}
@media(prefers-reduced-motion:reduce){.series-cycle-next:active{transform:none}}

/* The static arrangement remains the edit map; moving surfaces own pointer targets. */
.gallery-depth-flow .series-index-grid,.gallery-depth-flow .moodboard-grid{position:relative;isolation:isolate}
.gallery-depth-flow [data-floating="ready"]{position:relative;pointer-events:none}
.gallery-depth-flow .floating-surface{pointer-events:auto}
.gallery-depth-flow .floating-surface>.commission-media{box-shadow:0 14px 32px rgb(20 22 20 / .09)}
.gallery-depth-flow.ple-editing [data-floating="ready"]{pointer-events:auto}
.gallery-depth-flow.ple-editing .floating-surface{transform:none!important}

/* Endless space uses existing surfaces, with compact controls always within reach. */
.gallery-depth-flow .moodboard-grid,.gallery-depth-flow .series-index-grid{align-content:start}
.gallery-depth-flow .floating-surface{cursor:grab;touch-action:pan-y}
.gallery-depth-flow .floating-surface img{-webkit-user-drag:none;user-select:none}
.gallery-dragging,.gallery-dragging .floating-surface,.gallery-dragging .floating-surface *{cursor:grabbing!important;user-select:none}
.gallery-flow-controls{position:fixed;bottom:18px;left:22px;z-index:1100;display:flex;align-items:center;gap:14px;padding:8px 12px;background:rgb(246 245 241 / .92);color:#454641;border-radius:2px;font:10px/1.4 "Helvetica Neue",Helvetica,Arial,sans-serif;letter-spacing:.015em}
.gallery-flow-controls button{border:0;padding:5px 0;background:none;color:inherit;font:inherit;cursor:pointer}
.gallery-flow-controls button:focus-visible{outline:1px solid currentColor;outline-offset:3px}
.gallery-flow-controls[hidden]{display:none}
.flow-drag-hint{opacity:.5}
.ple-editing .floating-surface{cursor:auto;touch-action:auto}
@media(max-width:680px){.gallery-flow-controls{left:12px;bottom:12px;gap:14px}.flow-drag-hint{display:none}}

/* Captions travel with their image but retain their screen-space type size. */
.gallery-depth-flow .floating-surface>.work-credit,
.gallery-depth-flow .floating-surface>.archive-photo-caption,
.gallery-depth-flow .floating-surface>.commission-caption{transform:scale(var(--floating-label-scale,1));transform-origin:0 0}
.gallery-depth-flow .floating-surface .film-detail-cue{transform:scale(var(--floating-label-scale,1));transform-origin:100% 100%}
.ple-editing .floating-surface>.work-credit,
.ple-editing .floating-surface>.archive-photo-caption,
.ple-editing .floating-surface>.commission-caption,
.ple-editing .floating-surface .film-detail-cue{transform:none!important}

/* Photographic overlays mix within the gallery; original-image dialogs stay intact. */
.gallery-depth-flow.gallery-blend .moodboard-grid>[data-floating],
.gallery-depth-flow.gallery-blend .series-index-grid>[data-floating]{mix-blend-mode:multiply}
.gallery-flow-controls .flow-blend[aria-pressed="true"]{text-decoration:underline;text-underline-offset:3px}
.gallery-depth-flow.ple-editing [data-floating]{mix-blend-mode:normal}

/* Fixed screen-size labels: quiet catalog text, separate from photographic scale. */
.gallery-depth-flow .floating-surface>.work-credit,
.gallery-depth-flow #series .archive-photo-caption .work-credit{
 font:400 9px/1.5 "Avenir Next",Avenir,"Helvetica Neue",Arial,sans-serif;
 letter-spacing:.025em;color:#74736e;text-shadow:none;-webkit-text-stroke:0;
}
.gallery-depth-flow #series .archive-photo-caption h3,
.gallery-depth-flow .floating-surface>.commission-caption h3{
 font:400 11px/1.45 "Avenir Next",Avenir,"Helvetica Neue",Arial,sans-serif;
 letter-spacing:.015em;text-shadow:none;-webkit-text-stroke:0;
}
.gallery-depth-flow #series .archive-photo-caption .zh{font-size:9px;line-height:1.5}
.gallery-depth-flow #series .archive-photo-caption .detail-hint,
.gallery-depth-flow .series-cycle-label{font:400 9px/1.5 "Avenir Next",Avenir,"Helvetica Neue",Arial,sans-serif;letter-spacing:.025em}
.gallery-depth-flow .floating-surface .film-detail-cue{font:400 12px/1 "Avenir Next",Avenir,"Helvetica Neue",Arial,sans-serif}
.gallery-flow-controls{font:400 9px/1.5 "Avenir Next",Avenir,"Helvetica Neue",Arial,sans-serif;letter-spacing:.025em}

/* One readable foreground photograph stays clear; other layers retain their blend. */
.gallery-depth-flow.gallery-blend .moodboard-grid>[data-floating].is-gallery-keeper,
.gallery-depth-flow.gallery-blend .series-index-grid>[data-floating].is-gallery-keeper{mix-blend-mode:normal}
