/* ==========================================================================
   SOGECAPRI · motion.css — animações, revelação no scroll, transições
   ========================================================================== */

/* Revelação ao entrar no viewport (activada por interactions.js) */
.reveal { opacity: 0; transform: translateY(34px); }
.reveal.in { opacity: 1; transform: none; transition: opacity .65s ease-out, transform .65s ease-out; }
.reveal[data-delay="1"].in { transition-delay: .08s; }
.reveal[data-delay="2"].in { transition-delay: .16s; }
.reveal[data-delay="3"].in { transition-delay: .24s; }
.reveal[data-delay="4"].in { transition-delay: .32s; }

/* Ken Burns do hero */
@keyframes kenburns { from { transform: scale(1.06); } to { transform: scale(1.14); } }

/* Transição de página (router) */
[data-page] { transition: opacity .34s ease; }
[data-page].page-leaving { opacity: 0; }
[data-page].page-entering { opacity: 0; }

/* Linha a crescer sob os títulos de secção no hover */
.section h2, .hover-rule { position: relative; }
.section h2::after, .hover-rule::after {
  content: ""; position: absolute; left: 0; bottom: -14px;
  height: 3px; width: 0; border-radius: 3px; background: var(--gold);
  transition: width .55s var(--ease); pointer-events: none;
}
.section:hover h2::after, .hover-rule:hover::after { width: 58px; }
.section-head--center h2::after { left: 50%; transform: translateX(-50%); }
.section--dark h2::after, .section--espresso h2::after { background: var(--gold-bright); }

@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1 !important; transform: none !important; }
  .hero__pattern { animation: none; }
  .section h2::after { transition: none; }
  html { scroll-behavior: auto; }
}
