/* =========================================================
   AGÊNCIA QVP — Animações / Keyframes
   ========================================================= */
@keyframes goldShift { to { background-position: 200% center; } }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes breathe { 0%, 100% { opacity: .7; transform: translate(-50%, -50%) scale(1); } 50% { opacity: 1; transform: translate(-50%, -50%) scale(1.08); } }
@keyframes haloPulse { 0%, 100% { opacity: .65; transform: scale(.96); } 50% { opacity: 1; transform: scale(1.04); } }
@keyframes shadowBreath { 0%, 100% { opacity: .8; transform: scaleX(1); } 50% { opacity: .55; transform: scaleX(.86); } }
@keyframes glowPulse {
  0%, 100% { box-shadow: 0 30px 80px -30px rgba(0, 0, 0, .8), 0 0 0 0 rgba(232, 199, 103, 0); }
  50% { box-shadow: 0 30px 80px -30px rgba(0, 0, 0, .8), 0 0 46px -6px rgba(232, 199, 103, .38); }
}
@keyframes gridMove { from { background-position: 0 0; } to { background-position: 0 64px; } }
@keyframes ping { 0% { box-shadow: 0 0 0 0 rgba(232, 199, 103, .7); } 80%, 100% { box-shadow: 0 0 0 10px rgba(232, 199, 103, 0); } }
@keyframes lineUp { from { transform: translateY(110%); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes floaty { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
@keyframes wheel { 0% { opacity: 0; transform: translateY(0); } 30% { opacity: 1; } 100% { opacity: 0; transform: translateY(12px); } }
@keyframes marquee { to { transform: translateX(-50%); } }
@keyframes scan { from { top: -30%; } to { top: 100%; } }
@keyframes eq { 0%, 100% { height: 4px; } 50% { height: 14px; } }
@keyframes ripple { 0% { transform: scale(1); opacity: .8; } 100% { transform: scale(1.6); opacity: 0; } }
@keyframes dropIn { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: none; } }
@keyframes coinFlipLoad { 0%, 100% { transform: rotateY(0); } 50% { transform: rotateY(180deg); } }
@keyframes raySway { 0%, 100% { transform: rotate(-4deg); opacity: .55; } 50% { transform: rotate(4deg); opacity: .9; } }

/* Reveal on scroll */
.reveal { opacity: 0; transform: translateY(40px); transition: opacity 1s var(--ease), transform 1s var(--ease); }
.reveal.in { opacity: 1; transform: none; }
.reveal[data-delay="1"] { transition-delay: .1s; }
.reveal[data-delay="2"] { transition-delay: .2s; }
.reveal[data-delay="3"] { transition-delay: .3s; }
.reveal[data-delay="4"] { transition-delay: .4s; }
.reveal-scale { opacity: 0; transform: scale(.94); transition: opacity 1.1s var(--ease), transform 1.1s var(--ease); }
.reveal-scale.in { opacity: 1; transform: none; }

/* Light rays in the hero (volumetric) */
.layer-rays { inset: -20% -10% 0 -10%; overflow: hidden; mix-blend-mode: screen; }
.layer-rays i {
  position: absolute; top: -10%; left: 50%; width: 22%; height: 130%; transform-origin: 50% 0;
  background: linear-gradient(180deg, rgba(255, 226, 160, .16) 0%, rgba(255, 210, 130, .05) 45%, transparent 80%);
  filter: blur(18px); animation: raySway 14s ease-in-out infinite;
}
.layer-rays i:nth-child(1) { margin-left: -38%; width: 12%; animation-delay: -2s; --r: -18deg; }
.layer-rays i:nth-child(2) { margin-left: -16%; width: 8%; animation-delay: -6s; opacity: .7; }
.layer-rays i:nth-child(3) { margin-left: 6%; width: 16%; animation-delay: -9s; }
.layer-rays i:nth-child(4) { margin-left: 26%; width: 7%; animation-delay: -4s; opacity: .6; }

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .reveal, .reveal-scale { opacity: 1; transform: none; }
}
