/* 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:transparent;
  box-shadow:0 28px 70px -28px rgba(14,15,14,.5);
  transform-style:preserve-3d;
  backface-visibility:hidden;
  -webkit-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:calc(100% + 2px);
  height:calc(100% + 2px);
  max-width:none;
  object-fit:cover;
  display:block;
  pointer-events:none;
  margin:-1px;
}
.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}

/* Tier 1 "link mode" caption — used on the featured-projects showcase,
   where each coverflow card is a different project rather than one photo
   in a single project's gallery. */
.coverflow__caption{
  position:absolute;
  left:0; right:0; bottom:0;
  z-index:2;
  padding:1.75rem 1.1rem .9rem;
  display:flex;
  flex-direction:column;
  gap:.2rem;
  color:#fff;
  background:linear-gradient(180deg,rgba(8,8,8,0) 0%,rgba(8,8,8,.82) 78%);
  opacity:0;
  transition:opacity 220ms ease;
  pointer-events:none;
}
.coverflow__item.is-active .coverflow__caption{opacity:1}
.coverflow__caption .project-code{margin-bottom:.15rem}
.coverflow__caption strong{font-family:var(--font-display,serif);font-size:1.05rem;line-height:1.2}
.coverflow__caption span:last-child{font-size:.78rem;letter-spacing:.03em;color:var(--limestone,#ccc4bb)}

@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}
}
