@keyframes tf-fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes tf-fade-up {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes tf-fade-scale {
  from { opacity: 0; transform: scale(0.9); }
  to { opacity: 1; transform: scale(1); }
}
@keyframes tf-draw-line {
  from { width: 0; }
  to { width: 60px; }
}
@keyframes tf-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}
@keyframes tf-pulse-gold {
  0%, 100% { box-shadow: 0 0 0 0 rgba(201,169,76,0.3); }
  50% { box-shadow: 0 0 0 12px rgba(201,169,76,0); }
}

/* Scroll reveal */
.tf-reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.8s var(--ease-out), transform 0.8s var(--ease-out);
}
.tf-reveal.tf-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Hero entrance */
.tf-hero__content > * { animation: tf-fade-up 0.8s var(--ease-out) both; }
.tf-hero__content > *:nth-child(2) { animation-delay: 0.15s; }
.tf-hero__content > *:nth-child(3) { animation-delay: 0.3s; }
.tf-hero__content > *:nth-child(4) { animation-delay: 0.45s; }

/* Hover effects */
.product-card .btn {
  opacity: 0.9;
  transition: all var(--t-base) var(--ease);
}
.product-card:hover .btn {
  opacity: 1;
  transform: translateY(0);
}

/* Image zoom */
.tf-product__main-img img {
  transition: transform var(--t-slow) var(--ease);
}
.tf-product__main-img:hover img {
  transform: scale(1.05);
}
