/**
 * Azure Stream Theme - Animations
 * Card hover effects, sidebar transitions, and smooth animations
 */

/* ===========================
   Video Card Hover Animation
   =========================== */

.azure-card {
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.azure-card:hover {
  transform: translateY(-6px);
}

/* Image scale on hover */
.azure-card-image {
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.azure-card:hover .azure-card-image {
  transform: scale(1.05);
}

/* Play button overlay animation */
.azure-play-overlay {
  opacity: 0;
  transform: scale(0.75);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.azure-card:hover .azure-play-overlay {
  opacity: 1;
  transform: scale(1);
}

/* ===========================
   Sidebar Transitions
   =========================== */

.azure-sidebar {
  transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Sidebar label fade in/out */
.azure-sidebar-label {
  opacity: 0;
  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.azure-sidebar:hover .azure-sidebar-label,
.azure-sidebar.expanded .azure-sidebar-label {
  opacity: 1;
}

/* Sidebar icon animation */
.azure-sidebar-icon {
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.azure-sidebar:hover .azure-sidebar-icon {
  transform: rotate(0deg);
}

/* ===========================
   Mobile Menu Drawer
   =========================== */

.azure-drawer {
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.azure-drawer-enter {
  transform: translateX(-100%);
}

.azure-drawer-enter-active {
  transform: translateX(0);
}

.azure-drawer-exit {
  transform: translateX(0);
}

.azure-drawer-exit-active {
  transform: translateX(-100%);
}

/* Backdrop fade */
.azure-backdrop {
  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.azure-backdrop-enter {
  opacity: 0;
}

.azure-backdrop-enter-active {
  opacity: 1;
}

.azure-backdrop-exit {
  opacity: 1;
}

.azure-backdrop-exit-active {
  opacity: 0;
}

/* ===========================
   Button Hover Effects
   =========================== */

.azure-btn {
  position: relative;
  overflow: hidden;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.azure-btn:hover {
  transform: translateY(-2px);
}

.azure-btn::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
  transition: left 0.5s;
}

.azure-btn:hover::before {
  left: 100%;
}

/* Gradient button */
.azure-btn-gradient {
  background: linear-gradient(135deg, #3b82f6, #60a5fa);
  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.azure-btn-gradient:hover {
  opacity: 0.9;
}

/* ===========================
   Search Dropdown Animation
   =========================== */

.azure-dropdown {
  animation: azureSlideDown 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes azureSlideDown {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ===========================
   Loading Spinner
   =========================== */

@keyframes azureSpin {
  to {
    transform: rotate(360deg);
  }
}

.azure-spin {
  animation: azureSpin 1s linear infinite;
}

/* ===========================
   Pulse Animation (Live badge, etc.)
   =========================== */

@keyframes azurePulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}

.azure-pulse {
  animation: azurePulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

/* ===========================
   Fade In Animation
   =========================== */

@keyframes azureFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.azure-fade-in {
  animation: azureFadeIn 0.3s ease-in;
}

/* ===========================
   Skeleton Loading
   =========================== */

@keyframes azureShimmer {
  0% {
    background-position: -1000px 0;
  }
  100% {
    background-position: 1000px 0;
  }
}

.azure-skeleton {
  background: linear-gradient(
    90deg,
    #232a33 0%,
    #2a3139 50%,
    #232a33 100%
  );
  background-size: 1000px 100%;
  animation: azureShimmer 2s infinite;
}

/* ===========================
   Smooth Scroll
   =========================== */

@media (prefers-reduced-motion: no-preference) {
  html {
    scroll-behavior: smooth;
  }
}

/* Disable animations for users who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
