/* Vaahaka page — story shelf motion */

.vaahaka-intro > h2.slide-in-right.show {
  animation: vaahaka-title-glow 1.15s ease 0.25s both;
}

@keyframes vaahaka-title-glow {
  from { text-shadow: 0 0 0 transparent; }
  to { text-shadow: 0 5px 20px rgba(31, 132, 232, 0.24); }
}

.vaahaka-intro.is-visible > h2.slide-in-right {
  transition-delay: 0s;
}

.vaahaka-row.is-visible > .story-card.fade-in:nth-child(1) {
  transition-delay: 0.06s;
}

.vaahaka-row.is-visible > .story-card.fade-in:nth-child(2) {
  transition-delay: 0.14s;
}

.vaahaka-row.is-visible > .story-card.fade-in:nth-child(3) {
  transition-delay: 0.22s;
}

.vaahaka-row.is-visible > .story-card.fade-in:nth-child(4) {
  transition-delay: 0.3s;
}

.vaahaka-row:not(.is-visible) .fade-in,
.vaahaka-row:not(.is-visible) .slide-in-right,
.vaahaka-intro:not(.is-visible) .slide-in-right {
  transition: none !important;
}

#vaahakaGrid {
  display: flex;
  flex-direction: column;
  gap: 50px;
}

.vaahaka-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  column-gap: 60px;
  row-gap: 0;
  width: 100%;
  justify-items: center;
  position: relative;
}

.vaahaka-row::after {
  content: "";
  position: absolute;
  left: 8%;
  right: 8%;
  bottom: -18px;
  height: 6px;
  border-radius: 50%;
  background: radial-gradient(ellipse at center, rgba(22, 84, 147, 0.14) 0%, transparent 72%);
  opacity: 0;
  transition: opacity 0.5s ease;
  pointer-events: none;
}

.vaahaka-row.is-visible::after {
  opacity: 1;
}

.vaahaka-row .story-card.fade-in {
  transform: translateY(40px) scale(0.88) rotate(-2.5deg);
  transition:
    opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.7s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.3s ease,
    border-color 0.3s ease;
}

.vaahaka-row .story-card.fade-in.show {
  transform: none;
}

.vaahaka-row .story-card {
  border-color: rgba(22, 84, 147, 0.12);
  box-shadow: 0 4px 16px rgba(22, 84, 147, 0.06);
  transition:
    opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.7s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.3s ease,
    border-color 0.3s ease;
}

.vaahaka-row .story-card.fade-in.show:hover {
  transform: translateY(-10px) scale(1.04) rotate(0deg);
  box-shadow: 0 18px 36px rgba(31, 132, 232, 0.2);
  border-color: rgba(31, 132, 232, 0.35);
}

.vaahaka-row .story-card .cover-wrap {
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  transform-origin: center bottom;
}

.vaahaka-row .story-card.fade-in.show:hover .cover-wrap {
  transform: scale(1.05) rotate(-2deg);
}

.vaahaka-row .story-card .add-cart {
  transition:
    background 0.25s ease,
    transform 0.25s ease,
    box-shadow 0.25s ease;
}

.vaahaka-row .story-card.fade-in.show:hover .add-cart {
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(29, 80, 130, 0.3);
}

@media (prefers-reduced-motion: reduce) {
  .vaahaka-row .story-card.fade-in,
  .vaahaka-intro > h2.slide-in-right {
    opacity: 1;
    transform: none;
    transition: none;
    animation: none;
  }

  .vaahaka-row .story-card.fade-in.show:hover,
  .vaahaka-row .story-card.fade-in.show:hover .cover-wrap,
  .vaahaka-row .story-card.fade-in.show:hover .add-cart {
    transform: none;
  }

  .vaahaka-row::after {
    display: none;
  }
}

@media (max-width: 1100px) {
  .vaahaka-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 24px;
    row-gap: 36px;
  }
}

@media (max-width: 768px) {
  #vaahakaGrid {
    gap: 32px;
  }

  .vaahaka-row {
    grid-template-columns: minmax(0, 1fr);
    column-gap: 0;
    row-gap: 28px;
    width: 100%;
    max-width: 100%;
    padding: 0;
  }

  .vaahaka-row .story-card {
    width: 100%;
    max-width: min(300px, 100%);
    box-sizing: border-box;
  }

  .story-card .cover-wrap img {
    max-width: min(220px, 78vw);
    max-height: 240px;
  }

  .story-card .add-cart {
    white-space: normal;
    line-height: 1.35;
    min-height: 40px;
  }
}
