/* =================================================================
   GAB360 — Motion
   Subtle, purposeful animation only: fade/slide reveal, hover glow,
   glass blur (already in header), soft parallax on the hero backdrop.
   ================================================================= */

@media (prefers-reduced-motion: no-preference){

  .reveal{
    opacity: 0;
    transform: translateY(22px);
    transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);
  }
  .reveal.in{ opacity: 1; transform: translateY(0); }

  .reveal.delay-1.in{ transition-delay: .08s; }
  .reveal.delay-2.in{ transition-delay: .16s; }
  .reveal.delay-3.in{ transition-delay: .24s; }
  .reveal.delay-4.in{ transition-delay: .32s; }

  .hero-bg img{
    animation: driftBg 26s ease-in-out infinite alternate;
  }
  @keyframes driftBg{
    from{ transform: translate3d(0,0,0) scale(1.02); }
    to{ transform: translate3d(-1.5%, 1.5%, 0) scale(1.06); }
  }

  .panel-status i{ animation: pulseDot 2.4s ease-in-out infinite; }
  @keyframes pulseDot{
    0%, 100%{ box-shadow: 0 0 0 3px rgba(62,207,122,.18); }
    50%{ box-shadow: 0 0 0 6px rgba(62,207,122,.1); }
  }

  .float-chip-a{ animation: floatY 5s ease-in-out infinite; }
  .float-chip-b{ animation: floatY 5s ease-in-out infinite; animation-delay: -2.5s; }
  @keyframes floatY{
    0%, 100%{ transform: translateY(0); }
    50%{ transform: translateY(-8px); }
  }

}

/* Always-on, non-motion-sensitive interaction cues */
.nav-menu a, .footer-col a, .sol-link, .btn, .card, .logo-chip, .arch-node{
  will-change: transform;
}
