/* Motion. Transform and opacity only. All of it is disabled by prefers-reduced-motion. */
@keyframes sweep { 0% { left: -40%; } 55%, 100% { left: 130%; } }
@keyframes rise { 0% { transform: translateY(0); opacity: 0; } 12% { opacity: .8; } 100% { transform: translateY(-85vh) translateX(18px); opacity: 0; } }
@keyframes floaty { 0%, 100% { transform: translateY(0) rotate(-.6deg); } 50% { transform: translateY(-12px) rotate(.6deg); } }
@keyframes pulse-ring { 0% { box-shadow: 0 0 0 0 rgba(37, 211, 102, .5); } 70%, 100% { box-shadow: 0 0 0 16px rgba(37, 211, 102, 0); } }
@keyframes shine { 0%, 60% { opacity: .35; } 80% { opacity: 1; } 100% { opacity: .35; } }

.hero-bottle { animation: floaty 9s ease-in-out infinite; }
.hb-shine { animation: shine 7s ease-in-out infinite; }
.wa-float { animation: pulse-ring 3.2s ease-out 2s 3; }

/* Reveal: content is visible by default; hidden only when GSAP confirmed it will reveal it. */
.gsap-ready [data-reveal] { opacity: 0; transform: translateY(24px); }
.gsap-ready .reveal-mask img { transform: scale(1.18); }
.gsap-ready .pyramid__tier { opacity: 0; transform: translateX(-16px); }

/* Pointer-only hover effects */
@media (hover: hover) {
  .product-card:hover .product-card__img { transform: scale(1.05); }
  .product-card:hover .product-card__img--alt, .product-card:focus-within .product-card__img--alt { opacity: 1; }
  .btn-quick { opacity: 0; transform: translateY(8px); transition: opacity .3s var(--ease), transform .3s var(--ease), background .2s, color .2s; }
  .product-card:hover .btn-quick, .product-card:focus-within .btn-quick, .btn-quick:focus-visible { opacity: 1; transform: none; }
  .collection-tile:hover img { transform: scale(1.06); }
  .gallery__open:hover img { transform: scale(1.04); }
}

.navbar-collapse.collapsing, .navbar-collapse.show { animation: menuIn .35s var(--ease); }
@keyframes menuIn { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
.modal.fade .modal-dialog { transition: transform .35s var(--ease), opacity .35s; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .hero__particles, .hero__sweep { display: none; }
  .gsap-ready [data-reveal], .gsap-ready .pyramid__tier { opacity: 1 !important; transform: none !important; }
  .gsap-ready .reveal-mask img { transform: none !important; }
}

.gsap-ready .hero-bottle { animation: none; }
