/* Gallery: progressive enhancement. Without JS or with reduced motion it is a normal, readable gallery. */
.scroll-gallery{position:relative;background:var(--paper);scroll-margin-top:0;isolation:isolate;--photo-zoom-t:clamp(0,calc((var(--gallery-p,0) - .65)/.29),1);--photo-zoom:calc(var(--photo-zoom-t)*var(--photo-zoom-t)*(3 - 2*var(--photo-zoom-t)))}
.gallery-sticky{position:relative;padding:50px 6.5% 0}
.gallery-top{position:relative;z-index:4}
.gallery-heading{display:flex;justify-content:space-between;align-items:flex-end;padding:55px 0 40px}
.gallery-heading p{font-size:13px;color:var(--muted);margin:0 5% 12px 20px}
.gallery-stage{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:30px;padding:25px 0 70px}
.float-card{position:relative;display:block;padding:0;background:none;text-align:left;min-width:0;touch-action:pan-y}
.card-shell{display:block;position:relative;width:100%;height:100%;background:#d6d4c7;overflow:hidden;box-shadow:1px 2px 0 #b8b7aa,3px 5px 0 #cfccbf,12px 25px 35px -12px #30372b40}
.card-shell:after{content:'';position:absolute;inset:0;pointer-events:none;background:none;border:1px solid #ffffff55}
.card-shell>img{width:100%;height:100%;aspect-ratio:3/4;object-fit:cover;display:block;filter:none!important;transition:filter .5s}
/* Photos keep their original colors, including on hover. */
.float-caption{position:absolute;bottom:0;left:0;right:0;padding:55px 20px 21px;display:flex;align-items:center;justify-content:flex-end;background:none;color:#fffef4}
.float-caption strong{display:block;font:24px/1.2 var(--serif);letter-spacing:-.05em;font-weight:400}
.float-caption small{font-size:7px;letter-spacing:.15em;display:block;margin-top:9px}
.float-arrow{height:32px;width:32px;border:1px solid #fff7;border-radius:50%;display:grid;place-items:center;font-size:18px;background:#30372b80;transition:background .3s}
.float-card:hover .float-arrow{background:#30372bb3}
.card-number{position:absolute;top:15px;left:16px;font-size:9px;letter-spacing:.12em;background:#eeece5d9;padding:4px 7px;color:var(--ink)}
.gallery-footer{display:flex;justify-content:space-between;align-items:center;padding-bottom:35px;gap:20px}
.gallery-instruction{display:flex;align-items:center;gap:13px;font-size:8px;letter-spacing:.13em}
.scroll-dial{height:34px;width:34px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:17px}
.chapter-meter{display:flex;align-items:center;gap:12px;font-size:8px;color:var(--muted)}
.chapter-track{width:95px;height:1px;background:var(--line);position:relative}.chapter-track i{position:absolute;left:0;top:-1px;height:3px;width:100%;transform:scaleX(var(--gallery-p,0));transform-origin:left;background:var(--olive)}
.gallery-disclaimer{font-size:7px;letter-spacing:.12em;color:var(--muted)}
.gallery-material{margin:0 -7.47%;width:auto}
.gallery-skip{position:absolute;right:6.5%;top:110px;z-index:12;font-size:9px;letter-spacing:.04em;display:flex;gap:15px;align-items:center;color:var(--muted)}
/* Pinning preserves native scroll: the outer track supplies scroll distance; the scene stays in view. */
.js-ready.motion-gallery .scroll-gallery{height:380svh;height:calc(var(--scene-vh,100svh)*3.8)}
.js-ready.motion-gallery .gallery-sticky{position:sticky;top:0;height:var(--scene-vh,100svh);min-height:0;padding:0;overflow:hidden;perspective:1600px}
.js-ready.motion-gallery .gallery-top{position:absolute;top:35px;left:6.5%;right:6.5%;opacity:var(--ui-opacity,1)}
.js-ready.motion-gallery .gallery-heading{position:absolute;top:14%;left:6.5%;right:6.5%;padding:0;z-index:1;opacity:var(--heading-opacity,1);transform:translateY(var(--heading-y,0px));will-change:transform,opacity;pointer-events:none}
.js-ready.motion-gallery .gallery-heading h2{font-size:clamp(60px,7vw,112px)}
.js-ready.motion-gallery .gallery-heading p{font-size:12px;align-self:center;line-height:1.8;max-width:190px;margin-right:3%}
.js-ready.motion-gallery .gallery-stage{position:absolute;inset:0;padding:0;display:block;perspective:1600px;transform-style:preserve-3d;z-index:3;pointer-events:none}
.js-ready.motion-gallery .float-card{position:absolute;left:50%;top:50%;width:var(--card-w,28vw);height:var(--card-h,53vh);will-change:transform,opacity;transform-origin:center;pointer-events:auto;backface-visibility:hidden}
.js-ready.motion-gallery .card-shell{box-shadow:1px 2px 0 #aaa99c,4px 6px 0 #c9c7b9,20px 35px 45px -20px #343c2b55;animation:none}
.js-ready.motion-gallery .float-card:nth-child(2) .card-shell{animation-delay:-3s}.js-ready.motion-gallery .float-card:nth-child(3) .card-shell{animation-delay:-6s}
.js-ready.motion-gallery .card-shell>img{aspect-ratio:auto;height:100%}
/* Override the legacy inline filter while preserving the material transition timing. */
.js-ready.motion-gallery .texture-card .card-shell>img{filter:saturate(calc(1 - .5*var(--photo-zoom))) brightness(calc(1 - .35*var(--photo-zoom)))!important}
.js-ready.motion-gallery .texture-card .card-shell{box-shadow:1px 2px 0 #aaa99c,4px 6px 0 #c9c7b9,20px 35px 45px -20px #343c2b55;animation:none}
.js-ready.motion-gallery .texture-card .float-caption,.js-ready.motion-gallery .texture-card .card-number{opacity:var(--texture-label,1)}
.js-ready.motion-gallery .texture-card .card-shell:after{opacity:var(--texture-label,1)}
.js-ready.motion-gallery .gallery-footer{position:absolute;left:6.5%;right:6.5%;bottom:26px;padding:0;z-index:4;opacity:var(--ui-opacity,1);pointer-events:none}
.js-ready.motion-gallery .gallery-material{position:absolute;inset:0;height:100%;width:100%;margin:0;z-index:6;background:transparent;overflow:hidden;pointer-events:none}
.js-ready.motion-gallery .gallery-material>img{height:100%;top:0;filter:brightness(.65) saturate(.5);opacity:var(--material-bg,0);transform:none!important}
.js-ready.motion-gallery .gallery-material .material-shade{opacity:var(--material-copy,0)}
.js-ready.motion-gallery .gallery-material .material-content{opacity:var(--material-copy,0);transform:translateY(var(--material-y,35px));padding-top:50px;padding-bottom:50px;will-change:opacity,transform;pointer-events:none}
.js-ready.motion-gallery .gallery-material h2{font-size:clamp(58px,7.7vw,114px)}
.js-ready.motion-gallery .gallery-material.is-active .circle-link{pointer-events:auto}
.js-ready.motion-gallery .gallery-skip{top:91px;color:var(--skip-color,var(--muted))}
@keyframes gallery-breathe{0%,100%{translate:0 0}50%{translate:0 -9px}}
@media(max-width:1000px){.js-ready.motion-gallery .gallery-heading{top:17%}.js-ready.motion-gallery .gallery-heading p{margin-right:0}.float-caption{padding:45px 14px 17px}.float-caption strong{font-size:21px}.float-caption small{font-size:6px}.float-arrow{width:28px;height:28px}}
@media(max-width:700px){.gallery-sticky{padding:40px 6% 0}.gallery-heading{display:block;padding:45px 0 30px}.gallery-heading p{margin:25px 0 0;font-size:12px}.gallery-stage{grid-template-columns:1fr;gap:35px;padding-bottom:40px}.float-card{width:85%}.float-card:nth-child(2){margin-left:auto}.float-card:nth-child(3){width:90%}.float-caption strong{font-size:25px}.gallery-footer{padding-bottom:30px}.chapter-meter{display:none}.gallery-disclaimer{font-size:6px}.gallery-instruction{font-size:6px;gap:10px}.gallery-material{margin:0 -6.82%}.gallery-skip{right:6%;top:93px;font-size:8px}.js-ready.motion-gallery .scroll-gallery{height:calc(var(--scene-vh,100svh)*3.3)}.js-ready.motion-gallery .gallery-top{left:6%;right:6%;top:27px}.js-ready.motion-gallery .gallery-heading{top:16%;left:6%;right:6%;display:block}.js-ready.motion-gallery .gallery-heading h2{font-size:clamp(48px,12vw,78px)}.js-ready.motion-gallery .gallery-heading p{font-size:10px;margin:18px 0 0}.js-ready.motion-gallery .float-card{margin:0;width:var(--card-w);height:var(--card-h)}.js-ready.motion-gallery .float-caption{padding:40px 10px 13px}.js-ready.motion-gallery .float-caption strong{font-size:18px}.js-ready.motion-gallery .float-caption small{font-size:5px;letter-spacing:.08em;margin-top:7px}.js-ready.motion-gallery .float-arrow{width:23px;height:23px;font-size:14px}.js-ready.motion-gallery .card-number{font-size:7px;top:10px;left:10px}.js-ready.motion-gallery .gallery-footer{left:6%;right:6%;bottom:24px}.js-ready.motion-gallery .gallery-skip{top:80px}.js-ready.motion-gallery .gallery-material .material-content{padding:35px 6%}.js-ready.motion-gallery .gallery-material h2{font-size:clamp(44px,12vw,70px)}.js-ready.motion-gallery .gallery-material .eyebrow{max-width:230px;line-height:1.7}}
@media(max-height:620px) and (min-width:701px){.js-ready.motion-gallery .gallery-heading{top:17%}.js-ready.motion-gallery .gallery-heading h2{font-size:65px}.js-ready.motion-gallery .gallery-heading p{font-size:10px}.js-ready.motion-gallery .gallery-sticky{min-height:0}.js-ready.motion-gallery .gallery-top{top:20px}.js-ready.motion-gallery .gallery-skip{top:65px}}
@media(prefers-reduced-motion:reduce){.gallery-instruction{display:none}.chapter-meter{display:none}.gallery-skip{display:none}}

/* Straight-row composition: no independent floating or rotation in the collection. */
.js-ready.motion-gallery .float-card .card-shell{animation:none;translate:none}
@media(max-width:700px){
  .js-ready.motion-gallery .float-caption{padding:30px 7px 9px}
  .js-ready.motion-gallery .float-caption strong{font-size:13px;line-height:1.25}
  .js-ready.motion-gallery .float-caption small{font-size:4px;letter-spacing:.04em;margin-top:5px}
  .js-ready.motion-gallery .float-arrow{display:none}
  .js-ready.motion-gallery .card-number{font-size:6px;top:7px;left:6px;padding:3px 5px}
}
@media(min-width:701px){.js-ready.motion-gallery .gallery-heading h2{font-size:clamp(44px,4.4vw,70px)}}
