/* A single overlapping photo ribbon; each new image fades into the previous one. */
.gallery-intro{text-align:center;padding-block:70px 45px}
.gallery-intro h1{font-size:clamp(42px,7vw,80px);line-height:1.12;font-weight:500;margin:18px 0 24px}
.gallery-intro em{color:var(--color-accent)}
.gallery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;color:var(--color-text-soft);margin-bottom:28px}
.gallery-window{--photo-width:clamp(300px,36vw,520px);--blend:64px;overflow-x:auto;overflow-y:hidden;direction:ltr;scrollbar-width:thin;scrollbar-color:var(--color-accent) transparent}
.gallery-track{display:flex;width:max-content;animation:gallery-flow 220s linear infinite}
.gallery-set{display:flex;flex:none;align-items:stretch}
.gallery-set .gallery-photo{position:relative;flex:none;width:var(--photo-width);margin:0 calc(-1 * var(--blend)) 0 0;direction:rtl;border:0;border-radius:0;box-shadow:none;transform:none;mask-image:linear-gradient(to right,transparent,#000 var(--blend));-webkit-mask-image:linear-gradient(to right,transparent,#000 var(--blend))}
.gallery-photo img{display:block;width:100%;height:clamp(360px,43vw,570px);object-fit:cover;transform:none}
.gallery-photo figcaption{display:none}
.gallery-caption{font-size:13px;color:var(--color-text-soft);text-align:center;margin-block:22px}
.gallery-end{text-align:center;padding-block:65px 90px}
.gallery-end h2{margin-bottom:28px}
.gallery-track.is-paused,.gallery-window:hover .gallery-track,.gallery-window:focus-within .gallery-track{animation-play-state:paused}
@keyframes gallery-flow{to{transform:translateX(-50%)}}
@media(max-width:600px){.gallery-intro{padding-top:45px}.gallery-window{--blend:44px}.gallery-toolbar{gap:12px;font-size:13px}}
@media(prefers-reduced-motion:reduce){.gallery-track{animation:none}.gallery-set[aria-hidden]{display:none}}

/* Fibrous, irregular paper seams over the continuous photographic strip. */
.gallery-photo::after{content:"";position:absolute;z-index:1;pointer-events:none;top:-5px;bottom:-5px;left:calc(var(--blend) - 12px);width:30px;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2232%22%20height%3D%22360%22%20viewBox%3D%220%200%2032%20360%22%20preserveAspectRatio%3D%22none%22%3E%3Cdefs%3E%3Cfilter%20id%3D%22rough%22%20x%3D%22-40%25%22%20y%3D%22-10%25%22%20width%3D%22180%25%22%20height%3D%22120%25%22%3E%3CfeTurbulence%20type%3D%22fractalNoise%22%20baseFrequency%3D%22.15%20.07%22%20numOctaves%3D%223%22%20seed%3D%2212%22%20result%3D%22n%22%2F%3E%3CfeDisplacementMap%20in%3D%22SourceGraphic%22%20in2%3D%22n%22%20scale%3D%227%22%20xChannelSelector%3D%22R%22%20yChannelSelector%3D%22G%22%2F%3E%3C%2Ffilter%3E%3Cpattern%20id%3D%22paper%22%20width%3D%226%22%20height%3D%229%22%20patternUnits%3D%22userSpaceOnUse%22%3E%3Crect%20width%3D%226%22%20height%3D%229%22%20fill%3D%22%23fffaf0%22%2F%3E%3Cpath%20d%3D%22M1%201l1%203M4%205l-1%202M0%208h2%22%20stroke%3D%22%23c7b7a0%22%20stroke-opacity%3D%22.38%22%20stroke-width%3D%22.65%22%2F%3E%3C%2Fpattern%3E%3C%2Fdefs%3E%3Cpath%20d%3D%22M10%20-20H23L19%2022%2024%2047%2019%2075%2023%20105%2018%20138%2023%20170%2019%20201%2024%20231%2018%20266%2023%20301%2019%20332%2023%20380H9L12%20330%208%20300%2012%20266%208%20230%2012%20200%207%20170%2012%20137%207%20105%2012%2074%208%2045%2012%2020Z%22%20fill%3D%22url(%23paper)%22%20filter%3D%22url(%23rough)%22%2F%3E%3Cpath%20d%3D%22M16%20-20V380%22%20stroke%3D%22url(%23paper)%22%20stroke-width%3D%225%22%2F%3E%3C%2Fsvg%3E");background-size:30px 360px;background-repeat:repeat-y;opacity:.93;filter:drop-shadow(1px 0 1px rgba(82,60,40,.13))}
.gallery-photo:nth-child(3n+2)::after{transform:scaleX(-1);background-position:0 97px;width:27px}
.gallery-photo:nth-child(3n)::after{background-position:0 213px;background-size:29px 430px}
.gallery-photo::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse at 50% 0,rgba(255,250,240,.8) 0 3px,transparent 5px) 0 0/17px 8px repeat-x,radial-gradient(ellipse at 50% 100%,rgba(255,250,240,.75) 0 3px,transparent 6px) 5px 100%/23px 9px repeat-x}
@media(max-width:600px){.gallery-photo::after{width:25px;left:calc(var(--blend) - 10px);background-size:25px 330px}}
