/* Unified Motion System stylesheet - Floating background blobs, scroll fades, reduced motion blocks */

/* Base transition parameters for interactive controls */
.btn-magnetic {
  transition: transform var(--t-fast) cubic-bezier(0.25, 0.46, 0.45, 0.94);
  will-change: transform;
}

.btn-magnetic .btn-text {
  display: inline-block;
  transition: transform var(--t-fast) cubic-bezier(0.25, 0.46, 0.45, 0.94);
  will-change: transform;
}

/* Background animated glow spots */
.bg-blobs {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -2;
  overflow: hidden;
  pointer-events: none;
  background-color: var(--color-bg);
}

.blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(140px);
  opacity: 0.16;
  will-change: transform;
}

.blob-1 {
  width: 500px;
  height: 500px;
  background-color: var(--color-primary);
  top: -150px;
  left: -150px;
  animation: float-blob-1 25s infinite alternate ease-in-out;
}

.blob-2 {
  width: 600px;
  height: 600px;
  background-color: var(--color-secondary);
  bottom: -200px;
  right: -150px;
  animation: float-blob-2 30s infinite alternate ease-in-out;
}

.blob-3 {
  width: 400px;
  height: 400px;
  background-color: var(--color-accent);
  top: 40%;
  left: 45%;
  animation: float-blob-3 20s infinite alternate ease-in-out;
}

[data-theme="light"] .blob {
  opacity: 0.09;
  filter: blur(120px);
}

@keyframes float-blob-1 {
  0% { transform: translate3d(0, 0, 0) scale(1); }
  50% { transform: translate3d(120px, 80px, 0) scale(1.15); }
  100% { transform: translate3d(-60px, 150px, 0) scale(0.9); }
}

@keyframes float-blob-2 {
  0% { transform: translate3d(0, 0, 0) scale(1.1); }
  50% { transform: translate3d(-140px, -60px, 0) scale(0.85); }
  100% { transform: translate3d(90px, 80px, 0) scale(1.05); }
}

@keyframes float-blob-3 {
  0% { transform: translate3d(0, 0, 0) scale(0.9); }
  50% { transform: translate3d(70px, -120px, 0) scale(1.1); }
  100% { transform: translate3d(-110px, 50px, 0) scale(0.95); }
}

/* Page Scroll Progress bar */
.scroll-progress-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background-color: transparent;
  z-index: 10002;
  pointer-events: none;
}

.scroll-progress-bar {
  width: 0%;
  height: 100%;
  background: linear-gradient(90deg, var(--color-primary), var(--color-accent));
  transition: width 50ms linear;
}

/* Scroll Reveal base animations */
.reveal {
  opacity: 0;
  transform: translate3d(0, 30px, 0);
  transition: opacity var(--t-slow) var(--ease-premium), transform var(--t-slow) var(--ease-premium);
  will-change: opacity, transform;
}

.reveal.revealed {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* Stagger reveals for list groups */
.reveal-child {
  opacity: 0;
  transform: translate3d(0, 20px, 0);
  transition: opacity var(--t-slow) var(--ease-premium), transform var(--t-slow) var(--ease-premium);
  transition-delay: calc(var(--stagger-index) * 100ms);
  will-change: opacity, transform;
}

.reveal-stagger-parent.revealed .reveal-child {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* Hover scales and lifts */
.hover-lift {
  transition: transform var(--t-normal) var(--ease-premium), box-shadow var(--t-normal) var(--ease-premium);
  will-change: transform;
}

.hover-lift:hover {
  transform: translate3d(0, -6px, 0);
}

/* Accessibility: Reduced Motion Fallback */
@media (prefers-reduced-motion: reduce) {
  *, ::before, ::after {
    animation-delay: -1ms !important;
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
    background-attachment: initial !important;
    scroll-behavior: auto !important;
    transition-duration: 0s !important;
    transition-delay: 0s !important;
  }
  
  .blob,
  .custom-cursor-dot,
  .custom-cursor-ring,
  .transition-spinner-glow {
    display: none !important;
  }
  
  .reveal, 
  .reveal-child {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  
  .hover-lift:hover {
    transform: none !important;
  }
  
  body {
    cursor: auto !important;
  }
}
