/* ForgePilot Motion System v1 — global animation consistency */
:root{
  --motion-ease-standard:cubic-bezier(.22,.61,.36,1);
  --motion-ease-emphasized:cubic-bezier(.2,.8,.2,1);
  --motion-ease-soft:cubic-bezier(.25,.46,.45,.94);
  --motion-fast:140ms;
  --motion-base:220ms;
  --motion-slow:340ms;
  --motion-stagger:60ms;
}

/* Unified interactive transitions */
a,
.btn,
.btn-mini,
.chip,
.plan-card,
.card,
.auto-card,
.path-card,
.step-card,
.review-card,
.tool-badge,
.integration-logos article,
.problem-list article,
.situation-strip article{
  transition:
    transform var(--motion-base) var(--motion-ease-standard),
    box-shadow var(--motion-base) var(--motion-ease-standard),
    background-color var(--motion-fast) var(--motion-ease-soft),
    border-color var(--motion-fast) var(--motion-ease-soft),
    color var(--motion-fast) var(--motion-ease-soft),
    opacity var(--motion-fast) var(--motion-ease-soft);
  will-change: transform, opacity;
}

/* Reveal system */
[data-animate]{
  opacity:0;
  transform:translateY(14px) scale(.985);
  transition:
    opacity var(--motion-slow) var(--motion-ease-emphasized),
    transform var(--motion-slow) var(--motion-ease-emphasized);
}

[data-animate].is-visible{
  opacity:1;
  transform:translateY(0) scale(1);
}

[data-animate="up"]{ transform:translateY(20px); }
[data-animate="left"]{ transform:translateX(20px); }
[data-animate="right"]{ transform:translateX(-20px); }
[data-animate="zoom"]{ transform:scale(.95); }
[data-animate="pulse"].is-visible{ animation:fpPulse 1.15s var(--motion-ease-soft) both; }

[data-stagger] > *{ transition-delay:calc(var(--i, 0) * var(--motion-stagger)); }

/* Drawer + details helpers */
.fp-drawer{
  transform:translateX(100%);
  opacity:0;
  pointer-events:none;
  transition:
    transform var(--motion-slow) var(--motion-ease-standard),
    opacity var(--motion-base) var(--motion-ease-standard);
}
.fp-drawer.open{ transform:translateX(0); opacity:1; pointer-events:auto; }

.fp-reveal{
  max-height:0;
  opacity:0;
  overflow:hidden;
  transform:translateY(-6px);
  transition:
    max-height var(--motion-slow) var(--motion-ease-standard),
    opacity var(--motion-base) var(--motion-ease-standard),
    transform var(--motion-base) var(--motion-ease-standard);
}
.fp-reveal.open{ max-height:1200px; opacity:1; transform:translateY(0); }

@keyframes fpPulse {
  0% { transform:scale(.985); }
  60% { transform:scale(1.018); }
  100% { transform:scale(1); }
}

@media (max-width: 768px){
  :root{
    --motion-fast:100ms;
    --motion-base:160ms;
    --motion-slow:240ms;
    --motion-stagger:35ms;
  }
}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation:none !important;
    transition:none !important;
    scroll-behavior:auto !important;
  }
  [data-animate]{ opacity:1 !important; transform:none !important; }
}
