.ycp-card-deck-grid {
  position: relative;
  display: flex;
  justify-content: center;
  width: calc(100% + 28px);
  min-height: 190px;
  margin: 10px -14px 0;
  padding: 8px 14px 12px;
  overflow-x: hidden;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.ycp-card-deck-grid::-webkit-scrollbar { display: none; }
.ycp-card-deck-grid.is-shuffling { overflow: hidden; touch-action: none; scroll-snap-type: none; }
.ycp-card-deck-grid.is-shuffling .ycp-card-deck-hit { pointer-events: none; }
.ycp-card-deck-grid.is-shuffling .ycp-card-deck-fan { animation: ycp-card-deck-stage 2.48s cubic-bezier(.2,.72,.25,1) both; }
.ycp-card-deck-grid.is-shuffling .ycp-card-deck-card {
  animation: ycp-card-deck-card 2.48s cubic-bezier(.2,.72,.25,1) both;
  animation-delay: calc(var(--shuffle-index, 0) * 1ms);
  will-change: transform;
}
.ycp-card-deck-fan { position: relative; flex: 0 0 auto; min-width: 0; }
.ycp-card-deck-card {
  position: absolute;
  z-index: 1;
  min-width: 0;
  margin: 0;
  aspect-ratio: 1122 / 1612;
  padding: 0;
  border: 0;
  background: transparent;
  transform: rotate(var(--fan-rotate, 0deg));
  transform-origin: center bottom;
  transition: none;
  pointer-events: none;
}
.ycp-card-deck-card img { display: block; width: 100%; height: 100%; object-fit: cover; border: 1px solid rgba(74, 58, 38, .2); box-shadow: 0 2px 5px rgba(42, 31, 20, .1); }
.ycp-card-deck-hit { position: absolute; padding: 0; border: 0; background: transparent; cursor: pointer; transform: rotate(var(--fan-rotate, 0deg)); transform-origin: var(--fan-origin-x, 50%) bottom; }
.ycp-card-deck-hit.is-last { transform-origin: center bottom; }
.ycp-card-deck-hit:hover { filter: drop-shadow(0 8px 8px rgba(42, 31, 20, .2)); }
.ycp-card-deck-hit:focus-visible { outline: 2px solid var(--cinnabar); outline-offset: 2px; }
@keyframes ycp-card-deck-stage {
  0%, 100% { transform: translateY(0); }
  13% { transform: translateY(-3px) scale(.985); }
  27% { transform: translateY(1px) scale(.99); }
  52% { transform: translateY(-1px) scale(1); }
  72% { transform: translateY(-2px) scale(.99); }
  86% { transform: translateY(0) scale(1); }
}
@keyframes ycp-card-deck-card {
  0% { transform: rotate(var(--fan-rotate, 0deg)) translate(0, 0); }
  13% { transform: rotate(0deg) translate(var(--stack-x), var(--stack-y)); }
  27% { transform: rotate(0deg) translate(var(--split-x), var(--split-y)); }
  43% { transform: rotate(calc(var(--cut-rotate) * -1)) translate(var(--riffle-x), var(--riffle-y)); }
  60% { transform: rotate(var(--cut-rotate)) translate(var(--cut-x), var(--cut-y)); }
  76% { transform: rotate(0deg) translate(var(--stack-x), var(--stack-y)); }
  100% { transform: rotate(var(--fan-rotate, 0deg)) translate(0, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .ycp-card-deck-grid.is-shuffling .ycp-card-deck-fan,
  .ycp-card-deck-grid.is-shuffling .ycp-card-deck-card { animation-duration: .01ms; animation-delay: 0ms; }
}
