/* Staggered entrance animations for page opening */
.animate-entrance {
  opacity: 0;
  animation: fadeInUp 0.9s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.animate-stagger-1 {
  animation-delay: 0.1s;
}

.animate-stagger-2 {
  animation-delay: 0.25s;
}

.animate-stagger-3 {
  animation-delay: 0.4s;
}

.animate-stagger-4 {
  animation-delay: 0.55s;
}

.animate-stagger-5 {
  animation-delay: 0.7s;
}

/* Vertical / Horizontal Divider Line Opening animation */
.vertical-divider.animate-grow {
  opacity: 0;
  transform-origin: center center;
  animation: expandDivider 0.85s cubic-bezier(0.16, 1, 0.3, 1) 0.25s forwards;
}

@keyframes expandDivider {
  0% {
    opacity: 0;
    transform: scaleY(0);
  }
  100% {
    opacity: 1;
    transform: scaleY(1);
  }
}

@media (max-width: 844px) {
  .vertical-divider.animate-grow {
    animation: expandDividerMobile 0.85s cubic-bezier(0.16, 1, 0.3, 1) 0.25s forwards;
  }

  @keyframes expandDividerMobile {
    0% {
      opacity: 0;
      transform: scaleX(0);
    }
    100% {
      opacity: 1;
      transform: scaleX(1);
    }
  }
}

/* Base Fade In Up keyframe */
@keyframes fadeInUp {
  0% {
    opacity: 0;
    transform: translateY(25px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Floating idle animation for logo after opening */
.float-idle {
  animation: floatIdle 6s ease-in-out infinite alternate;
  animation-delay: 1.2s;
}

@keyframes floatIdle {
  0% {
    transform: translateY(0px) rotate(0deg);
  }
  50% {
    transform: translateY(-6px) rotate(0.5deg);
  }
  100% {
    transform: translateY(0px) rotate(0deg);
  }
}

/* Live status pulsing dot */
@keyframes pulseDot {
  0% {
    transform: scale(0.85);
    opacity: 0.5;
    box-shadow: 0 0 2px rgba(217, 205, 179, 0.4);
  }
  50% {
    transform: scale(1.2);
    opacity: 1;
    box-shadow: 0 0 10px rgba(217, 205, 179, 0.8);
  }
  100% {
    transform: scale(0.85);
    opacity: 0.5;
    box-shadow: 0 0 2px rgba(217, 205, 179, 0.4);
  }
}

/* Background ambient light breathing */
@keyframes ambientGlow {
  0% {
    opacity: 0.4;
    transform: scale(0.95);
  }
  100% {
    opacity: 0.85;
    transform: scale(1.05);
  }
}

/* Interactive cursor spotlight effect container */
.mouse-spotlight {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
  background: radial-gradient(
    600px circle at var(--mouse-x, 50%) var(--mouse-y, 50%),
    rgba(217, 205, 179, 0.07),
    transparent 45%
  );
  transition: opacity 0.3s ease;
}

/* Soft hover tilt / lift effect for interactive feel */
.main-logo,
.main-title,
.badge-pill,
.main-description {
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.main-logo:hover {
  transform: translateY(-4px) scale(1.02);
}