/* Animações: reveal, título do hero, parallax, reduced-motion. */

[data-reveal] {
  opacity: 0; transform: translateY(18px);
  transition: opacity var(--t-reveal) var(--ease-out), transform var(--t-reveal) var(--ease-out);
  transition-delay: calc(var(--i, 0) * 90ms);
}
[data-reveal].is-visible { opacity: 1; transform: none; }

/* Palavras do título sobem de rotateX(40deg) */
.hero__title { perspective: 800px; }
.hero__title .w {
  opacity: 0; transform: rotateX(40deg) translateY(0.4em);
  transform-origin: 50% 100%;
  animation: word-rise 900ms var(--ease-out) forwards;
  animation-delay: calc(200ms + var(--i, 0) * 40ms);
}
@keyframes word-rise {
  to { opacity: 1; transform: none; }
}
.hero__copy > :not(.hero__title) {
  opacity: 0; animation: fade-up 900ms var(--ease-out) forwards;
}
.hero__copy .eyebrow { animation-delay: 60ms; }
.hero__copy .lead { animation-delay: 900ms; }
.hero__copy .hero__actions { animation-delay: 1050ms; }
.hero__copy .hero__proof { animation-delay: 1200ms; }
@keyframes fade-up {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: none; }
}

/* Linha de luz nos títulos de seção */
.section-head h2 { position: relative; display: block; width: fit-content; background: linear-gradient(90deg, var(--paper) 0 70%, var(--brass-300) 85%, var(--paper) 100%); background-size: 300% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; animation: shine 9s linear infinite; }
@keyframes shine { from { background-position: 200% 0; } to { background-position: -100% 0; } }

/* Camadas com parallax de rolagem */
.parallax { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }
.parallax i { position: absolute; border-radius: 50%; filter: blur(60px); opacity: 0.55; will-change: transform; }
.parallax i.brass { background: rgba(205, 174, 104, 0.18); }
.parallax i.wine { background: rgba(110, 30, 44, 0.45); }
.section > .container { position: relative; z-index: 1; }

@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1; transform: none; transition: none; }
  .hero__title .w, .hero__copy > :not(.hero__title) { animation: none; opacity: 1; transform: none; }
  .section-head h2 { animation: none; background: none; color: var(--paper); -webkit-text-fill-color: initial; }
  .card { transform: none !important; }
  .journey__line path { transition: none; stroke-dashoffset: 0; }
  .parallax i { transform: none !important; }
}
