/* Consistent, restrained motion for shared components on all public pages. */
@media (prefers-reduced-motion: no-preference) and (hover: hover) {
    .post-card__image {
        transition:
            transform 0.52s cubic-bezier(0.22, 1, 0.36, 1),
            filter 0.24s ease;
    }

    .post-card__media:is(:hover, :focus-visible) .post-card__image {
        transform: scale(1.035);
    }

    :where(
        .post-nav__link,
        .pagination__link,
        .site-footer a,
        .site-nav a
    ) {
        transition:
            color 0.22s ease,
            background-color 0.22s ease,
            border-color 0.22s ease,
            opacity 0.22s ease;
    }
}

@media (prefers-reduced-motion: reduce) {
    .post-card__image {
        transition: none;
    }
}

/* Sitewide social icons: render missing theme logos as accessible CSS masks. */
.social-links .icon-btn-soft[aria-label="Threads"],
.social-links .icon-btn-soft[aria-label="Bluesky"],
.social-links .icon-btn-soft[aria-label="Mastodon"] {
    font-size: 0;
}

.social-links .icon-btn-soft[aria-label="Threads"] {
    --social-icon-mask: url("../img/social-threads-20261103.svg");
}

.social-links .icon-btn-soft[aria-label="Bluesky"] {
    --social-icon-mask: url("../img/social-bluesky-20261103.svg");
}

.social-links .icon-btn-soft[aria-label="Mastodon"] {
    --social-icon-mask: url("../img/social-mastodon-20261103.svg");
}

.social-links .icon-btn-soft:is(
    [aria-label="Threads"],
    [aria-label="Bluesky"],
    [aria-label="Mastodon"]
)::before {
    content: "";
    display: block;
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    background-color: currentColor;
    -webkit-mask: var(--social-icon-mask) center / contain no-repeat;
    mask: var(--social-icon-mask) center / contain no-repeat;
}

.social-links--footer {
    flex-wrap: wrap;
    row-gap: 0.25rem;
}
