/* Motion engine v3.8.0. All animations are opt-in and only applied to cards resolved by a saved rule. */
.mgcm-anim-item.mgcm-anim-pending { opacity: 0; }
.mgcm-anim-item.mgcm-anim-visible {
  opacity: 1;
  animation-duration: var(--mgcm-animation-duration, 560ms);
  animation-delay: var(--mgcm-animation-delay, 0ms);
  animation-timing-function: var(--mgcm-animation-ease, cubic-bezier(.2,.72,.25,1));
  animation-fill-mode: both;
  transform-origin: center center;
  backface-visibility: hidden;
}
.mgcm-anim-item.mgcm-anim-running { will-change: opacity, transform, translate, rotate, scale, filter; }
.mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="fade"] { animation-name: mgcmFade; }
.mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="fade-up"] { animation-name: mgcmFadeUp; }
.mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="fade-down"] { animation-name: mgcmFadeDown; }
.mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="fade-left"] { animation-name: mgcmFadeLeft; }
.mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="fade-right"] { animation-name: mgcmFadeRight; }
.mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="zoom-in"] { animation-name: mgcmZoomIn; }
.mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="zoom-out"] { animation-name: mgcmZoomOut; }
.mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="flip-x"] { animation-name: mgcmFlipX; }
.mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="flip-y"] { animation-name: mgcmFlipY; }
.mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="rotate-in"] { animation-name: mgcmRotateIn; }
.mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="rotate-left"] { animation-name: mgcmRotateLeft; }
.mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="rotate-right"] { animation-name: mgcmRotateRight; }
.mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="bounce-in"] { animation-name: mgcmBounceIn; }
.mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="blur-in"] { animation-name: mgcmBlurIn; }
.mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="pop"] { animation-name: mgcmPop; }
.mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="assemble"] { animation-name: mgcmAssemble; }
.mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="scatter"] { animation-name: mgcmScatter; }
.mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="wave"] { animation-name: mgcmWave; }
.mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="deck"] { animation-name: mgcmDeck; }
.mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="luxury"] { animation-name: mgcmLuxury; }
.mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="elastic"] { animation-name: mgcmElastic; }
.mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="swing"] { animation-name: mgcmSwing; }
.mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="spiral"] { animation-name: mgcmSpiral; }
.mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="slide-stack"] { animation-name: mgcmSlideStack; }

@keyframes mgcmFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes mgcmFadeUp { from { opacity: 0; translate: 0 28px; } to { opacity: 1; translate: 0 0; } }
@keyframes mgcmFadeDown { from { opacity: 0; translate: 0 -28px; } to { opacity: 1; translate: 0 0; } }
@keyframes mgcmFadeLeft { from { opacity: 0; translate: -34px 0; } to { opacity: 1; translate: 0 0; } }
@keyframes mgcmFadeRight { from { opacity: 0; translate: 34px 0; } to { opacity: 1; translate: 0 0; } }
@keyframes mgcmZoomIn { from { opacity: 0; scale: .76; } to { opacity: 1; scale: 1; } }
@keyframes mgcmZoomOut { from { opacity: 0; scale: 1.18; } to { opacity: 1; scale: 1; } }
@keyframes mgcmFlipX { from { opacity: 0; transform: perspective(850px) rotateX(var(--mgcm-flip-angle, -68deg)); } to { opacity: 1; transform: perspective(850px) rotateX(0); } }
@keyframes mgcmFlipY { from { opacity: 0; transform: perspective(850px) rotateY(var(--mgcm-flip-angle, 68deg)); } to { opacity: 1; transform: perspective(850px) rotateY(0); } }
@keyframes mgcmRotateIn { from { opacity: 0; rotate: -16deg; scale: .86; } to { opacity: 1; rotate: 0deg; scale: 1; } }
@keyframes mgcmRotateLeft { from { opacity: 0; rotate: -20deg; translate: -18px 18px; } to { opacity: 1; rotate: 0deg; translate: 0 0; } }
@keyframes mgcmRotateRight { from { opacity: 0; rotate: 20deg; translate: 18px 18px; } to { opacity: 1; rotate: 0deg; translate: 0 0; } }
@keyframes mgcmBounceIn { 0% { opacity: 0; translate: 0 32px; scale: .84; } 62% { opacity: 1; translate: 0 -8px; scale: 1.035; } 82% { translate: 0 3px; scale: .99; } 100% { opacity: 1; translate: 0 0; scale: 1; } }
@keyframes mgcmBlurIn { from { opacity: 0; filter: blur(10px); translate: 0 12px; } to { opacity: 1; filter: blur(0); translate: 0 0; } }
@keyframes mgcmPop { 0% { opacity: 0; scale: .68; } 68% { opacity: 1; scale: 1.07; } 100% { opacity: 1; scale: 1; } }
@keyframes mgcmAssemble { 0% { opacity: 0; translate: var(--mgcm-motion-x, -58px) var(--mgcm-motion-y, 24px); rotate: var(--mgcm-motion-rotate, -6deg); scale: .82; filter: blur(7px); } 72% { opacity: 1; translate: 0 0; rotate: 0deg; scale: 1.025; filter: blur(0); } 100% { opacity: 1; translate: 0 0; rotate: 0deg; scale: 1; filter: blur(0); } }
@keyframes mgcmScatter { 0% { opacity: 0; translate: var(--mgcm-motion-x, -70px) var(--mgcm-motion-y, 30px); rotate: var(--mgcm-motion-rotate, -8deg); scale: .78; filter: blur(5px); } 68% { opacity: 1; translate: 0 0; rotate: 0; scale: 1.035; filter: blur(0); } 100% { opacity: 1; translate: 0 0; rotate: 0; scale: 1; filter: blur(0); } }
@keyframes mgcmWave { 0% { opacity: 0; translate: var(--mgcm-wave-x, 0) var(--mgcm-wave-y, 34px); scale: .9; filter: blur(3px); } 58% { opacity: 1; translate: 0 -5px; scale: 1.02; filter: blur(0); } 78% { translate: 0 2px; scale: .995; } 100% { opacity: 1; translate: 0 0; scale: 1; } }
@keyframes mgcmDeck { 0% { opacity: 0; translate: var(--mgcm-deck-x, -70px) 34px; rotate: var(--mgcm-deck-rotate, -8deg); scale: .88; } 70% { opacity: 1; translate: 0 0; rotate: 0; scale: 1.025; } 100% { opacity: 1; translate: 0 0; rotate: 0; scale: 1; } }
@keyframes mgcmLuxury { 0% { opacity: 0; translate: 0 38px; scale: .94; filter: blur(10px); } 68% { opacity: 1; translate: 0 -3px; scale: 1.008; filter: blur(0); } 100% { opacity: 1; translate: 0 0; scale: 1; filter: blur(0); } }
@keyframes mgcmElastic { 0% { opacity: 0; translate: 0 46px; scale: .82; } 52% { opacity: 1; translate: 0 -10px; scale: 1.055; } 72% { translate: 0 5px; scale: .985; } 88% { translate: 0 -2px; scale: 1.01; } 100% { opacity: 1; translate: 0 0; scale: 1; } }
@keyframes mgcmSwing { 0% { opacity: 0; transform: perspective(800px) rotateZ(var(--mgcm-swing-angle, -14deg)) translateY(22px); } 55% { opacity: 1; transform: perspective(800px) rotateZ(calc(var(--mgcm-swing-angle, -14deg) * -.22)) translateY(-3px); } 78% { transform: perspective(800px) rotateZ(calc(var(--mgcm-swing-angle, -14deg) * .1)); } 100% { opacity: 1; transform: perspective(800px) rotateZ(0); } }
@keyframes mgcmSpiral { 0% { opacity: 0; translate: var(--mgcm-spiral-x, -48px) var(--mgcm-spiral-y, 42px); rotate: -34deg; scale: .68; filter: blur(5px); } 72% { opacity: 1; translate: 0 0; rotate: 5deg; scale: 1.035; filter: blur(0); } 100% { opacity: 1; translate: 0 0; rotate: 0; scale: 1; } }
@keyframes mgcmSlideStack { 0% { opacity: 0; translate: var(--mgcm-deck-x, -72px) 8px; scale: .94; filter: blur(2px); } 72% { opacity: 1; translate: 0 0; scale: 1.015; filter: blur(0); } 100% { opacity: 1; translate: 0 0; scale: 1; } }

@media (prefers-reduced-motion: reduce) {
  .mgcm-anim-item.mgcm-anim-pending,
  .mgcm-anim-item.mgcm-anim-visible {
    animation: none !important; opacity: 1 !important; transform: none !important;
    translate: none !important; rotate: none !important; scale: none !important;
    filter: none !important; will-change: auto !important;
  }
}

/* Mobile fallback: avoid blur/3D-heavy entrance effects on touch-only phones. */
@media (max-width: 560px) and (hover: none) and (prefers-reduced-motion: no-preference) {
  .mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="assemble"],
  .mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="spiral"],
  .mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="scatter"],
  .mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="blur-in"],
  .mgcm-anim-item.mgcm-anim-visible[data-mgcm-anim-effect="luxury"] {
    animation-name: mgcmFadeUp !important;
  }
  .mgcm-anim-item.mgcm-anim-visible { animation-duration: min(var(--mgcm-animation-duration, 560ms), 420ms); }
}
