/* ==========================================================================
   ELITE MOTION SYSTEM — ALPHA 23.0.0
   Shared microinteractions without changing business logic.
========================================================================== */

:root {
    --elite-motion-fast:120ms;
    --elite-motion-normal:180ms;
    --elite-motion-slow:260ms;
    --elite-motion-page:360ms;
    --elite-motion-ease:cubic-bezier(.16,.8,.22,1);
    --elite-motion-bounce:cubic-bezier(.2,1.15,.3,1);
    --elite-motion-distance:14px;
    --elite-motion-lift:4px;
}

/* Page entrance */
html.eps-motion-ready body.eps-elite-account .eps-account-page-content,
html.eps-motion-ready body .eps-bird-manager,
html.eps-motion-ready body .eps-pedigree-manager,
html.eps-motion-ready body .eps-scan-page,
html.eps-motion-ready body .eps-auction-page,
html.eps-motion-ready body .eps-auction-lot-page,
html.eps-motion-ready body .eps-admin-wrap {
    animation:eps-motion-page-in var(--elite-motion-page) var(--elite-motion-ease) both;
}

@keyframes eps-motion-page-in {
    from {
        opacity:0;
        transform:translateY(8px);
    }
    to {
        opacity:1;
        transform:none;
    }
}

/* Reveal engine */
[data-eps-motion-reveal] {
    opacity:0;
    transform:translateY(var(--elite-motion-distance));
    transition:
        opacity var(--elite-motion-slow) var(--elite-motion-ease),
        transform var(--elite-motion-slow) var(--elite-motion-ease);
    transition-delay:var(--eps-motion-delay,0ms);
}

[data-eps-motion-reveal].is-eps-motion-visible {
    opacity:1;
    transform:none;
}

/* Cards */
.eps-motion-card {
    position:relative;
    transform:translateZ(0);
    transition:
        transform var(--elite-motion-normal) var(--elite-motion-ease),
        box-shadow var(--elite-motion-normal) ease,
        border-color var(--elite-motion-normal) ease;
    will-change:transform;
}

@media(hover:hover) and (pointer:fine) {
    .eps-motion-card:hover {
        transform:translateY(calc(var(--elite-motion-lift) * -1));
        box-shadow:0 24px 64px rgba(8,25,43,.115)!important;
    }

    .eps-motion-image:hover img,
    .eps-motion-card:hover .eps-motion-image img {
        transform:scale(1.032);
        filter:saturate(1.03) contrast(1.015);
    }
}

/* Image cinematic response */
.eps-motion-image {
    overflow:hidden;
}

.eps-motion-image img {
    transition:
        transform var(--elite-motion-slow) var(--elite-motion-ease),
        filter var(--elite-motion-slow) ease;
}

/* Buttons and touch feedback */
.eps-motion-button {
    position:relative!important;
    overflow:hidden!important;
    transform:translateZ(0);
    transition:
        transform var(--elite-motion-fast) var(--elite-motion-ease),
        box-shadow var(--elite-motion-normal) ease,
        background-color var(--elite-motion-normal) ease,
        border-color var(--elite-motion-normal) ease!important;
    -webkit-tap-highlight-color:transparent;
}

.eps-motion-button:hover {
    transform:translateY(-1px);
}

.eps-motion-button:active,
.eps-motion-button.is-eps-pressed {
    transform:translateY(0) scale(.975);
}

.eps-motion-ripple {
    position:absolute;
    z-index:0;
    width:12px;
    height:12px;
    margin:-6px 0 0 -6px;
    border-radius:50%;
    background:currentColor;
    opacity:.15;
    pointer-events:none;
    transform:scale(0);
    animation:eps-motion-ripple 540ms ease-out forwards;
}

.eps-motion-button > * {
    position:relative;
    z-index:1;
}

@keyframes eps-motion-ripple {
    to {
        opacity:0;
        transform:scale(var(--eps-ripple-scale,18));
    }
}

/* Loading / result feedback */
.eps-motion-button.is-eps-loading {
    pointer-events:none;
    opacity:.82;
}

.eps-motion-button.is-eps-loading::after {
    content:"";
    width:14px;
    height:14px;
    flex:0 0 14px;
    border:2px solid currentColor;
    border-right-color:transparent;
    border-radius:50%;
    animation:eps-motion-spin .65s linear infinite;
}

.eps-motion-button.is-eps-success {
    animation:eps-motion-success 420ms var(--elite-motion-bounce);
}

.eps-motion-button.is-eps-error {
    animation:eps-motion-error 310ms ease;
}

@keyframes eps-motion-spin {
    to { transform:rotate(360deg); }
}

@keyframes eps-motion-success {
    50% { transform:scale(1.035); }
}

@keyframes eps-motion-error {
    25% { transform:translateX(-3px); }
    50% { transform:translateX(3px); }
    75% { transform:translateX(-2px); }
}

/* Skeletons */
.eps-motion-skeleton {
    position:relative;
    overflow:hidden;
    color:transparent!important;
    pointer-events:none;
    background:#edf1f5!important;
}

.eps-motion-skeleton::after {
    content:"";
    position:absolute;
    inset:0;
    transform:translateX(-100%);
    background:linear-gradient(
        90deg,
        transparent,
        rgba(255,255,255,.72),
        transparent
    );
    animation:eps-motion-shimmer 1.15s linear infinite;
}

@keyframes eps-motion-shimmer {
    to { transform:translateX(100%); }
}

/* Animated numbers */
[data-eps-motion-counter] {
    font-variant-numeric:tabular-nums;
}

/* Dropdowns */
.eps-bird-card-menu:not([hidden]),
.eps-language-menu:not([hidden]),
.eps-account-user-dropdown:not([hidden]),
.eps-global-search-dialog {
    transform-origin:top right;
    animation:eps-motion-pop var(--elite-motion-normal) var(--elite-motion-ease) both;
}

@keyframes eps-motion-pop {
    from {
        opacity:0;
        transform:translateY(-5px) scale(.985);
    }
    to {
        opacity:1;
        transform:none;
    }
}

/* Tooltips */
.eps-motion-tooltip {
    position:fixed;
    z-index:100005;
    max-width:260px;
    padding:8px 10px;
    border:1px solid rgba(255,255,255,.10);
    border-radius:10px;
    background:#0e2034;
    color:#fff;
    box-shadow:0 15px 44px rgba(5,18,31,.22);
    font-size:10px;
    font-weight:700;
    line-height:1.4;
    pointer-events:none;
    animation:eps-motion-tooltip-in var(--elite-motion-fast) ease both;
}

@keyframes eps-motion-tooltip-in {
    from {
        opacity:0;
        transform:translateY(3px);
    }
}

/* Consistent focus */
.eps-motion-focus:focus-visible,
.eps-motion-button:focus-visible,
[data-eps-motion-tooltip]:focus-visible {
    outline:none!important;
    box-shadow:0 0 0 4px rgba(201,168,76,.18)!important;
}

/* Scrollbars only on desktop-capable pointers */
@media(hover:hover) and (pointer:fine) {
    .eps-elite-account *,
    .eps-global-search-body,
    .eps-language-menu-list {
        scrollbar-width:thin;
        scrollbar-color:#c7d0da transparent;
    }

    .eps-elite-account *::-webkit-scrollbar,
    .eps-global-search-body::-webkit-scrollbar,
    .eps-language-menu-list::-webkit-scrollbar {
        width:8px;
        height:8px;
    }

    .eps-elite-account *::-webkit-scrollbar-thumb,
    .eps-global-search-body::-webkit-scrollbar-thumb,
    .eps-language-menu-list::-webkit-scrollbar-thumb {
        border:2px solid transparent;
        border-radius:999px;
        background:#c7d0da;
        background-clip:padding-box;
    }
}

/* Mobile touch */
@media(max-width:700px) {
    .eps-motion-button:active,
    .eps-motion-card:active {
        transform:scale(.985);
    }

    [data-eps-motion-reveal] {
        --elite-motion-distance:10px;
    }
}

/* Accessibility */
@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto!important;
    }

    *,
    *::before,
    *::after {
        animation-duration:.001ms!important;
        animation-iteration-count:1!important;
        transition-duration:.001ms!important;
        scroll-behavior:auto!important;
    }

    [data-eps-motion-reveal] {
        opacity:1!important;
        transform:none!important;
    }

    .eps-motion-card,
    .eps-motion-button,
    .eps-motion-image img {
        transform:none!important;
    }
}
