/* ARSES Homepage — Animations */

@keyframes arses-fade-up {
    from {
        opacity: 0;
        transform: translateY(24px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes arses-soft-scale {
    from {
        opacity: 0;
        transform: scale(0.92);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes ai-cognitive-flow-breathe {
    0%, 100% {
        opacity: 0.62;
        stroke-dashoffset: 0;
    }
    50% {
        opacity: 0.82;
        stroke-dashoffset: -8;
    }
}

@keyframes ai-flow-dash-move {
    to {
        stroke-dashoffset: -28;
    }
}

@keyframes ai-cognitive-flow-pulse {
    0%, 100% {
        opacity: 0.88;
        filter: url(#ai-brain-line-glow) brightness(1.15);
    }
    50% {
        opacity: 1;
        filter: url(#ai-brain-line-glow) brightness(1.35);
    }
}

@keyframes ai-brain-core-glow-pulse {
    0%, 100% {
        opacity: 0.42;
        transform: scale(0.97);
    }
    50% {
        opacity: 0.78;
        transform: scale(1.03);
    }
}

@keyframes ai-brain-core-state-fade {
    0%, 18% {
        opacity: 1;
    }
    22%, 100% {
        opacity: 0;
    }
}

@keyframes ai-brain-decision-pulse {
    0%, 100% {
        opacity: 0.55;
        transform: scale(0.92);
    }
    50% {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes ai-pipeline-input-flow {
    to {
        stroke-dashoffset: -28;
    }
}

@keyframes ai-pipeline-output-flow {
    to {
        stroke-dashoffset: -28;
    }
}

@keyframes ai-kernel-particle-in {
    0% {
        opacity: 0;
        transform: translate(-120%, -50%) scale(0.6);
    }
    20% {
        opacity: 1;
    }
    80% {
        opacity: 0.85;
    }
    100% {
        opacity: 0;
        transform: translate(20%, -50%) scale(1);
    }
}

@keyframes ai-kernel-particle-out {
    0% {
        opacity: 0;
        transform: translate(-30%, -50%) scale(0.6);
    }
    20% {
        opacity: 1;
    }
    80% {
        opacity: 0.85;
    }
    100% {
        opacity: 0;
        transform: translate(110%, -50%) scale(1);
    }
}

@keyframes ai-kernel-morph {
    0%, 100% {
        border-radius: 38% 62% 58% 42% / 48% 42% 58% 52%;
        transform: scale(1);
    }
    33% {
        border-radius: 52% 48% 42% 58% / 42% 58% 48% 52%;
        transform: scale(1.03);
    }
    66% {
        border-radius: 44% 56% 62% 38% / 58% 44% 52% 46%;
        transform: scale(0.98);
    }
}

@keyframes ai-kernel-morph-matching {
    0%, 100% {
        border-radius: 42% 58% 54% 46% / 50% 46% 54% 50%;
        transform: scale(1.02) rotate(0deg);
    }
    50% {
        border-radius: 56% 44% 48% 52% / 44% 56% 42% 58%;
        transform: scale(1.06) rotate(2deg);
    }
}

@keyframes ai-kernel-morph-predicting {
    0%, 100% {
        border-radius: 48% 52% 50% 50% / 52% 48% 52% 48%;
        transform: scale(1.04);
    }
    25% {
        border-radius: 54% 46% 58% 42% / 46% 54% 44% 56%;
        transform: scale(1.08);
    }
    75% {
        border-radius: 46% 54% 44% 56% / 54% 46% 58% 42%;
        transform: scale(1.02);
    }
}

@keyframes ai-kernel-pulse-analyzing {
    0%, 100% {
        opacity: 0.55;
        transform: scale(0.96);
    }
    50% {
        opacity: 0.78;
        transform: scale(1.04);
    }
}

@keyframes ai-kernel-pulse-matching {
    0%, 100% {
        opacity: 0.72;
        transform: scale(0.98);
    }
    50% {
        opacity: 0.95;
        transform: scale(1.06);
    }
}

@keyframes ai-kernel-pulse-predicting {
    0%, 100% {
        opacity: 0.82;
        transform: scale(1);
    }
    50% {
        opacity: 1;
        transform: scale(1.1);
    }
}

@keyframes ai-kernel-pulse-deciding {
    0%, 100% {
        opacity: 0.78;
        transform: scale(1.02);
    }
    50% {
        opacity: 1;
        transform: scale(1.08);
    }
}

@keyframes ai-hub-center-glow-breathe {
    0%, 100% {
        opacity: 0.45;
        transform: scale(0.96);
    }
    50% {
        opacity: 0.82;
        transform: scale(1.04);
    }
}

@keyframes ai-thinking-aura-shift {
    0%, 100% {
        opacity: 0.42;
        transform: scale(0.94) translate(0, 0);
    }
    28% {
        opacity: 0.78;
        transform: scale(1.06) translate(2px, -3px);
    }
    52% {
        opacity: 0.55;
        transform: scale(0.98) translate(-3px, 2px);
    }
    74% {
        opacity: 0.88;
        transform: scale(1.04) translate(1px, 3px);
    }
}

@keyframes ai-thinking-nucleus-breathe {
    0%, 100% {
        opacity: 0.62;
        transform: scale(0.92);
        filter: blur(2px);
    }
    35% {
        opacity: 0.95;
        transform: scale(1.08);
        filter: blur(1px);
    }
    68% {
        opacity: 0.74;
        transform: scale(0.96);
        filter: blur(2.5px);
    }
}

@keyframes ai-thinking-dot-pulse {
    0%, 100% {
        opacity: 0.35;
        transform: scale(0.75);
    }
    45% {
        opacity: 1;
        transform: scale(1.15);
    }
    70% {
        opacity: 0.55;
        transform: scale(0.9);
    }
}

@keyframes ai-thinking-status-fade {
    0%, 100% {
        opacity: 0.55;
    }
    40% {
        opacity: 0.95;
    }
    65% {
        opacity: 0.68;
    }
}

@keyframes ai-neural-node-pulse {
    0%, 100% {
        opacity: 0.35;
        transform: scale(0.82);
    }
    45% {
        opacity: 1;
        transform: scale(1.08);
    }
    70% {
        opacity: 0.55;
        transform: scale(0.94);
    }
}

@keyframes ai-neural-line-fade {
    0%, 100% {
        stroke-opacity: 0.08;
    }
    40% {
        stroke-opacity: 0.42;
    }
    65% {
        stroke-opacity: 0.18;
    }
}

@keyframes ai-neural-ambient-pulse {
    0%, 100% {
        opacity: 0.55;
    }
    50% {
        opacity: 0.85;
    }
}

@keyframes arses-live-feed-cycle {
    0%, 2% {
        opacity: 1;
        transform: translateY(0);
    }
    28%, 32% {
        opacity: 1;
        transform: translateY(0);
    }
    35%, 100% {
        opacity: 0;
        transform: translateY(-4px);
    }
}

@keyframes arses-live-feed-question-cycle {
    0%, 2% {
        opacity: 1;
        transform: translateY(0);
    }
    22%, 26% {
        opacity: 1;
        transform: translateY(0);
    }
    28%, 100% {
        opacity: 0;
        transform: translateY(-2px);
    }
}

@keyframes arses-live-feed-cta-pulse {
    0%, 100% {
        box-shadow: 0 4px 16px rgba(26, 115, 84, 0.2);
    }
    50% {
        box-shadow: 0 4px 20px rgba(26, 115, 84, 0.32);
    }
}

@keyframes arses-float {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-12px);
    }
}

@keyframes arses-living-stream-scroll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

@keyframes arses-shimmer {
    0% {
        background-position: -200% center;
    }
    100% {
        background-position: 200% center;
    }
}

@keyframes arses-signal-dot-pulse {
    0%, 100% {
        opacity: 0.55;
        transform: scale(1);
    }
    50% {
        opacity: 1;
        transform: scale(1.15);
    }
}

@keyframes arses-beam-particle {
    0%, 100% {
        opacity: 0;
    }
    35%, 65% {
        opacity: 1;
    }
}

@keyframes arses-signal-chip-in {
    from {
        opacity: 0;
        transform: translateY(3px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Page load reveal */
body.arses-home:not(.is-loaded) [data-reveal] {
    opacity: 0;
}

body.arses-home.is-loaded .arses-hero__tag {
    animation: arses-fade-up 0.6s ease forwards;
    animation-delay: 0.05s;
}

body.arses-home.is-loaded .arses-hero__title {
    animation: arses-fade-up 0.6s ease forwards;
    animation-delay: 0.12s;
}

body.arses-home.is-loaded .arses-hero__subtitle {
    animation: arses-fade-up 0.6s ease forwards;
    animation-delay: 0.22s;
}

body.arses-home.is-loaded .arses-hero__actions {
    animation: arses-fade-up 0.6s ease forwards;
    animation-delay: 0.32s;
}

body.arses-home.is-loaded .arses-hero__learn-link {
    animation: arses-fade-up 0.6s ease forwards;
    animation-delay: 0.38s;
}

body.arses-home.is-loaded .arses-hero__ai-signal {
    animation: arses-fade-up 0.5s ease forwards;
    animation-delay: 0.48s;
}

body.arses-home.is-loaded .arses-hero__panel {
    animation: arses-fade-up 0.7s ease forwards;
    animation-delay: 0.28s;
}

body.arses-home.is-loaded .arses-hero__bg-image {
    animation: arses-hero-bg-reveal 1.2s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

@keyframes arses-hero-bg-reveal {
    from {
        opacity: 0;
        transform: scale(1.06);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

body.arses-home:not(.is-loaded) .arses-hero__tag,
body.arses-home:not(.is-loaded) .arses-hero__title,
body.arses-home:not(.is-loaded) .arses-hero__subtitle,
body.arses-home:not(.is-loaded) .arses-hero__actions,
body.arses-home:not(.is-loaded) .arses-hero__learn-link,
body.arses-home:not(.is-loaded) .arses-hero__ai-signal,
body.arses-home:not(.is-loaded) .arses-hero__panel,
body.arses-home:not(.is-loaded) .arses-hero__bg-image,
body.arses-home:not(.is-loaded) .arses-decision-stream,
body.arses-home:not(.is-loaded) .arses-context-panel {
    opacity: 0;
}

/* IntersectionObserver reveal */
[data-reveal] {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

[data-reveal].is-visible {
    opacity: 1;
    transform: translateY(0);
}

[data-reveal-delay="1"].is-visible { transition-delay: 0.05s; }
[data-reveal-delay="2"].is-visible { transition-delay: 0.15s; }
[data-reveal-delay="3"].is-visible { transition-delay: 0.25s; }
[data-reveal-delay="4"].is-visible { transition-delay: 0.35s; }
[data-reveal-delay="5"].is-visible { transition-delay: 0.45s; }

/* Staggered child reveal (journey grid) */
[data-reveal-stagger] {
    opacity: 1;
    transform: none;
}

[data-reveal-stagger] .journey-card {
    opacity: 0;
}

[data-reveal-stagger].is-visible .journey-card {
    animation: arses-journey-enter 0.6s ease forwards;
}

[data-reveal-stagger].is-visible .journey-card:nth-child(1) { animation-delay: 0s; }
[data-reveal-stagger].is-visible .journey-card:nth-child(2) { animation-delay: 0.1s; }
[data-reveal-stagger].is-visible .journey-card:nth-child(3) { animation-delay: 0.2s; }
[data-reveal-stagger].is-visible .journey-card:nth-child(4) { animation-delay: 0.3s; }
[data-reveal-stagger].is-visible .journey-card:nth-child(5) { animation-delay: 0.4s; }

/* Staggered child reveal (commerce v2 decision system) */
[data-reveal-stagger="commerce"] {
    opacity: 1;
    transform: none;
}

[data-reveal-stagger="commerce"] .commerce-v2__decision,
[data-reveal-stagger="commerce"] .commerce-v2__workspace,
[data-reveal-stagger="commerce"] .commerce-v2__snapshot {
    opacity: 0;
}

[data-reveal-stagger="commerce"].is-visible .commerce-v2__decision,
[data-reveal-stagger="commerce"].is-visible .commerce-v2__workspace,
[data-reveal-stagger="commerce"].is-visible .commerce-v2__snapshot {
    animation: arses-pers-enter 0.55s ease forwards;
}

[data-reveal-stagger="commerce"].is-visible .commerce-v2__decision {
    animation-delay: 0s;
}

[data-reveal-stagger="commerce"].is-visible .commerce-v2__workspace {
    animation-delay: 0.06s;
}

[data-reveal-stagger="commerce"].is-visible .commerce-v2__snapshot {
    animation-delay: 0.12s;
}

@keyframes arses-pers-hub-enter {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes arses-pers-enter {
    from {
        opacity: 0;
        transform: translateY(16px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes arses-journey-enter {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.arses-shimmer {
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(184, 230, 207, 0.4) 50%,
        transparent 100%
    );
    background-size: 200% 100%;
    animation: arses-shimmer 3s ease-in-out infinite;
}

/* New to ARSES? — AI onboarding portal motion */
@keyframes floatSoft {
    0% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-6px);
    }
    100% {
        transform: translateY(0);
    }
}

@keyframes onboarding-gradient-shift {
    0%,
    100% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
}

@keyframes onboarding-portal-enter {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes onboarding-glow-drift {
    0%,
    100% {
        transform: translate(0, 0);
    }
    50% {
        transform: translate(10px, -8px);
    }
}

/* Logistics route visualization */
@keyframes logistics-path-flow {
    to {
        stroke-dashoffset: -28;
    }
}

@keyframes logistics-map-pulse {
    0%,
    100% {
        opacity: 0.92;
    }
    50% {
        opacity: 0.98;
    }
}

.arses-logistics-path {
    animation: logistics-path-flow 1.2s linear infinite;
}

.arses-logistics-map {
    animation: logistics-map-pulse 8s ease-in-out infinite;
}

.arses-delivery__board[data-reveal]:not(.is-visible) .arses-logistics-viz__canvas {
    opacity: 0;
    transform: scale(1.02);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.arses-delivery__board[data-reveal].is-visible .arses-logistics-viz__canvas {
    opacity: 1;
    transform: scale(1);
    transition: opacity 0.8s ease 0.1s, transform 0.8s ease 0.1s;
}

.arses-onboarding-portal {
    animation: onboarding-gradient-shift 14s ease-in-out infinite;
}

.arses-onboarding-portal .arses-delivery__hero-glow--a {
    animation: onboarding-glow-drift 12s ease-in-out infinite;
}

.arses-onboarding-portal .arses-delivery__hero-glow--b {
    animation: onboarding-glow-drift 9s ease-in-out infinite reverse;
}

.arses-onboarding-portal .arses-delivery__card-visual--phone {
    animation: floatSoft 7s ease-in-out infinite;
}

.arses-delivery__board[data-reveal]:not(.is-visible) .arses-onboarding-portal .arses-delivery__card-inner {
    opacity: 0;
    transform: translateY(20px);
}

.arses-delivery__board[data-reveal].is-visible .arses-onboarding-portal .arses-delivery__card-inner {
    animation: onboarding-portal-enter 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
    animation-delay: 0.12s;
}

/* Reduced motion */
@keyframes arses-rec-pulse {
    0%,
    80%,
    100% {
        opacity: 0.35;
        transform: scale(0.92);
    }
    40% {
        opacity: 1;
        transform: scale(1);
    }
}

@media (prefers-reduced-motion: reduce) {
    [data-reveal] {
        opacity: 1;
        transform: none;
        transition: none;
    }

    body.arses-home.is-loaded .arses-hero__tag,
    body.arses-home.is-loaded .arses-hero__title,
    body.arses-home.is-loaded .arses-hero__subtitle,
    body.arses-home.is-loaded .arses-hero__actions,
    body.arses-home.is-loaded .arses-hero__learn-link,
    body.arses-home.is-loaded .arses-hero__ai-signal,
    body.arses-home.is-loaded .arses-hero__panel,
    body.arses-home.is-loaded .arses-hero__bg-image,
    body.arses-home.is-loaded .arses-decision-stream,
    body.arses-home.is-loaded .arses-context-panel {
        animation: none;
        opacity: 1;
    }

    .ai-brain-system__path,
    .ai-thinking-core__aura,
    .ai-thinking-core__nucleus,
    .ai-thinking-core__dot,
    .ai-thinking-core__status,
    .ai-neural-network__ambient,
    .ai-neural-network__line,
    .ai-neural-network__node,
    .arses-shimmer {
        animation: none;
    }

    .arses-card-hover:hover {
        transform: none;
    }

    .arses-category-tile:hover,
    .arses-rec-card:hover {
        transform: none;
    }

    .arses-category-tile:hover .arses-category-tile__media {
        transform: none;
    }

    .journey-card:hover {
        transform: none;
    }

    .journey-card:hover .journey-card__image {
        transform: none;
    }

    .seller-card:hover {
        transform: none;
    }

    .seller-card:hover .seller-card__image,
    .seller-card:hover .seller-card__green-score {
        transform: none;
    }

    [data-reveal-stagger] .journey-card {
        opacity: 1;
        animation: none;
    }

    [data-reveal-stagger="commerce"] .commerce-v2__decision,
    [data-reveal-stagger="commerce"] .commerce-v2__workspace,
    [data-reveal-stagger="commerce"] .commerce-v2__snapshot {
        opacity: 1;
        animation: none;
    }

    .arses-living-stream__track {
        animation: none;
        transform: none;
        flex-wrap: wrap;
        width: 100%;
        justify-content: center;
        gap: 8px 0;
    }

    .arses-living-stream__list {
        flex-wrap: wrap;
        justify-content: center;
        padding: 0 16px;
    }

    .arses-living-stream__list[aria-hidden="true"] {
        display: none;
    }

    .arses-living-stream__viewport:hover .arses-living-stream__item:hover {
        transform: none;
    }

    .arses-onboarding-portal,
    .arses-onboarding-portal .arses-delivery__hero-glow--a,
    .arses-onboarding-portal .arses-delivery__hero-glow--b,
    .arses-onboarding-portal .arses-delivery__card-visual--phone,
    .arses-delivery__board[data-reveal].is-visible .arses-onboarding-portal .arses-delivery__card-inner {
        animation: none;
    }

    .arses-delivery__board[data-reveal]:not(.is-visible) .arses-onboarding-portal .arses-delivery__card-inner {
        opacity: 1;
        transform: none;
    }
}

body.arses-home.reduced-motion [data-reveal] {
    opacity: 1;
    transform: none;
    transition: none;
}

body.arses-home.reduced-motion [data-reveal-stagger] .journey-card {
    opacity: 1;
    animation: none;
}

body.arses-home.reduced-motion [data-reveal-stagger="commerce"] .commerce-v2__decision,
body.arses-home.reduced-motion [data-reveal-stagger="commerce"] .commerce-v2__workspace,
body.arses-home.reduced-motion [data-reveal-stagger="commerce"] .commerce-v2__snapshot {
    opacity: 1;
    animation: none;
}

body.arses-home.reduced-motion .arses-living-stream__track {
    animation: none;
    transform: none;
    flex-wrap: wrap;
    width: 100%;
    justify-content: center;
}

body.arses-home.reduced-motion .arses-living-stream__list[aria-hidden="true"] {
    display: none;
}

body.arses-home.reduced-motion .arses-living-stream__viewport:hover .arses-living-stream__item:hover {
    transform: none;
}

body.arses-home.reduced-motion .arses-logistics-path {
    animation: none;
}

body.arses-home.reduced-motion .arses-logistics-map {
    animation: none;
}

body.arses-home.reduced-motion .hero-flow__path,
body.arses-home.reduced-motion .ai-brain-system__path,
body.arses-home.reduced-motion .ai-thinking-core__aura,
body.arses-home.reduced-motion .ai-thinking-core__nucleus,
body.arses-home.reduced-motion .ai-thinking-core__dot,
body.arses-home.reduced-motion .ai-thinking-core__status,
body.arses-home.reduced-motion .ai-neural-network__ambient,
body.arses-home.reduced-motion .ai-neural-network__line,
body.arses-home.reduced-motion .ai-neural-network__node {
    animation: none;
}

body.arses-home.reduced-motion .arses-hero__signal-dot,
body.arses-home.reduced-motion .ai-insights-v2__chip {
    animation: none;
}

body.arses-home.reduced-motion .arses-hero--v3:hover .arses-hero__bg-image {
    transform: none;
}

body.arses-home.reduced-motion .ai-insights-v2__feed.collapsed .ai-insights-v2__chips--more,
body.arses-home.reduced-motion .ai-insights-v2__feed.expanded .ai-insights-v2__chips--more {
    transition: none;
}

body.arses-home.reduced-motion .arses-onboarding-portal,
body.arses-home.reduced-motion .arses-onboarding-portal .arses-delivery__hero-glow--a,
body.arses-home.reduced-motion .arses-onboarding-portal .arses-delivery__hero-glow--b,
body.arses-home.reduced-motion .arses-onboarding-portal .arses-delivery__card-visual--phone,
body.arses-home.reduced-motion .arses-delivery__board[data-reveal].is-visible .arses-onboarding-portal .arses-delivery__card-inner {
    animation: none;
}

body.arses-home.reduced-motion .arses-delivery__board[data-reveal]:not(.is-visible) .arses-onboarding-portal .arses-delivery__card-inner {
    opacity: 1;
    transform: none;
}

body.arses-home.reduced-motion .arses-rec-card__skeleton-line,
body.arses-home.reduced-motion .arses-rec-card__skeleton-block {
    animation: none;
}

body.arses-home.reduced-motion .arses-rec-card.is-morph-exit,
body.arses-home.reduced-motion .arses-rec-card.is-morph-enter {
    opacity: 1;
    transform: none;
    transition: none;
}

body.arses-home.reduced-motion .arses-rec-card--discovery {
    transform: none;
    opacity: 1;
}
