.reveal { opacity: 0; transform: translateY(28px); transition: opacity .7s ease, transform .7s ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }

@keyframes fadeDown {
  from { opacity: 0; transform: translateY(-18px); }
  to   { opacity: 1; transform: translateY(0); }
}
.hero-ornament { width: 60px; height: 2px; background: linear-gradient(90deg, transparent, var(--color-gold), transparent); margin: 0 auto var(--space-6); animation: fadeDown .8s ease both; }
.hero-tagline { animation: fadeDown .8s .1s ease both; }
h1 { animation: fadeDown .9s .2s ease both; }
.hero-sub { animation: fadeDown .9s .35s ease both; }
.hero-cta { animation: fadeDown .9s .5s ease both; }
.scroll-hint { animation: fadeDown 1s .8s ease both; }

@keyframes bounce {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(6px); }
}
.scroll-dot { width: 6px; height: 6px; background: var(--color-gold); border-radius: 50%; animation: bounce 2s infinite; }
