/**
 * Case Study Page Animations
 * Viewport-based card entry animations with modal support
 */

/* ============================================
   CSS Variables
   ============================================ */
:root {
  --card-animation-duration: 0.6s;
  --card-animation-stagger: 0.1s;
  --card-animation-ease: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --card-translate-y: 40px;
  --modal-overlay-bg: rgba(0, 0, 0, 0.85);
  --modal-close-color: #ffffff;
  --card-hover-lift: -8px;
  --image-hover-scale: 1.05;
}

/* ============================================
   Base Card Animation Styles
   ============================================ */
.case-study-card {
  opacity: 0;
  transform: translateY(var(--card-translate-y));
  transition: opacity var(--card-animation-duration) var(--card-animation-ease),
              transform var(--card-animation-duration) var(--card-animation-ease),
              box-shadow 0.3s ease;
  will-change: opacity, transform;
}

.case-study-card.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger delays for multiple cards */
.case-study-card:nth-child(1) { transition-delay: 0s; }
.case-study-card:nth-child(2) { transition-delay: calc(var(--card-animation-stagger) * 1); }
.case-study-card:nth-child(3) { transition-delay: calc(var(--card-animation-stagger) * 2); }
.case-study-card:nth-child(4) { transition-delay: calc(var(--card-animation-stagger) * 3); }
.case-study-card:nth-child(5) { transition-delay: calc(var(--card-animation-stagger) * 4); }
.case-study-card:nth-child(6) { transition-delay: calc(var(--card-animation-stagger) * 5); }
.case-study-card:nth-child(7) { transition-delay: calc(var(--card-animation-stagger) * 6); }
.case-study-card:nth-child(8) { transition-delay: calc(var(--card-animation-stagger) * 7); }

/* ============================================
   Alternative Animation Variants
   ============================================ */

/* Scale up animation */
.case-study-card.animate-scale {
  transform: scale(0.95);
}

.case-study-card.animate-scale.is-visible {
  transform: scale(1);
}

/* Slide from left */
.case-study-card.animate-slide-left {
  transform: translateX(-50px);
}

.case-study-card.animate-slide-left.is-visible {
  transform: translateX(0);
}

/* Slide from right */
.case-study-card.animate-slide-right {
  transform: translateX(50px);
}

.case-study-card.animate-slide-right.is-visible {
  transform: translateX(0);
}

/* ============================================
   Image Container Styles
   ============================================ */
.case-study-image-container {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  cursor: pointer;
  display: flex !important;
  flex: 1;
  width: 100% !important;
  height: auto !important;
  min-height: 300px;
}

.case-study-image-container img {
  display: block !important;
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  transition: transform 0.4s var(--card-animation-ease),
              box-shadow 0.3s ease;
}

/* Keep existing hover effect - image zoom on hover */
.case-study-image-container:hover img {
  transform: scale(var(--image-hover-scale));
  box-shadow: 0px 20px 50px rgba(43, 56, 76, 0.25);
}

/* Click indicator */
.case-study-image-container::after {
  content: '\f065';
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0);
  background: rgba(165, 61, 255, 0.9);
  color: white;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  transition: transform 0.3s var(--card-animation-ease);
  pointer-events: none;
}

.case-study-image-container:hover::after {
  transform: translate(-50%, -50%) scale(1);
}

/* ============================================
   Modal Styles
   ============================================ */
.case-study-modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--modal-overlay-bg);
  z-index: 10000;
  opacity: 0;
  transition: opacity 0.3s ease;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

.case-study-modal.is-open {
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 1;
}

.case-study-modal-content {
  position: relative;
  max-width: 90vw;
  max-height: 90vh;
  margin: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: scale(0.9);
  transition: transform 0.3s var(--card-animation-ease);
}

.case-study-modal.is-open .case-study-modal-content {
  transform: scale(1);
}

.case-study-modal-image {
  width: auto !important;
  height: auto !important;
  max-width: 90vw;
  max-height: 85vh;
  object-fit: contain !important;
  border-radius: 8px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}

.case-study-modal-close {
  position: fixed;
  top: 20px;
  right: 20px;
  width: 50px;
  height: 50px;
  background: rgba(255, 255, 255, 0.15);
  border: none;
  border-radius: 50%;
  color: var(--modal-close-color);
  font-size: 24px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.3s ease, transform 0.3s ease;
  z-index: 10001;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.case-study-modal-close:hover {
  background: rgba(255, 255, 255, 0.3);
  transform: rotate(90deg);
}

.case-study-modal-close:active {
  transform: scale(0.95) rotate(90deg);
}

/* Close button icon using CSS */
.case-study-modal-close::before,
.case-study-modal-close::after {
  content: '';
  position: absolute;
  width: 24px;
  height: 2px;
  background: var(--modal-close-color);
  border-radius: 2px;
}

.case-study-modal-close::before {
  transform: rotate(45deg);
}

.case-study-modal-close::after {
  transform: rotate(-45deg);
}

/* Modal caption (optional) */
.case-study-modal-caption {
  position: absolute;
  bottom: -40px;
  left: 0;
  right: 0;
  text-align: center;
  color: rgba(255, 255, 255, 0.7);
  font-size: 14px;
  padding: 10px;
}

/* ============================================
   Responsive Adjustments
   ============================================ */
@media (max-width: 768px) {
  :root {
    --card-translate-y: 30px;
    --card-animation-duration: 0.5s;
  }

  .case-study-modal-close {
    top: 15px;
    right: 15px;
    width: 44px;
    height: 44px;
    font-size: 20px;
  }

  .case-study-modal-content {
    max-width: 95vw;
  }
}

@media (max-width: 480px) {
  :root {
    --card-translate-y: 20px;
  }

  .case-study-modal-close {
    top: 10px;
    right: 10px;
    width: 40px;
    height: 40px;
  }
}

/* ============================================
   Reduced Motion Support
   ============================================ */
@media (prefers-reduced-motion: reduce) {
  .case-study-card {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .case-study-card.is-visible {
    transform: none;
  }

  .case-study-image-container:hover img {
    transform: none;
  }

  .case-study-modal {
    transition: none;
  }

  .case-study-modal-content {
    transform: none;
    transition: none;
  }
}

/* ============================================
   Ovaboss Specific Styles
   ============================================ */
.about-ovaboss .case-study-image-container {
  min-height: 200px;
}

