/* =================================================================
   LDN ANIMATIONS v3.0 — Subtle & Minimal
   ================================================================= */

/* Fade-in on scroll */
.ldn-fade-in {
    opacity: 0;
    transform: translateY(12px);
    transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}

.ldn-fade-in.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Smooth image zoom on card hover */
.ldn-zoom-image {
    overflow: hidden;
    border-radius: var(--radius-md);
}

.ldn-zoom-image img {
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.ldn-zoom-image:hover img {
    transform: scale(1.03);
}

/* Underline reveal on link hover */
.ldn-underline-reveal {
    position: relative;
    text-decoration: none;
}

.ldn-underline-reveal::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 1px;
    background: currentColor;
    transition: width 0.3s ease-out;
}

.ldn-underline-reveal:hover::after {
    width: 100%;
}
