/* Shared, layout-preserving entrance motion for the home and directory pages. */
@keyframes page-soft-entry {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes page-detail-entry {
    from { opacity: 0; transform: translateY(4px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes page-photo-entry {
    from { opacity: 0; }
    to { opacity: 1; }
}

@media (prefers-reduced-motion: no-preference) {
    :is(body[data-page="home"], body[data-page="members"], body[data-page="exhibition"]) .workspace {
        animation: page-soft-entry 460ms cubic-bezier(.2, .7, .2, 1) backwards;
    }

    :is(body[data-page="home"] .portals > .portal,
        body[data-page="members"] .members-list > .member-entry,
        body[data-page="exhibition"] .exhibitions > .exhibit) {
        --page-entry-delay: 180ms;
        animation: page-soft-entry 400ms cubic-bezier(.2, .7, .2, 1) var(--page-entry-delay) backwards;
    }

    :is(body[data-page="home"] .portals > .portal,
        body[data-page="members"] .members-list > .member-entry,
        body[data-page="exhibition"] .exhibitions > .exhibit):nth-of-type(1) { --page-entry-delay: 40ms; }
    :is(body[data-page="home"] .portals > .portal,
        body[data-page="members"] .members-list > .member-entry,
        body[data-page="exhibition"] .exhibitions > .exhibit):nth-of-type(2) { --page-entry-delay: 75ms; }
    :is(body[data-page="home"] .portals > .portal,
        body[data-page="members"] .members-list > .member-entry,
        body[data-page="exhibition"] .exhibitions > .exhibit):nth-of-type(3) { --page-entry-delay: 110ms; }
    :is(body[data-page="home"] .portals > .portal,
        body[data-page="members"] .members-list > .member-entry,
        body[data-page="exhibition"] .exhibitions > .exhibit):nth-of-type(4) { --page-entry-delay: 145ms; }

    body[data-page="home"] .portal {
        transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
    }

    body[data-page="home"] .portal:hover {
        box-shadow: 0 5px 15px rgb(41 91 70 / 8%);
    }

    body[data-page="members"] .member-card,
    body[data-page="members"] .member-website-button,
    body[data-page="exhibition"] .exhibit-toggle {
        transition: background-color 180ms ease;
    }

    body[data-page="members"] .member-websites {
        transition-timing-function: cubic-bezier(.2, .7, .2, 1), ease, ease;
    }

    body[data-page="members"] .member-edit-form:not([hidden]),
    body[data-page="exhibition"] .exhibit-content:not([hidden]),
    body[data-page="exhibition"] .activity-editor:not([hidden]),
    body[data-page="exhibition"] #uploadForm:not([hidden]) {
        animation: page-detail-entry 240ms ease-out backwards;
    }

    /* Existing hidden/load handlers start the fade when the photo is ready. */
    body[data-page="exhibition"] .exhibit-content img:not([hidden]) {
        animation: page-photo-entry 320ms ease-out backwards;
    }
}

@media (prefers-reduced-motion: no-preference) and (max-width: 899px) {
    body[data-page="members"] .member-websites.is-open .member-website-buttons {
        animation: page-detail-entry 240ms ease-out backwards;
    }
}

@media (prefers-reduced-motion: reduce) {
    body[data-page="members"] .member-websites,
    body[data-page="members"] .member-avatar-wrap .member-avatar {
        transition: none;
    }
}
