/* Desempenho. Nada aqui muda o visual em aparelhos que rodam bem. Os brilhos (logo, "Every Mood", Booking) ficam sempre.
   1) A sombra de profundidade dos cards ganha camada propria: mudar o brilho nao redesenha o card inteiro.
   2) Fora da tela, as animacoes do topo ficam em pausa.
   3) Se o aparelho nao segurar a fluidez, js/perf-guard.js liga o modo leve (.perf-lite):
      tira o reflexo dos cards, os brilhos animados e o borrado dos textos. A estrutura e as cores continuam. */
.card::after { will-change: opacity; }

.hero-offscreen .hero__logo,
.hero-offscreen .hero__tagline,
.hero-offscreen .hero__accent,
.hero-offscreen .hero__subtitles .s,
.hero-offscreen .hero__subtitle--far { animation-play-state: paused !important; }

@media (prefers-reduced-motion: no-preference) {
  /* Movimento natural: entra rapido e assenta devagar (com um leve "respiro" no fim), sai suave. */
  @keyframes lite-in {
    0%   { opacity: 0; transform: translate3d(0, -0.9em, 0) scale(1.07); animation-timing-function: cubic-bezier(0.2, 0.9, 0.25, 1.12); }
    9%   { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
    85.71% { opacity: 1; transform: translate3d(0, 0, 0) scale(1); animation-timing-function: cubic-bezier(0.45, 0, 0.55, 1); }
    93%, 100% { opacity: 0; transform: translate3d(0, 0.45em, 0) scale(0.98); }
  }
  @keyframes lite-far {
    0%, 36% { opacity: 0; transform: scale(0.94); animation-timing-function: cubic-bezier(0.16, 0.8, 0.3, 1); }
    47%, 85.71% { opacity: 1; transform: scale(1); animation-timing-function: cubic-bezier(0.45, 0, 0.55, 1); }
    93%, 100% { opacity: 0; transform: scale(1.03); }
  }
  /* Respiracao lenta, so com transformacao (a mais leve para o aparelho). */
  @keyframes lite-breathe {
    0%, 100% { transform: scale(1); }
    50%      { transform: scale(1.018); }
  }
  .perf-lite .card { -webkit-box-reflect: none; box-shadow: 0 0 calc(var(--w) * 0.06) rgb(var(--glow) / 0.5); }
  .perf-lite .hero__subtitles.is-in .hero__subtitle:not(.hero__subtitle--small) .s:nth-of-type(1) { animation: lite-in 7s linear both; }
  .perf-lite .hero__subtitles.is-in .hero__subtitle:not(.hero__subtitle--small) .s:nth-of-type(2) { animation: lite-in 7s linear 0.85s both; }
  .perf-lite .hero__subtitles.is-in .hero__subtitle:not(.hero__subtitle--small) .s:nth-of-type(3) { animation: lite-in 7s linear 1.7s both; }
  .perf-lite .hero__subtitles.is-in .hero__subtitle--far { animation: lite-far 7s linear both; filter: none; }
  .perf-lite .hero__subtitle--far { filter: none; }
}
