@keyframes fx-motion-rise {
    from {
        opacity: 0;
        transform: translateY(14px) scale(0.985);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes fx-motion-fade {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes fx-motion-pop {
    from {
        opacity: 0;
        transform: translateY(10px) scale(0.97);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

body.panel-page .content-page .iq-card:not(.fx-animate-in):not(.pv-ph-card) {
    animation: fx-motion-rise 0.5s cubic-bezier(0.22, 1, 0.36, 1) backwards;
}

body.panel-page .content-page .iq-card:not(.fx-animate-in):not(.pv-ph-card):nth-child(1) { animation-delay: 0.04s; }
body.panel-page .content-page .iq-card:not(.fx-animate-in):not(.pv-ph-card):nth-child(2) { animation-delay: 0.08s; }
body.panel-page .content-page .iq-card:not(.fx-animate-in):not(.pv-ph-card):nth-child(3) { animation-delay: 0.12s; }
body.panel-page .content-page .iq-card:not(.fx-animate-in):not(.pv-ph-card):nth-child(4) { animation-delay: 0.16s; }
body.panel-page .content-page .iq-card:not(.fx-animate-in):not(.pv-ph-card):nth-child(n + 5) { animation-delay: 0.2s; }

body.panel-page .content-page .pv-plan-combined-wrap.pv-ph-card {
    animation: fx-motion-rise 0.52s cubic-bezier(0.22, 1, 0.36, 1) backwards;
}

body.panel-page .content-page [data-pv-line-id]:nth-child(1) .pv-plan-combined-wrap { animation-delay: 0.06s; }
body.panel-page .content-page [data-pv-line-id]:nth-child(2) .pv-plan-combined-wrap { animation-delay: 0.12s; }
body.panel-page .content-page [data-pv-line-id]:nth-child(3) .pv-plan-combined-wrap { animation-delay: 0.18s; }
body.panel-page .content-page [data-pv-line-id]:nth-child(n + 4) .pv-plan-combined-wrap { animation-delay: 0.22s; }

.pv-act-tile,
.pv-sub-cta,
.fx-mob-item {
    will-change: transform;
}

.pv-act-tile:active,
.pv-sub-cta:active {
    transform: scale(0.965);
}

.pv-act-tile {
    transition: background-color 0.18s ease, border-color 0.18s ease, transform 0.16s cubic-bezier(0.22, 1, 0.36, 1);
}

.pv-sub-cta {
    transition: filter 0.18s ease, transform 0.16s cubic-bezier(0.22, 1, 0.36, 1);
}

.pv-act-tile__icon {
    transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1);
}

.pv-act-tile:hover .pv-act-tile__icon {
    transform: translateY(-2px);
}

body.fx-bottom-nav-only .fx-mob-item {
    transition: transform 0.18s cubic-bezier(0.22, 1, 0.36, 1);
}

body.fx-bottom-nav-only .fx-mob-item:active {
    transform: scale(0.92);
}

.modal.fade .modal-dialog {
    transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.22s ease;
    transform: translateY(18px) scale(0.985);
    opacity: 0;
}

.modal.fade.show .modal-dialog {
    transform: translateY(0) scale(1);
    opacity: 1;
}

.pv-confirm-overlay--open .pv-confirm-panel {
    animation: fx-motion-pop 0.32s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.fx-news-card,
.fx-stat-card {
    transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.28s ease, border-color 0.28s ease;
}

.fx-stat-card:hover {
    transform: translateY(-2px);
}

@keyframes fx-motion-slide-up {
    from {
        opacity: 0;
        transform: translateY(9px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.pv-sub-rows > .pv-sub-row {
    animation: fx-motion-slide-up 0.42s cubic-bezier(0.22, 1, 0.36, 1) backwards;
}

.pv-sub-rows > .pv-sub-row:nth-child(1) { animation-delay: 0.10s; }
.pv-sub-rows > .pv-sub-row:nth-child(2) { animation-delay: 0.16s; }
.pv-sub-rows > .pv-sub-row:nth-child(3) { animation-delay: 0.22s; }
.pv-sub-rows > .pv-sub-row:nth-child(n + 4) { animation-delay: 0.28s; }

@keyframes fx-motion-meter {
    from {
        transform: scaleX(0);
    }
    to {
        transform: scaleX(1);
    }
}

.pv-sub-meter__fill {
    transform-origin: left center;
    animation: fx-motion-meter 0.85s cubic-bezier(0.22, 1, 0.36, 1) 0.3s backwards;
}

[dir="rtl"] .pv-sub-meter__fill {
    transform-origin: right center;
}

.pv-sub-cta {
    animation: fx-motion-slide-up 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.3s backwards;
}

.pv-act-grid > * {
    animation: fx-motion-pop 0.4s cubic-bezier(0.22, 1, 0.36, 1) backwards;
}

.pv-act-grid > *:nth-child(1) { animation-delay: 0.36s; }
.pv-act-grid > *:nth-child(2) { animation-delay: 0.40s; }
.pv-act-grid > *:nth-child(3) { animation-delay: 0.44s; }
.pv-act-grid > *:nth-child(4) { animation-delay: 0.48s; }
.pv-act-grid > *:nth-child(5) { animation-delay: 0.52s; }
.pv-act-grid > *:nth-child(n + 6) { animation-delay: 0.56s; }

body.auth-page .auth-card-header {
    animation: fx-motion-slide-up 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.12s backwards;
}

body.auth-page .auth-card-content form > .auth-field {
    animation: fx-motion-slide-up 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.3s backwards;
}

body.auth-page .auth-card-content form > .auth-btn-row {
    animation: fx-motion-slide-up 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.38s backwards;
}

body.auth-page .auth-card-footer {
    animation: fx-motion-fade 0.5s ease 0.46s backwards;
}

body.auth-page .auth-password-step > * {
    animation: fx-motion-slide-up 0.45s cubic-bezier(0.22, 1, 0.36, 1) backwards;
}

body.auth-page .auth-password-step > *:nth-child(1) { animation-delay: 0.36s; }
body.auth-page .auth-password-step > *:nth-child(2) { animation-delay: 0.42s; }
body.auth-page .auth-password-step > *:nth-child(3) { animation-delay: 0.48s; }
body.auth-page .auth-password-step > *:nth-child(4) { animation-delay: 0.54s; }
body.auth-page .auth-password-step > *:nth-child(n + 5) { animation-delay: 0.6s; }

body.auth-page .auth-card-content form > .auth-btn-row {
    animation-delay: 0.62s;
}

body.auth-page .auth-card-footer {
    animation-delay: 0.7s;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.001ms !important;
        animation-delay: 0s !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
        transition-delay: 0s !important;
        scroll-behavior: auto !important;
    }

    .pv-act-tile:active,
    .pv-sub-cta:active,
    body.fx-bottom-nav-only .fx-mob-item:active,
    .pv-act-tile:hover .pv-act-tile__icon,
    .fx-stat-card:hover {
        transform: none !important;
    }

    .modal.fade .modal-dialog {
        transform: none;
        opacity: 1;
    }
}
