/* Content remains visible if scripts or motion support are unavailable. */
.reveal, .story-scene, .service-chapter {
  opacity: 1;
  transform: none;
  transition: none;
  will-change: auto;
}

#mobile-menu-overlay.menu-closing { visibility: visible; pointer-events: none; }
#mobile-menu-overlay .mobile-menu-item {
  transform: translateY(14px);
  transition: opacity .36s ease, transform .46s cubic-bezier(.16, 1, .3, 1), color .2s;
  transition-delay: 0s;
}
#mobile-menu-overlay.menu-active .mobile-menu-item { transform: translateY(0); }
#mobile-menu-overlay.menu-active .mobile-menu-item:nth-child(2) { transition-delay: 35ms; }
#mobile-menu-overlay.menu-active .mobile-menu-item:nth-child(3) { transition-delay: 70ms; }
#mobile-menu-overlay.menu-active .mobile-menu-item:nth-child(4) { transition-delay: 105ms; }
#mobile-menu-overlay.menu-active .mobile-menu-item:nth-child(5) { transition-delay: 140ms; }

@media (prefers-reduced-motion: no-preference) {
  @view-transition { navigation: auto; }

  #main-nav { view-transition-name: site-navigation; }
  ::view-transition-old(root) { animation: page-out .4s cubic-bezier(0.22, 1, 0.36, 1) both; }
  ::view-transition-new(root) { animation: page-in .8s cubic-bezier(0.22, 1, 0.36, 1) both; }
  ::view-transition-group(site-navigation) { animation: none; z-index: 1; }
  ::view-transition-old(site-navigation) { animation: none; opacity: 0; }
  ::view-transition-new(site-navigation) { animation: none; }

  .showcase-next a, .button-primary, .home-hero-primary {
    transition: transform .3s cubic-bezier(.16, 1, .3, 1), background-color .25s, border-color .25s, box-shadow .25s;
  }
  @media (hover: hover) {
    .showcase-next a:hover, .button-primary:hover, .home-hero-primary:hover { transform: translateY(-3px); }
  }
}

@keyframes page-out { to { opacity: 0; transform: scale(0.98); } }
@keyframes page-in { from { opacity: 0; transform: translateY(20px) scale(0.98); } to { opacity: 1; transform: translateY(0) scale(1); } }

@media (prefers-reduced-motion: reduce) {
  #mobile-menu-overlay, #mobile-menu-overlay .mobile-menu-item { transition: none; }
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; }
}
