.r4v5-puzzle-gallery{
  --r4v5-puzzle-gap:12px;
  --r4v5-puzzle-radius:18px;
  display:block;
  width:100%;
  position:relative;
  padding:clamp(18px,3vw,40px);
  box-sizing:border-box;
  overflow:hidden
}
.r4v5-puzzle-gallery__grid{
  display:grid;
  width:100%;
  max-width:1480px;
  margin:0 auto;
  gap:var(--r4v5-puzzle-gap);
  position:relative;
  overflow:hidden;
  align-content:start
}
.r4v5-puzzle-gallery__item{
  min-width:0;
  min-height:0;
  width:100%;
  height:100%;
  margin:0;
  padding:0;
  border:0;
  border-radius:var(--r4v5-puzzle-radius);
  overflow:hidden;
  background:#e5e7eb;
  cursor:zoom-in;
  opacity:0;
  transform:scale(.965);
  transition:opacity .28s ease,transform .34s cubic-bezier(.2,.72,.22,1);
  box-shadow:0 12px 32px rgba(15,23,42,.08)
}
.r4v5-puzzle-gallery__item.is-r4v5-puzzle-visible{
  opacity:1;
  transform:scale(1)
}
.r4v5-puzzle-gallery__item[hidden]{
  display:none!important
}
.r4v5-puzzle-gallery__item img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:cover;
  object-position:center;
  user-select:none;
  -webkit-user-drag:none;
  transition:transform .55s cubic-bezier(.2,.72,.22,1)
}
.r4v5-puzzle-gallery__item:hover img{
  transform:scale(1.035)
}
.r4v5-puzzle-gallery__item:focus-visible{
  outline:3px solid #60a5fa;
  outline-offset:3px
}
.r4v5-puzzle-lightbox{
  position:fixed;
  inset:0;
  z-index:2147483000;
  display:grid;
  place-items:center;
  padding:24px;
  opacity:0;
  visibility:hidden;
  transition:opacity .22s ease,visibility .22s ease
}
.r4v5-puzzle-lightbox.is-open{
  opacity:1;
  visibility:visible
}
.r4v5-puzzle-lightbox__backdrop{
  position:absolute;
  inset:0;
  border:0;
  background:rgba(2,6,23,.94);
  cursor:zoom-out
}
.r4v5-puzzle-lightbox__stage{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
  width:min(94vw,1500px);
  height:min(90vh,1050px);
  pointer-events:none
}
.r4v5-puzzle-lightbox__image{
  display:block;
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  object-fit:contain;
  border-radius:14px;
  box-shadow:0 30px 90px rgba(0,0,0,.45);
  pointer-events:auto
}
.r4v5-puzzle-lightbox__close,
.r4v5-puzzle-lightbox__nav{
  position:absolute;
  z-index:2;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.24);
  background:rgba(15,23,42,.72);
  color:#fff;
  cursor:pointer;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px)
}
.r4v5-puzzle-lightbox__close{
  top:18px;
  right:18px;
  width:48px;
  height:48px;
  border-radius:999px;
  font-size:30px;
  line-height:1
}
.r4v5-puzzle-lightbox__nav{
  top:50%;
  width:52px;
  height:64px;
  border-radius:16px;
  transform:translateY(-50%);
  font-size:36px
}
.r4v5-puzzle-lightbox__prev{left:18px}
.r4v5-puzzle-lightbox__next{right:18px}
.r4v5-puzzle-lightbox__counter{
  position:absolute;
  z-index:2;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  padding:8px 12px;
  border-radius:999px;
  background:rgba(15,23,42,.72);
  color:#fff;
  font:700 12px/1.2 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.04em
}
@media(max-width:767px){
  .r4v5-puzzle-gallery{padding:14px}
  .r4v5-puzzle-lightbox{padding:12px}
  .r4v5-puzzle-lightbox__stage{width:96vw;height:86vh}
  .r4v5-puzzle-lightbox__close{top:10px;right:10px}
  .r4v5-puzzle-lightbox__nav{width:44px;height:56px;font-size:30px}
  .r4v5-puzzle-lightbox__prev{left:8px}
  .r4v5-puzzle-lightbox__next{right:8px}
}
@media(prefers-reduced-motion:reduce){
  .r4v5-puzzle-gallery__item,
  .r4v5-puzzle-gallery__item img,
  .r4v5-puzzle-lightbox{transition:none!important}
}