.contact-link {
    display: inline-block;
    color: #4A4947;
}

.hero-title-link:hover,
.hero-title-link:focus-visible {
    color: #FFFFFF !important;
    text-shadow: var(--hero-text-shadow), 0 2px 16px rgba(255, 255, 255, 0.35);
}

@media (prefers-reduced-motion: no-preference) {
    html {
        scroll-behavior: smooth;
    }

    [data-motion-intro] > * {
        animation: gentle-entrance 650ms cubic-bezier(0.22, 1, 0.36, 1) both;
    }

    [data-motion-intro] > :nth-child(2) {
        animation-delay: 100ms;
    }

    [data-motion-intro] > :nth-child(3) {
        animation-delay: 180ms;
    }

    .nav-link,
    .biolinks,
    .contact-link,
    .btn,
    .photo-navigation-button {
        transition: transform 180ms ease, color 180ms ease, background-color 180ms ease;
    }

    .patentcard {
        transition: transform 220ms ease, border-color 220ms ease;
    }

    .hero-title-link > * {
        transition: transform 220ms ease, text-shadow 220ms ease;
    }

    .hero-title-link:focus-visible > * {
        transform: translateY(-3px);
    }

    .image-container {
        transition: transform 220ms ease, box-shadow 220ms ease;
    }

    .biolinks:focus-visible,
    .contact-link:focus-visible,
    .btn:focus-visible,
    .photo-navigation-button:focus-visible,
    a:focus-visible .patentcard {
        transform: translateY(-3px);
    }

    .image-container:focus-visible {
        transform: translateY(-3px);
    }

    @media (hover: hover) and (pointer: fine) {
        .hero-title-link:hover > * {
            transform: translateY(-3px);
        }

        .nav-link:hover,
        .biolinks:hover,
        .contact-link:hover,
        .btn:hover,
        .photo-navigation-button:hover,
        a:hover .patentcard {
            transform: translateY(-3px);
        }

        .image-container:hover {
            transform: translateY(-3px);
        }
    }
}

@keyframes gentle-entrance {
    from {
        opacity: 0;
        transform: translateY(12px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
