/* ════════════════════════════
   SCROLL REVEAL BASE
════════════════════════════ */
[data-reveal] {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity var(--dur-reveal) var(--ease),
    transform var(--dur-reveal) var(--ease);
}
[data-reveal].is-visible {
  opacity: 1;
  transform: none;
}
[data-reveal="fade"] {
  transform: none; /* fade-only variant for elements inside panels */
}

/* ════════════════════════════
   HERO ENTRANCE (CSS animation-delay, not IntersectionObserver)
════════════════════════════ */
@keyframes anoli-scale-in {
  from { opacity: 0; transform: scale(0.94); }
  to   { opacity: 1; transform: scale(1); }
}
@keyframes anoli-fade-up {
  from { opacity: 0; transform: translateY(22px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes anoli-line-grow {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}
@keyframes anoli-fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes anoli-slide-up {
  from { opacity: 0; transform: translateY(100%); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes anoli-slide-left {
  from { opacity: 0; transform: translateX(-8px); }
  to   { opacity: 1; transform: translateX(0); }
}

.anoli-hero-logo {
  opacity: 0;
  animation: anoli-scale-in var(--dur-hero) var(--ease) 0ms forwards;
}
.anoli-hero-line {
  transform-origin: center;
  transform: scaleX(0);
  animation: anoli-line-grow 700ms var(--ease) 700ms forwards;
}
.anoli-hero-tagline {
  opacity: 0;
  animation: anoli-fade-up 800ms var(--ease) 900ms forwards;
}
.anoli-hero-cta {
  opacity: 0;
  animation: anoli-fade-up 700ms var(--ease) 1200ms forwards;
}

/* Product image Ken Burns settle */
.anoli-product-hero-img {
  transform: scale(1.04);
  animation: anoli-scale-in 1000ms var(--ease) 0ms forwards;
}

/* Info panel slides up */
.anoli-product-info-panel {
  opacity: 0;
  transform: translateY(100%);
  animation: anoli-slide-up 700ms var(--ease) 400ms forwards;
}

/* ════════════════════════════
   PAGE TRANSITION OVERLAY
════════════════════════════ */
.anoli-page-transition {
  position: fixed; inset: 0; z-index: 9000;
  background: var(--dark-card);
  transform-origin: left;
  transform: scaleX(0);
  pointer-events: none;
}
.anoli-page-transition.is-entering {
  transform: scaleX(1);
  transition: transform var(--dur-page) var(--ease);
  transform-origin: left;
}
.anoli-page-transition.is-leaving {
  transform: scaleX(0);
  transition: transform var(--dur-page) var(--ease-in);
  transform-origin: right;
}

/* ════════════════════════════
   CART ITEM REMOVE
════════════════════════════ */
.anoli-cart-item { max-height: 300px; }
.anoli-cart-item.is-removing {
  opacity: 0;
  transform: translateX(-20px);
  transition:
    opacity 300ms var(--ease-in),
    transform 300ms var(--ease-in),
    max-height 300ms var(--ease-in) 200ms;
  max-height: 0;
  overflow: hidden;
}

/* Checkout CTA pulse (one cycle) */
@keyframes anoli-border-pulse {
  0%, 100% { box-shadow: none; }
  50%       { box-shadow: 0 0 0 3px rgba(197,160,89,0.35); }
}
.anoli-checkout-pulse {
  animation: anoli-border-pulse 1s var(--ease) 500ms 1;
}
