@media (prefers-reduced-motion: reduce) {
  * {
    animation: none !important;
    transition: none !important;
  }
}

/* line */
@keyframes slideFade {
  to { opacity: 1; }
}

@keyframes iconSlide {
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes lineGrow {
  to {
    height: 100vh;
  }
}
/* logo */
@keyframes fadeInScale {
    from {
        opacity: 0;
        transform: scale(0.8);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* navigation menu */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

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

@keyframes bounceInLeft {
    0% {
        opacity: 0;
        transform: translateX(-100px);
    }
    60% {
        opacity: 1;
        transform: translateX(10px);
    }
    100% {
        transform: translateX(0);
    }
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes gradientShine {
    0%, 100% { filter: brightness(1); }
    50% { filter: brightness(1.3); }
}

@keyframes popInRotate {
    from {
        opacity: 0;
        transform: scale(0) rotate(-180deg);
    }
    to {
        opacity: 1;
        transform: scale(1) rotate(0deg);
    }
}

@keyframes float {
  0%, 100% {
      transform: translate(0, 0) scale(1);
      opacity: 0.8;
  }
  25% {
      transform: translate(10px, -20px) scale(1.2);
      opacity: 1;
  }
  50% {
      transform: translate(-15px, -10px) scale(0.8);
      opacity: 0.6;
  }
  75% {
      transform: translate(20px, 15px) scale(1.1);
      opacity: 0.9;
  }
}

@keyframes scaleIn {
    from {
        opacity: 0;
        transform: scale(0.5);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes slideInRight {
    from {
        opacity: 0;
        transform: translateX(100px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes popIn {
    from {
        opacity: 0;
        transform: scale(0);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

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

@keyframes highlightPulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.05); }
}

/* about section - top to bottom staggered reveal on scroll */
@keyframes aboutRevealUp {
  from {
    opacity: 0;
    transform: translateY(36px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.about-section .section-title.reveal-blur,
.about-section .id-wrapper.reveal-id,
.about-section .about-text.reveal-text,
.about-section .subsection-title.reveal-blur,
.about-section .skills-container.reveal-blur {
  opacity: 0;
  transform: translateY(36px);
  transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}

.about-section .skill-icon-card.reveal-skill {
  opacity: 0;
  transition: opacity 0.4s ease-out;
}

.about-section.in-view .section-title.reveal-blur {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0s;
}

.about-section.in-view .id-wrapper.reveal-id {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.15s;
}

.about-section.in-view .about-text.reveal-text {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.3s;
}

.about-section.in-view .subsection-title.reveal-blur {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.45s;
}

.about-section.in-view .skills-container.reveal-blur {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.55s;
}

.about-section.in-view .skill-icon-card.reveal-skill {
  opacity: 1;
}

.about-section.in-view .skill-icon-card.reveal-skill:nth-child(1) { transition-delay: 0.6s; }
.about-section.in-view .skill-icon-card.reveal-skill:nth-child(2) { transition-delay: 0.65s; }
.about-section.in-view .skill-icon-card.reveal-skill:nth-child(3) { transition-delay: 0.7s; }
.about-section.in-view .skill-icon-card.reveal-skill:nth-child(4) { transition-delay: 0.75s; }
.about-section.in-view .skill-icon-card.reveal-skill:nth-child(5) { transition-delay: 0.8s; }
.about-section.in-view .skill-icon-card.reveal-skill:nth-child(6) { transition-delay: 0.85s; }
.about-section.in-view .skill-icon-card.reveal-skill:nth-child(7) { transition-delay: 0.9s; }
.about-section.in-view .skill-icon-card.reveal-skill:nth-child(8) { transition-delay: 0.95s; }
.about-section.in-view .skill-icon-card.reveal-skill:nth-child(9) { transition-delay: 1s; }



