/* CoreStone project gallery — circular 3D coverflow */
.coverflow{
  --cf-card-w:min(68vw,38rem);
  --cf-card-h:clamp(18rem,52vw,34rem);
  position:relative;
  width:100%;
  height:calc(var(--cf-card-h) + 7rem);
  margin:clamp(2rem,5vw,4rem) auto 0;
  perspective:1200px;
  perspective-origin:50% 46%;
  overflow:hidden;
  isolation:isolate;
  touch-action:pan-y;
  user-select:none;
  -webkit-user-select:none;
  cursor:grab;
}
.coverflow.is-dragging{cursor:grabbing}
.coverflow__item{
  position:absolute;
  top:46%;
  left:50%;
  width:var(--cf-card-w);
  height:var(--cf-card-h);
  overflow:hidden;
  border-radius:var(--radius,5px);
  background:var(--ivory,#ece8e3);
  box-shadow:0 28px 70px -28px rgba(14,15,14,.5);
  transform-style:preserve-3d;
  backface-visibility:hidden;
  transition:transform 520ms cubic-bezier(.22,1,.36,1),opacity 360ms ease,filter 360ms ease;
  will-change:transform,opacity;
}
.coverflow.is-dragging .coverflow__item{transition:none}
.coverflow__item img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  pointer-events:none;
}
.coverflow__item:not(.is-active){filter:saturate(.82) brightness(.86)}
.coverflow__item.is-active{filter:none}
.coverflow__arrow--prev,.coverflow__arrow--next{
  position:absolute;
  top:46%;
  z-index:220;
  width:3.25rem;
  height:3.25rem;
  display:grid;
  place-items:center;
  transform:translateY(-50%);
  border:1px solid rgba(244,241,234,.5);
  border-radius:50%;
  background:rgba(14,15,14,.72);
  color:#fff;
  font-size:2rem;
  line-height:1;
  cursor:pointer;
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
  transition:background 180ms ease,transform 180ms ease;
}
.coverflow__arrow--prev{left:clamp(.75rem,3vw,2rem)}
.coverflow__arrow--next{right:clamp(.75rem,3vw,2rem)}
.coverflow__arrow--prev:hover,.coverflow__arrow--next:hover{background:rgba(14,15,14,.92);transform:translateY(-50%) scale(1.05)}
.coverflow__arrow--prev:disabled,.coverflow__arrow--next:disabled{display:none}
.coverflow__dots{
  position:absolute;
  left:50%;
  bottom:1.2rem;
  z-index:230;
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:.5rem;
  max-width:min(90%,42rem);
  transform:translateX(-50%);
}
.coverflow__dot{
  width:.62rem;
  height:.62rem;
  padding:0;
  border:0;
  border-radius:50%;
  background:var(--limestone,#ccc4bb);
  cursor:pointer;
  transition:transform 180ms ease,background 180ms ease;
}
.coverflow__dot.is-active{background:var(--bronze,#8a5a1e);transform:scale(1.35)}
.coverflow__sr-status{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

@media (max-width:47.99em){
  .coverflow{--cf-card-w:min(78vw,28rem);--cf-card-h:clamp(17rem,86vw,28rem);height:calc(var(--cf-card-h) + 5.5rem);perspective:900px}
  .coverflow__arrow--prev,.coverflow__arrow--next{width:2.75rem;height:2.75rem;font-size:1.65rem}
}

@media (prefers-reduced-motion:reduce){
  .coverflow__item,.coverflow__dot,.coverflow__arrow--prev,.coverflow__arrow--next{transition:none!important}
}
