/* Cnn2rtl — minimal motion (no decorative entrance animations) */

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeInOpacity {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes landingCardIn {
    from {
        opacity: 0;
        transform: translateY(18px) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes uiReveal {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes landingLeave {
    0% {
        opacity: 1;
        transform: translateY(0) scale(1);
        filter: blur(0);
    }
    100% {
        opacity: 0;
        transform: translateY(-10px) scale(0.992);
        filter: blur(1px);
    }
}

@keyframes workflowPanelBackIn {
    from {
        opacity: 0.58;
        transform: translateX(-14px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

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

@keyframes workflowLandingReturnIn {
    from {
        opacity: 0;
        transform: translateY(14px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes headerOrbDriftA {
    0%, 100% { transform: translate(0, 0) scale(1); }
    25% { transform: translate(72px, -10px) scale(1.12); }
    50% { transform: translate(28px, 12px) scale(0.92); }
    75% { transform: translate(-58px, -6px) scale(1.06); }
}

@keyframes headerOrbDriftB {
    0%, 100% { transform: translate(0, 0) scale(1); }
    20% { transform: translate(-64px, 14px) scale(1.1); }
    55% { transform: translate(48px, -12px) scale(0.9); }
    80% { transform: translate(22px, 8px) scale(1.08); }
}

@keyframes headerOrbDriftC {
    0%, 100% { transform: translate(0, 0) scale(1); }
    30% { transform: translate(-52px, 10px) scale(1.08); }
    60% { transform: translate(66px, -14px) scale(0.93); }
    85% { transform: translate(-30px, 6px) scale(1.04); }
}

@keyframes headerAuroraShift {
    0% {
        transform: translate(-12%, 4%) scale(1.02) rotate(-1.5deg);
        opacity: 0.82;
    }
    50% {
        transform: translate(6%, -6%) scale(1.1) rotate(0.5deg);
        opacity: 1;
    }
    100% {
        transform: translate(14%, 3%) scale(1.04) rotate(1.5deg);
        opacity: 0.88;
    }
}

@keyframes headerAuroraRipple {
    0% {
        transform: translateX(-22%) skewX(-4deg) scaleY(1);
        background-position: 0% 50%;
    }
    50% {
        transform: translateX(22%) skewX(4deg) scaleY(1.08);
        background-position: 100% 50%;
    }
    100% {
        transform: translateX(-22%) skewX(-4deg) scaleY(1);
        background-position: 0% 50%;
    }
}

@keyframes headerAuroraHue {
    0% { filter: hue-rotate(0deg) saturate(1); }
    50% { filter: hue-rotate(18deg) saturate(1.12); }
    100% { filter: hue-rotate(-12deg) saturate(1.05); }
}

@keyframes headerBorderShimmer {
    0% { background-position: 0% 50%; }
    100% { background-position: 200% 50%; }
}

@keyframes landingOrbFloat {
    0%, 100% {
        transform: translate(0, 0) scale(1);
    }
    33% {
        transform: translate(18px, -12px) scale(1.05);
    }
    66% {
        transform: translate(-14px, 10px) scale(0.96);
    }
}

@keyframes shake {
    0%, 100% { transform: translateX(0); }
    20% { transform: translateX(-6px); }
    40% { transform: translateX(6px); }
    60% { transform: translateX(-4px); }
    80% { transform: translateX(4px); }
}

.shake {
    animation: shake 0.45s ease;
}

.spinner {
    animation: spin 0.8s linear infinite;
}

.collapsible-panel summary::before {
    transition: transform var(--transition);
}

.collapsible-panel[data-ui-motion-collapsible="1"].is-visually-expanded summary::before,
.collapsible-panel:not([data-ui-motion-collapsible="1"])[open] summary::before {
    transform: rotate(90deg);
}

html.theme-transition,
html.theme-transition *,
html.theme-transition *::before,
html.theme-transition *::after {
    transition: background-color 0.2s ease,
                color 0.2s ease,
                border-color 0.2s ease !important;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }

    .header-aurora::before,
    .header-aurora::after,
    .header-aurora-track,
    .landing-leave,
    .ui-motion.ui-motion-enter,
    .ui-motion.ui-motion-leave,
    .ui-stagger-in,
    .layer-editor-panel .layer:not(.layer-panel-hidden),
    .layer-editor-panel .layer-input:not(.layer-panel-hidden),
    body.app-revealed #mainAppShell,
    .task-type-confirmed,
    .container.is-workflow-nav-fading .sidebar-left,
    .container.is-workflow-nav-fading .main-content,
    .container.is-workflow-nav-fading .sidebar-right,
    #mainAppShell.is-workflow-shell-leaving,
    .is-workflow-landing-enter {
        animation: none !important;
        transition: none !important;
    }

    .csv-drop-overlay {
        transition: none !important;
    }
}
