/*
 * fx-preloader: assinatura curta (<=1.2s) no primeiro acesso da sessão.
 * js/fx-preloader.js soma a classe .fx-preload em <html> (gated por
 * sessionStorage e prefers-reduced-motion). A própria animação termina em
 * visibility:hidden, então se o JS falhar em remover a classe, nada fica
 * escondido — só o overlay decorativo deixa de aparecer.
 */
html.fx-preload body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: block;
  pointer-events: none;
  background: var(--cream, #f5f3ec);
  animation: fx-preloader-saida 1.1s ease forwards;
}

html.fx-preload body::before {
  content: "";
  position: fixed;
  top: 50%;
  left: 50%;
  z-index: 10000;
  width: 44px;
  height: 44px;
  margin: -22px 0 0 -22px;
  pointer-events: none;
  border: 1px solid var(--gold, #a88c58);
  border-radius: 50%;
  opacity: 0;
  animation: fx-preloader-assinatura 1.1s ease forwards;
}

@keyframes fx-preloader-saida {
  0%, 55% {
    opacity: 1;
    visibility: visible;
  }
  100% {
    opacity: 0;
    visibility: hidden;
  }
}

@keyframes fx-preloader-assinatura {
  0% {
    opacity: 0;
    transform: scale(.85);
  }
  35%, 55% {
    opacity: 1;
    transform: scale(1);
  }
  100% {
    opacity: 0;
    transform: scale(1.05);
  }
}

@media (prefers-reduced-motion: reduce) {
  html.fx-preload body::after,
  html.fx-preload body::before {
    animation: none;
    display: none;
  }
}
