/* Animações isoladas dos estilos de layout para evitar conflitos. */

/* Entrada na rolagem: mesmos tempos e curva da Vitaliza. */
html[data-motion="full"].reveal-enabled [data-reveal] {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .8s cubic-bezier(.2,.8,.2,1),
              transform .8s cubic-bezier(.2,.8,.2,1);
}
html[data-motion="full"].reveal-enabled [data-reveal].in {
  opacity: 1;
  transform: none;
}
html[data-motion="full"].reveal-enabled [data-reveal].d1 { transition-delay: .08s; }
html[data-motion="full"].reveal-enabled [data-reveal].d2 { transition-delay: .16s; }
html[data-motion="full"].reveal-enabled [data-reveal].d3 { transition-delay: .24s; }
html[data-motion="full"].reveal-enabled [data-reveal].d4 { transition-delay: .32s; }

/* A entrada acontece no invólucro; o hover movimenta somente o card interno. */
.speaker-reveal { display: flex; min-width: 0; }
.speaker-reveal > .speaker { width: 100%; }
.speaker {
  transform: perspective(1000px) translateY(0) rotateX(0) rotateY(0);
  transform-origin: center;
  transition: transform .35s cubic-bezier(.2,.8,.2,1),
              box-shadow .35s ease, border-color .35s ease;
}
.speaker:focus-within {
  border-color: #8eafa7;
  box-shadow: 0 14px 35px -18px #24465066;
}
.speaker-portrait img { transition: transform .45s cubic-bezier(.2,.8,.2,1); }
.speaker-portrait .portrait-arrow {
  transition: background .25s ease, transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease;
}
.portrait-arrow > span { display: block; transition: transform .3s ease; }

/* Botões: elevação, brilho e resposta das setas. */
.button {
  isolation: isolate;
  overflow: hidden;
  transition: transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease,
              background .25s ease, border-color .25s ease;
}
.button:not(.mobile-cta) { position: relative; }
.button::before {
  content: '';
  position: absolute;
  z-index: -1;
  top: -50%;
  left: -60%;
  width: 45%;
  height: 200%;
  background: linear-gradient(90deg, transparent, #ffffff38, transparent);
  transform: skewX(-22deg);
  pointer-events: none;
}
.button > span[aria-hidden] { transition: transform .3s cubic-bezier(.2,.8,.2,1); }
.button:focus-visible { box-shadow: 0 10px 24px -10px #24465070; }

@media (hover: hover) and (pointer: fine) {
  html[data-motion="full"] .speaker:hover {
    transform: perspective(1000px) translateY(-6px)
               rotateX(var(--card-rotate-x, 0deg)) rotateY(var(--card-rotate-y, 0deg));
    border-color: #8eafa7;
    box-shadow: 0 22px 40px -20px #24465066;
  }
  html[data-motion="full"] .speaker:hover .speaker-portrait img { transform: scale(1.045); }
  html[data-motion="full"] .speaker:hover .portrait-arrow {
    background: var(--petrol);
    box-shadow: 0 4px 12px #24465030;
  }
  html[data-motion="full"] .speaker:hover .portrait-arrow > span { transform: translate(1px,-1px); }
  html[data-motion="full"] .button:hover {
    transform: translateY(-4px) scale(1.015);
    box-shadow: 0 14px 26px -12px #102b4580;
  }
  html[data-motion="full"] .button:hover::before {
    left: 130%;
    transition: left .65s ease;
  }
  html[data-motion="full"] .button:hover > span[aria-hidden] { transform: translate(3px,-2px); }
  html[data-motion="full"] .text-link:hover > span[aria-hidden],
  html[data-motion="full"] .map-link:hover > span[aria-hidden] { transform: translate(3px,-2px); }
  html[data-motion="full"] .ticket-calendar:hover > span { transform: rotate(90deg); }
}
html[data-motion="full"] .button:active { transform: translateY(-1px) scale(.98); }
.map-link > span[aria-hidden], .ticket-calendar > span { transition: transform .3s ease; }

/* Animação do pop-up, preservando o fechamento nativo e a navegação por teclado. */
html[data-motion="full"] .speaker-dialog[open] { animation: speaker-dialog-enter .25s ease-out; }
@keyframes speaker-dialog-enter {
  from { opacity: 0; transform: translateY(15px) scale(.98); }
  to { opacity: 1; transform: none; }
}

/* Estado alternativo sem movimento. A página inicia sempre com os efeitos ativos. */
html[data-motion="reduced"] { scroll-behavior: auto; }
html[data-motion="reduced"] *,
html[data-motion="reduced"] *::before,
html[data-motion="reduced"] *::after { animation: none !important; transition: none !important; }
html[data-motion="reduced"] [data-reveal] { opacity: 1 !important; transform: none !important; }
html[data-motion="reduced"] .speaker,
html[data-motion="reduced"] .button,
html[data-motion="reduced"] .portrait-arrow,
html[data-motion="reduced"] .speaker-portrait img,
html[data-motion="reduced"] .button > span[aria-hidden] { transform: none !important; }
html[data-motion="reduced"] .event-ticket { translate: none !important; }
html[data-motion="reduced"] .button::before { display: none; }
@media print {
  [data-reveal], .speaker, .button { opacity: 1 !important; transform: none !important; }
  .motion-toggle { display: none !important; }
}
