/* GSS Fast Navigation v1.0.0 — visual continuity, not a single-page router. */
@view-transition { navigation: auto; }

/* Preserve the footer surface across same-origin document navigation. */
.gsb-nav { view-transition-name: gss-fixed-footer; }

@media (prefers-reduced-motion: no-preference) {
  ::view-transition-old(root) { animation: 105ms ease-out both gssfn-fade-out; }
  ::view-transition-new(root) { animation: 145ms ease-in both gssfn-fade-in; }
  ::view-transition-old(gss-fixed-footer),
  ::view-transition-new(gss-fixed-footer) { animation-duration: 85ms; }
  @keyframes gssfn-fade-out { from { opacity:1; } to { opacity:.85; } }
  @keyframes gssfn-fade-in { from { opacity:.85; } to { opacity:1; } }
}
@media (prefers-reduced-motion: reduce) {
  ::view-transition-old(root), ::view-transition-new(root),
  ::view-transition-old(gss-fixed-footer), ::view-transition-new(gss-fixed-footer) {
    animation-duration: .01ms !important;
  }
}

/* Tiny progress indicator only after a real navigation is taking longer than expected. */
#gssfn-progress {
  display: block !important;
  position: fixed !important;
  inset: 0 0 auto 0 !important;
  height: 3px !important;
  width: 100% !important;
  background: transparent !important;
  pointer-events: none !important;
  z-index: 2147483647 !important;
  overflow: hidden !important;
  opacity: 0 !important;
  transition: opacity .12s linear !important;
}
body.gssfn-navigating #gssfn-progress { opacity: 1 !important; }
#gssfn-progress::after {
  content: "";
  position: absolute;
  left: -38%; top: 0;
  width: 38%; height: 100%;
  background: #e9bb52;
  box-shadow: 0 0 5px rgba(233,187,82,.5);
  animation: gssfn-progress 1.15s ease-in-out infinite;
}
@keyframes gssfn-progress { to { left: 100%; } }
@media (prefers-reduced-motion: reduce) {
  #gssfn-progress::after { animation: none; left: 0; width: 100%; }
}
