/* ANB Immigration — SPA shell and route-transition layer */
html { scroll-behavior: smooth; }
html.spa-navigating { cursor: progress; }
#spa-view { min-height: 65vh; transition: opacity .18s ease, transform .18s ease; }
#spa-view[aria-busy="true"] { opacity: .58; pointer-events: none; }
#spa-view.spa-route-enter { animation: anb-spa-enter .28s ease both; }
#spa-progress { position: fixed; inset: 0 0 auto 0; z-index: 9999; height: 3px; pointer-events: none; opacity: 0; overflow: hidden; }
#spa-progress span { display: block; width: 34%; height: 100%; background: #0d7d96; transform: translateX(-120%); }
#spa-progress.is-active { opacity: 1; }
#spa-progress.is-active span { animation: anb-spa-progress 1s ease-in-out infinite; }
.spa-noscript { margin: 7rem auto 2rem; max-width: 760px; padding: 1rem 1.25rem; border: 1px solid rgba(13,125,150,.3); border-radius: 14px; background: #fff; color: #040d15; font: 500 1rem/1.5 Inter, sans-serif; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.gap-3\.5 { gap:.875rem; }
@keyframes anb-spa-enter { from { opacity: .72; transform: translateY(5px); } to { opacity: 1; transform: none; } }
@keyframes anb-spa-progress { 0% { transform: translateX(-120%); } 55% { transform: translateX(125%); } 100% { transform: translateX(310%); } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  #spa-view { transition: none; }
  #spa-view.spa-route-enter, #spa-progress.is-active span { animation: none; }
  #spa-progress.is-active span { width: 100%; transform: none; }
}
