.page-transition-overlay {
  position: fixed; inset: 0; z-index: 9999;
  background: #0C0A09;
  transform-origin: bottom;
  animation: pageReveal 0.8s cubic-bezier(0.76, 0, 0.24, 1) forwards;
}

@keyframes pageReveal {
  0%   { transform: scaleY(1); }
  100% { transform: scaleY(0); }
}

.reveal {
  opacity: 0;
  transition: opacity 0.8s cubic-bezier(0.4,0,0.2,1), transform 0.8s cubic-bezier(0.4,0,0.2,1);
}

.reveal-up    { transform: translateY(40px); }
.reveal-left  { transform: translateX(-40px); }
.reveal-right { transform: translateX(40px); }

.reveal.visible {
  opacity: 1;
  transform: none;
}

.reveal-delay-1 { transition-delay: 0.15s; }
.reveal-delay-2 { transition-delay: 0.3s; }
.reveal-delay-3 { transition-delay: 0.45s; }
.reveal-delay-4 { transition-delay: 0.6s; }

.hero-tag     { animation: heroFade 0.6s 0.2s ease both; }
.hero h1      { animation: heroFade 0.8s 0.35s ease both; }
.hero p       { animation: heroFade 0.8s 0.5s ease both; }
.hero-actions { animation: heroFade 0.8s 0.65s ease both; }
.hero-stat-row { animation: heroFade 0.8s 0.8s ease both; }
.hero-visual  { animation: heroReveal 1s 0.3s cubic-bezier(0.4,0,0.2,1) both; }

@keyframes heroFade {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes heroReveal {
  from { opacity: 0; clip-path: inset(0 0 100% 0); }
  to   { opacity: 1; clip-path: inset(0); }
}

.navbar {
  animation: navFade 0.5s 0.1s ease both;
}

@keyframes navFade {
  from { opacity: 0; transform: translateY(-20px); }
  to   { opacity: 1; transform: translateY(0); }
}

.scroll-progress {
  position: fixed; top: 0; left: 0; right: 0; height: 1px; z-index: 9999;
}

.scroll-progress-bar {
  height: 100%; width: 0%;
  background: var(--gold);
  transition: width 0.1s linear;
}

@media (prefers-reduced-motion: reduce) {
  .reveal, .hero-tag, .hero h1, .hero p, .hero-actions,
  .hero-stat-row, .hero-visual, .navbar { animation: none !important; }
}
