/* =========================================================
   Dani Cards & Collectibles — Animation Layer
   Dark-luxury / glassmorphism collectible-marketplace theme.
   Source of truth: docs/architecture/futuristic-redesign.md §4

   Load order: tokens.css -> base.css -> components.css -> animations.css -> styles.css
   Pairs with js/animations.js (Pass 5). The prefers-reduced-motion Layer-1
   blanket rule already lives in tokens.css (Pass 1) and covers everything
   here automatically; js/animations.js additionally gates its listeners
   (Layer 2, §4.4).
   ========================================================= */

/* ---------- Hero ambient holo layer (§3.2 item 1) ----------
   A faint, very slow "shelf of rare cards catching the light" ambient
   detail — reserved for this one decorative use, never applied to body
   text/buttons/trust badges (§2.1 overuse caution). Position/blur/rotate
   are baked into the gradient geometry rather than a CSS `transform`, so
   js/animations.js's scroll-parallax `transform: translateY()` (applied
   via inline style) never clobbers a static rotation. */
.hero-holo-layer {
  position: absolute;
  top: -12%;
  right: -18%;
  width: 62%;
  aspect-ratio: 3 / 4;
  background: conic-gradient(
    from 300deg,
    var(--accent-holo-a),
    var(--accent-holo-b),
    var(--accent-holo-c),
    var(--accent-holo-a)
  );
  background-size: 200% 200%;
  opacity: 0.08;
  filter: blur(48px);
  border-radius: var(--radius-xl);
  pointer-events: none;
  animation: hero-holo-drift 46s linear infinite;
  will-change: transform;
}

@keyframes hero-holo-drift {
  0% {
    background-position: 0% 50%;
  }
  100% {
    background-position: 200% 50%;
  }
}

/* ---------- Cart bubble "pop" micro-interaction (§3.11, §4.2) ----------
   One-shot scale pop triggered by js/animations.js whenever the selection
   count increases — not continuous, removed after animationend. */
@keyframes cart-bubble-pop {
  0% {
    transform: scale(1);
  }
  40% {
    transform: scale(1.15);
  }
  100% {
    transform: scale(1);
  }
}
.selection-float-btn.pop {
  animation: cart-bubble-pop 0.2s ease;
}
