/* HOME — dez efeitos aprovados. Este arquivo é carregado somente na página inicial.
   Acessibilidade: nenhuma animação é necessária para ler ou usar as informações. */

/* 01. Entrada suave e sequencial dos textos de cada slide ativo. */
@keyframes home-motion-rise {
  from { opacity:0; transform:translate3d(0,18px,0); }
  to { opacity:1; transform:translate3d(0,0,0); }
}
.site-page-home .home-event-slide.home-motion-current .home-kicker { animation:home-motion-rise .55s ease-out both; }
.site-page-home .home-event-slide.home-motion-current h1 { animation:home-motion-rise .65s .12s ease-out both; }
.site-page-home .home-event-slide.home-motion-current .home-hero__content>p { animation:home-motion-rise .65s .24s ease-out both; }
.site-page-home .home-event-slide.home-motion-current .home-hero__meta { animation:home-motion-rise .65s .34s ease-out both; }
.site-page-home .home-event-slide.home-motion-current .home-hero__actions { animation:home-motion-rise .65s .43s ease-out both; }

/* 03. Zoom de fundo lento, com corte limitado à área do próprio banner. */
@keyframes home-motion-ken-burns {
  from { transform:scale(1); }
  to { transform:scale(1.085); }
}
.site-page-home .home-event-carousel .home-slides { overflow:hidden; pointer-events:none; }
.site-page-home .home-event-slide.home-motion-current .home-slide {
  animation:home-motion-ken-burns 15s ease-in-out alternate infinite;
  transform-origin:center center;
  will-change:transform;
}

/* 04. Progresso da reprodução; acompanha a pausa, o foco e a aba inativa. */
@keyframes home-motion-progress {
  from { transform:scaleX(0); }
  to { transform:scaleX(1); }
}
.site-page-home .home-carousel-progress {
  position:absolute;left:0;right:0;bottom:0;height:4px;z-index:5;
  background:rgba(255,255,255,.22);overflow:hidden;pointer-events:none;
}
.site-page-home .home-carousel-progress__bar {
  position:absolute;inset:0;background:linear-gradient(90deg,#ffe5a1,#f8ae55);
  transform:scaleX(0);transform-origin:left center;
}
.site-page-home .home-carousel-cycle-started .home-carousel-progress__bar {
  animation:home-motion-progress var(--home-slide-duration,7000ms) linear both;
}
.site-page-home .home-carousel-is-paused .home-carousel-progress__bar { animation-play-state:paused; }
.site-page-home .home-carousel-single-slide .home-carousel-progress { display:none; }

/* 05. Paralaxe discreta: são camadas decorativas, não capturam gestos ou cliques. */
.site-page-home .home-motion-depth {
  position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;
}
.site-page-home .home-motion-depth span {
  position:absolute;display:block;border-radius:50%;pointer-events:none;
  transition:transform .22s ease-out;
}
.site-page-home .home-motion-depth__one {
  width:clamp(150px,22vw,360px);aspect-ratio:1;right:5%;top:-20%;
  background:radial-gradient(circle at 32% 38%,rgba(255,230,176,.21),rgba(255,223,156,.04) 55%,transparent 72%);
  transform:translate3d(var(--home-pointer-x,0px),var(--home-pointer-y,0px),0);
}
.site-page-home .home-motion-depth__two {
  width:clamp(110px,17vw,280px);aspect-ratio:1;right:30%;bottom:-22%;
  border:1px solid rgba(255,255,255,.10);box-shadow:inset 0 0 45px rgba(255,255,255,.04);
  transform:translate3d(var(--home-pointer-x-reverse,0px),var(--home-pointer-y-reverse,0px),0);
}

/* 08. Cards sobem ligeiramente ao hover e ao foco de teclado. */
.site-page-home .category-showcase__card,
.site-page-home .home-event-card { position:relative;overflow:hidden;transition:transform .28s ease,box-shadow .28s ease,filter .28s ease; }
.site-page-home .category-showcase__card:hover,
.site-page-home .category-showcase__card:focus-visible,
.site-page-home .home-event-card:hover,
.site-page-home .home-event-card:focus-within {
  transform:translate3d(0,-7px,0);
  box-shadow:0 19px 38px rgba(19,37,66,.19);
}

/* 09. Reflexo leve que atravessa uma vez o card ao receber interação. */
.site-page-home .category-showcase__card::after,
.site-page-home .home-event-card::after {
  content:"";position:absolute;z-index:3;top:-30%;bottom:-30%;left:-15%;width:50%;
  background:linear-gradient(100deg,transparent 8%,rgba(255,255,255,.05) 30%,rgba(255,255,255,.22) 52%,transparent 90%);
  opacity:0;transform:translate3d(-160%,0,0) skewX(-18deg);
  transition:transform .72s ease-out,opacity .25s ease-out;pointer-events:none;
}
.site-page-home .category-showcase__card:hover::after,
.site-page-home .category-showcase__card:focus-visible::after,
.site-page-home .home-event-card:hover::after,
.site-page-home .home-event-card:focus-within::after {
  opacity:1;transform:translate3d(390%,0,0) skewX(-18deg);
}

/* 11. Setas acompanham o hover/foco do link; mantêm os rótulos legíveis. */
.site-page-home .home-cta-arrow,
.site-page-home .category-showcase__action i,
.site-page-home .section-link i,
.site-page-home .memory-card em i {
  display:inline-block;transition:transform .26s ease;vertical-align:middle;
}
.site-page-home .home-hero__actions .btn:hover .home-cta-arrow,
.site-page-home .home-hero__actions .btn:focus-visible .home-cta-arrow,
.site-page-home .category-showcase__card:hover .category-showcase__action i,
.site-page-home .category-showcase__card:focus-visible .category-showcase__action i,
.site-page-home .section-link:hover i,
.site-page-home .section-link:focus-visible i,
.site-page-home .memory-card:hover em i,
.site-page-home .memory-card:focus-visible em i { transform:translateX(6px); }

/* 12. A trilha colorida avança conforme os marcos passam pela área de leitura. */
.site-page-home .programacao-timeline::after {
  content:"";position:absolute;top:0;bottom:0;left:50%;width:4px;z-index:1;
  background:linear-gradient(#4ec2e5,#4060ae 50%,#f08b37);
  border-radius:999px;pointer-events:none;
  transform-origin:top center;
  transform:translateX(-50%) scaleY(var(--home-timeline-progress,0));
  transition:transform .15s linear;
}

/* 13. Cada marco recebe um único realce suave ao entrar na tela. */
@keyframes home-motion-milestone {
  0% { transform:scale(.78); filter:brightness(1); }
  55% { transform:scale(1.19); filter:brightness(1.15); }
  100% { transform:scale(1); filter:brightness(1); }
}
.site-page-home .programacao-entry.home-motion-step-visible .programacao-axis span {
  animation:home-motion-milestone .68s var(--home-step-delay,0ms) ease-out both;
}

/* 14. Bloco de contadores preenchidos com quantidades reais da Home. */
.site-page-home .home-community-stats {
  background:linear-gradient(120deg,#edf2f9,#fbfcff);padding:clamp(2rem,4vw,3.2rem) 0;
}
.site-page-home .home-community-stats__heading { text-align:center;margin-bottom:1.4rem; }
.site-page-home .home-community-stats__heading h2 { font-size:clamp(1.4rem,2.6vw,2rem);color:#182852;margin:.3rem 0 0; }
.site-page-home .home-community-stats__grid {
  display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem;max-width:980px;margin:auto;
}
.site-page-home .home-community-stats__card {
  display:flex;align-items:center;flex-direction:column;gap:.35rem;padding:1.35rem 1rem;
  border:1px solid #dce4f0;border-radius:18px;background:#fff;
  box-shadow:0 8px 22px rgba(17,34,65,.06);text-align:center;
}
.site-page-home .home-community-stats__card i { font-size:1.45rem;color:#8d6925; }
.site-page-home .home-stat-number { font-size:clamp(2rem,3.8vw,3rem);font-weight:850;line-height:1.15;color:#182852;font-variant-numeric:tabular-nums; }
.site-page-home .home-community-stats__card span { color:#58667d;font-size:.93rem;font-weight:650; }

@media (max-width:820px) {
  .site-page-home .programacao-timeline::after { left:20px;transform:scaleY(var(--home-timeline-progress,0)); }
}
@media (max-width:480px) {
  .site-page-home .programacao-timeline::after { left:15px; }
  .site-page-home .home-motion-depth__two { opacity:.45; }
  .site-page-home .home-community-stats__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .site-page-home .home-community-stats__card { padding:1.1rem .55rem; }
  .site-page-home .home-community-stats__card span { font-size:.78rem; }
}

/* Respeita usuários que desativaram movimentos no sistema operacional. */
@media (prefers-reduced-motion:reduce) {
  .site-page-home .home-event-slide.home-motion-current .home-kicker,
  .site-page-home .home-event-slide.home-motion-current h1,
  .site-page-home .home-event-slide.home-motion-current .home-hero__content>p,
  .site-page-home .home-event-slide.home-motion-current .home-hero__meta,
  .site-page-home .home-event-slide.home-motion-current .home-hero__actions,
  .site-page-home .home-event-slide.home-motion-current .home-slide,
  .site-page-home .programacao-entry.home-motion-step-visible .programacao-axis span { animation:none!important; }
  .site-page-home .home-carousel-progress { display:none; }
  .site-page-home .home-motion-depth { display:none; }
  .site-page-home .category-showcase__card,
  .site-page-home .home-event-card,
  .site-page-home .category-showcase__card::after,
  .site-page-home .home-event-card::after,
  .site-page-home .home-cta-arrow,
  .site-page-home .category-showcase__action i,
  .site-page-home .section-link i,
  .site-page-home .programacao-timeline::after { transition:none!important; }
  .site-page-home .category-showcase__card:hover,
  .site-page-home .category-showcase__card:focus-visible,
  .site-page-home .home-event-card:hover,
  .site-page-home .home-event-card:focus-within { transform:none; }
  .site-page-home .category-showcase__card::after,
  .site-page-home .home-event-card::after { display:none; }
  .site-page-home .programacao-timeline::after { transform:translateX(-50%) scaleY(1); }
}
