/* Match the existing step-card image frames at every breakpoint. */
.step-icon{display:block;max-width:100%;width:120px;height:105px;margin:0 auto -2px}
.gallery-deck{position:relative;isolation:isolate}
.icon-definitions{position:absolute}
.gallery-card{position:absolute;left:12%;top:8%;width:80%;height:84%;overflow:visible;transform-origin:50% 65%;animation:photo-shuffle 2.7s cubic-bezier(.45,0,.25,1) infinite,photo-order 2.7s steps(1,end) infinite}
.gallery-card-a{--card-delay:0s;transform:translate(3%,4%) rotate(0deg);z-index:3}
.gallery-card-b{--card-delay:-1.8s;transform:translate(-3%,-3%) rotate(-5deg) scale(.96);z-index:2}
.gallery-card-c{--card-delay:-.9s;transform:translate(-10%,-9%) rotate(-12deg) scale(.92);z-index:1}
.gallery-card{animation-delay:var(--card-delay)}
@keyframes photo-shuffle{
  0%,16%,100%{transform:translate(3%,4%) rotate(0deg) scale(1)}
  23%{transform:translate(13%,-10%) rotate(5deg) scale(1.025)}
  31%{transform:translate(18%,-7%) rotate(7deg) scale(.98)}
  42%,54%{transform:translate(-10%,-9%) rotate(-12deg) scale(.92)}
  67%,82%{transform:translate(-3%,-3%) rotate(-5deg) scale(.96)}
}
@keyframes photo-order{0%{z-index:3}32%{z-index:1}64%{z-index:2}96%,100%{z-index:3}}
/* The exact source PNG and its connected texture rig share a fixed footprint. */
.pullup-walk{position:relative;overflow:hidden;contain:layout paint;isolation:isolate}
.step-card .pullup-walk>.walk-original,.pullup-walk>.walk-source-canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;margin:0;display:block}
.pullup-walk>.walk-source-canvas{visibility:hidden}
.pullup-walk.is-walking>.walk-original{visibility:hidden}
.pullup-walk.is-walking>.walk-source-canvas{visibility:visible}
@media(min-width:1101px){.step-icon{width:150px;height:clamp(120px,10vw,145px)}}
@media(max-width:760px){.step-icon{height:88px}}
@media(max-width:480px){.step-icon{grid-row:1/3;grid-column:1;width:85px;height:100px}}
@media(prefers-reduced-motion:reduce){
  .gallery-card{animation:none}
}
