@keyframes riseWord {
  to { transform: translateY(0); }
}

@keyframes invite {
  0%, 100% { transform: scaleX(0.35); opacity: 0.5; }
  50% { transform: scaleX(1); opacity: 1; }
}

html.is-hidden .scroll-invite .bar {
  animation-play-state: paused;
}

.reveal {
  opacity: 0;
  transform: translateY(24px);
  filter: blur(6px);
  transition-property: opacity, transform, filter;
  transition-duration: var(--dur-slow);
  transition-timing-function: var(--ease);
}

.reveal.in {
  opacity: 1;
  transform: none;
  filter: none;
}

.legacy-line {
  opacity: 0;
  transform: translateY(16px);
  transition-property: opacity, transform;
  transition-duration: 0.9s;
  transition-timing-function: var(--ease);
}

.legacy-line.in {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hero-title .line span,
  .scroll-invite .bar,
  .floor-visual img,
  .floor-visual .fallback {
    animation: none !important;
    transition: none !important;
  }
  .hero-title .line span,
  .reveal,
  .legacy-line {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }
  .hero-photo img {
    transform: none !important;
    will-change: auto;
  }
  .loader { display: none; }
}
