/* Site-wide AlienGuards motion, borrowed from Traybite and kept restrained.
   Merges with existing ag-fx.js (.ag-rv / .is-in / .is-live). No extra observers
   on the same nodes. Does not add glitch or scan. */

/* Soften existing scroll reveals to Traybite .rv feel */
@media (prefers-reduced-motion: no-preference) {
  .ag-fx .ag-rv {
    transform: translate3d(0, 18px, 0);
    transition: opacity .85s cubic-bezier(.16, 1, .3, 1) var(--d, 0s),
                transform .85s cubic-bezier(.16, 1, .3, 1) var(--d, 0s);
  }
  .ag-fx .ag-rv--scale {
    transform: translate3d(0, 16px, 0) scale(.98);
  }
  .ag-fx .ag-rv.is-in,
  .ag-fx .ag-rv--scale.is-in { opacity: 1; transform: none; }

  /* Extra fades for a few PDP/copy blocks ag-fx may not cover */
  .ag-tb-rev {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity .85s cubic-bezier(.16, 1, .3, 1) var(--d, 0s),
                transform .85s cubic-bezier(.16, 1, .3, 1) var(--d, 0s);
  }
  .ag-tb-rev.is-in { opacity: 1; transform: none; }
}

/* Traybite sb-float (9s, ~8px) on product imagery.
   Replaces the faster agBob on those images only — not the full-bleed hero. */
@keyframes ag-tb-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}
@media (prefers-reduced-motion: no-preference) {
  .is-live .ag-card__img img,
  .is-live .ag-cbanner__img img,
  .is-live .ag-gallery__main img,
  .ag-gallery__main.is-live img {
    animation: ag-tb-float 9s ease-in-out 1.2s infinite !important;
  }
}

/* Traybite tile hover: 3px lift + soft shadow, on cards and sport tiles */
a.ag-card,
a.ag-sport,
.ag-tile,
.ag-designs__item {
  transition: transform .4s cubic-bezier(.16, 1, .3, 1), box-shadow .4s ease;
}
a.ag-card:hover,
a.ag-sport:hover,
.ag-tile:hover,
.ag-designs__item:hover {
  transform: translateY(-3px);
  box-shadow: 0 22px 44px -28px rgba(0, 0, 0, .55);
}

/* Underline draw + arrow nudge on text links and button icons */
.ag-g,
.ag-sister__copy a,
.ag-lead a,
.ag-footer a:not(.ag-icon-btn) {
  position: relative;
}
.ag-g,
.ag-sister__copy a.ag-g {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
}
.ag-g::after,
.ag-sister__copy a.ag-g::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -.12em;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .4s cubic-bezier(.16, 1, .3, 1);
}
.ag-g:hover::after,
.ag-g:focus-visible::after,
.ag-sister__copy a.ag-g:hover::after,
.ag-sister__copy a.ag-g:focus-visible::after { transform: scaleX(1); }

.ag-btn svg,
.ag-g svg,
.ag-x-arr,
.btn .arr {
  transition: transform .25s ease;
}
.ag-btn:hover svg,
.ag-btn:focus-visible svg,
.ag-g:hover svg,
.ag-g:focus-visible svg { transform: translateX(4px); }

@media (prefers-reduced-motion: reduce) {
  .ag-fx .ag-rv, .ag-fx .ag-rv--scale, .ag-fx .ag-rv.is-in,
  .ag-tb-rev, .ag-tb-rev.is-in,
  .is-live .ag-card__img img, .is-live .ag-cbanner__img img,
  .is-live .ag-gallery__main img,
  a.ag-card, a.ag-sport, .ag-tile, .ag-designs__item,
  .ag-btn svg, .ag-g svg, .ag-g::after {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
  .ag-g:hover::after { transform: scaleX(1) !important; }
}
