/* Content remains visible until an observed entry starts its own animation. */
[data-application-panel][hidden] {
  display: none !important;
}

@media (prefers-reduced-motion: no-preference) {
  @keyframes gb-reveal {
    from { opacity: 0; transform: translateY(18px); }
    to { opacity: 1; transform: translateY(0); }
  }

  @keyframes gb-application-enter {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
  }

  .motion-reveal {
    animation: gb-reveal 560ms cubic-bezier(0.2, 0.65, 0.3, 1) var(--reveal-delay, 0ms) backwards;
  }

  .application-explorer-ready [data-application-panel].is-active {
    animation: gb-application-enter 400ms ease-out backwards;
  }

  .button,
  .text-link > span,
  .range-scene > img,
  .application-guide-image img {
    transition: transform 240ms ease, background-color 160ms ease, border-color 160ms ease;
  }

  @media (hover: hover) and (pointer: fine) {
    .button:hover { transform: translateY(-2px); }
    .text-link:hover > span { transform: translateX(4px); }
    .range-scene:hover > img,
    .application-guide-image:hover img { transform: scale(1.025); }
  }
}

@media (prefers-reduced-motion: reduce) {
  .motion-reveal,
  .application-explorer-ready [data-application-panel].is-active,
  .button,
  .text-link > span,
  .range-scene > img,
  .application-guide-image img {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}
