/* Keep routes immediately readable; reserve motion for intentional interactions. */
#root .reveal,
#root .stagger > * {
  animation: none !important;
  transition: none !important;
  opacity: 1 !important;
  transform: none !important;
}

@keyframes grandex-hero-enter {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

/* One short Home entrance gives the page a sense of arrival without a loader. */
body.grandex-home main > section:first-child > div:last-child {
  animation: grandex-hero-enter 420ms ease-out both;
}

/* Preserve useful feedback only where people can interact. */
body.grandex-home #root .stagger > .group.bg-cream.rounded-2xl {
  transition: transform 180ms ease, box-shadow 180ms ease !important;
}

body.grandex-home #root .stagger > .group.bg-cream.rounded-2xl:hover {
  transform: translateY(-4px) !important;
}

@media (prefers-reduced-motion: reduce) {
  #root *,
  #root *::before,
  #root *::after {
    animation: none !important;
    transition: none !important;
  }
}
