.resume-motion {
    opacity: 0;
    transform: translate3d(0, 32px, 0);
    transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.7s ease;
    transition-delay: var(--resume-motion-delay, 0s);
}

.resume-motion--left {
    transform: translate3d(-36px, 24px, 0);
}

.resume-motion--right {
    transform: translate3d(36px, 24px, 0);
}

.resume-motion.resume-motion--up {
    transform: translate3d(0, 42px, 0);
}

.resume-motion.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.resume-motion.is-visible.resume-motion--pulse {
    animation: resumeSoftPulse 2.8s ease 0.2s both;
}

body.motion-lite .resume-motion {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
}

body.motion-lite .resume-motion.is-visible.resume-motion--pulse {
    animation: none !important;
}

.resume-elevate {
    position: relative;
    transition: transform 0.45s ease, box-shadow 0.45s ease;
    will-change: transform, box-shadow;
}

.resume-elevate::before {
    content: '';
    position: absolute;
    inset: 2px;
    border-radius: inherit;
    background: radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.14), transparent 65%),
                radial-gradient(circle at 80% 30%, rgba(164, 255, 0, 0.16), transparent 70%);
    opacity: 0;
    transition: opacity 0.45s ease;
    pointer-events: none;
    z-index: 0;
}

.resume-elevate:hover,
.resume-elevate:focus-within {
    transform: translateY(-10px);
    box-shadow: 0 26px 45px rgba(16, 32, 62, 0.22);
}

.resume-elevate:hover::before,
.resume-elevate:focus-within::before {
    opacity: 1;
}

.experience-item.resume-elevate::before,
.teaching-item.resume-elevate::before {
    inset: -10px;
    border-radius: 32px;
    background:
        radial-gradient(circle at 14% 12%, rgba(164, 255, 0, 0.22), transparent 58%),
        radial-gradient(circle at 86% 18%, rgba(59, 130, 246, 0.18), transparent 62%),
        linear-gradient(140deg, rgba(15, 30, 64, 0.12), transparent 68%);
}

.resume-motion .skill-item,
.resume-motion .publication-meta,
.resume-motion .experience-header,
.resume-motion .teaching-header,
.resume-motion .award-card {
    position: relative;
    z-index: 1;
}

.resume-motion-group {
    display: grid;
    gap: clamp(1.4rem, 3vw, 2rem);
}

.resume-motion-group[data-columns="2"] {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

@keyframes resumeSoftPulse {
    0% {
        box-shadow: 0 0 0 0 rgba(79, 163, 255, 0.22);
    }
    70% {
        box-shadow: 0 0 0 22px rgba(79, 163, 255, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(79, 163, 255, 0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .resume-motion,
    .resume-motion--left,
    .resume-motion--right,
    .resume-motion.resume-motion--up {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }

    .resume-elevate,
    .resume-elevate::before {
        transition: none !important;
    }
}

@media (max-width: 768px) {
    .resume-motion--left,
    .resume-motion--right {
        transform: translate3d(0, 24px, 0);
    }
}
