@keyframes pulseGlow{
  0%,100%{box-shadow:0 18px 38px rgba(37,211,102,.35)}
  50%{box-shadow:0 18px 48px rgba(37,211,102,.58)}
}
@keyframes breathe{
  0%,100%{transform:translateY(0) rotate(0deg)}
  50%{transform:translateY(-18px) rotate(2deg)}
}
.leaf{animation:breathe 7s ease-in-out infinite}
.leaf-b{animation-duration:8.5s;animation-delay:1s}
.leaf-c{animation-duration:9.5s;animation-delay:2s}

.logo-card::after{
  content:"";
  position:absolute;
  inset:16px;
  border-radius:50%;
  border:1px solid rgba(255,215,0,.5);
  pointer-events:none;
}
.logo-card::before{
  content:"";
  position:absolute;
  inset:-18px;
  border-radius:50%;
  background:
    radial-gradient(circle at 30% 20%,rgba(255,255,255,.34),transparent 10%),
    radial-gradient(circle at 72% 72%,rgba(255,215,0,.18),transparent 14%);
  filter:blur(7px);
  opacity:.75;
  pointer-events:none;
  z-index:-1;
}

/* ★ NUEVO: Zoom lento del fondo del hero */
@keyframes heroZoom{
  from{transform:scale(1)}
  to{transform:scale(1.06)}
}
.hero-photo{animation:heroZoom 80s ease-in-out infinite alternate}

/* ★ NUEVO: Punto del scroll cue */
@keyframes scrollDotMove{
  0%{top:-8px;opacity:0}
  12%{opacity:1}
  88%{opacity:1}
  100%{top:100%;opacity:0}
}

/* ★ NUEVO: Destellos sutiles */
@keyframes sparkle{
  0%,100%{opacity:0;transform:scale(.4)}
  50%{opacity:.55;transform:scale(1)}
}

/* ★ NUEVO: Barrido de brillo en botones (referencia, se aplica vía ::before) */
@keyframes shineSweep{
  from{left:-100%}
  to{left:130%}
}

/* ★ NUEVO: Ripple al hacer clic */
@keyframes rippleExpand{
  to{transform:scale(4);opacity:0}
}

/* ★ NUEVO: Links del menú móvil escalonados */
@keyframes mobileLinkIn{
  to{opacity:1;transform:none}
}

/* Reveals */
.reveal,.reveal-left,.reveal-right,.reveal-scale,.reveal-card{
  opacity:0;
  transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);
}
.reveal{transform:translateY(34px)}
.reveal-left{transform:translateX(-42px)}
.reveal-right{transform:translateX(42px)}
.reveal-scale{transform:scale(.92)}
.reveal-card{transform:translateY(46px) scale(.96)}
.reveal.v,.reveal-left.v,.reveal-right.v,.reveal-scale.v,.reveal-card.v{
  opacity:1;
  transform:none;
}

.dish,.drink-card,.review-card{
  opacity:0;
  transform:translateY(18px);
  animation:cardIn .6s cubic-bezier(.16,1,.3,1) forwards;
}
@keyframes cardIn{
  to{opacity:1;transform:none}
}

.tab-panel.entering{
  animation:panelIn .45s cubic-bezier(.16,1,.3,1) both;
}
@keyframes panelIn{
  from{opacity:0;transform:translateY(18px) scale(.98)}
  to{opacity:1;transform:none}
}

.butterfly-svg path{
  transform-origin:center;
}
.butterfly-svg .wing-left{
  animation:wingLeft .22s ease-in-out infinite alternate;
}
.butterfly-svg .wing-right{
  animation:wingRight .22s ease-in-out infinite alternate;
}
@keyframes wingLeft{
  from{transform:rotateY(0deg) rotate(-2deg)}
  to{transform:rotateY(58deg) rotate(8deg)}
}
@keyframes wingRight{
  from{transform:rotateY(0deg) rotate(2deg)}
  to{transform:rotateY(-58deg) rotate(-8deg)}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    scroll-behavior:auto!important;
    transition-duration:.01ms!important;
  }
}