/* Shared by Django pages and the React shell; never waits for the app bundle. */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: natalai-page-out 120ms ease-out both; }
::view-transition-new(root) { animation: natalai-page-in 180ms ease-out both; }
@keyframes natalai-page-out { to { opacity: 0; } }
@keyframes natalai-page-in { from { opacity: 0; } to { opacity: 1; } }

#navigation-feedback {
  --nav-bg: #f7f4ed;
  --nav-ink: #211b32;
  --nav-gold: #a6772b;
  position: fixed;
  z-index: 2147483646;
  top: max(14px, env(safe-area-inset-top));
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 10px;
  width: max-content;
  max-width: calc(100vw - 32px);
  box-sizing: border-box;
  padding: 12px 18px;
  border: 1px solid color-mix(in srgb, var(--nav-gold) 25%, transparent);
  border-radius: 24px;
  background: var(--nav-bg);
  color: var(--nav-ink);
  box-shadow: 0 6px 28px #0002;
  font: 500 13px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  pointer-events: none;
}
html.dark #navigation-feedback,
html[data-theme="dark"] #navigation-feedback {
  --nav-bg: #161120;
  --nav-ink: #f2ecdf;
  --nav-gold: #e6bc56;
}
#navigation-feedback[hidden] { display: none; }
#navigation-feedback::before,
[data-navigation-pending]::after {
  content: "";
  display: inline-block;
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  box-sizing: border-box;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  vertical-align: middle;
  animation: natalai-navigation-spin .75s linear infinite;
}
#navigation-feedback::before { color: var(--nav-gold); }
[data-navigation-pending] { cursor: progress !important; }
[data-navigation-pending]::after { margin-inline-start: 8px; }
html.natalai-navigating::before {
  content: "";
  position: fixed;
  z-index: 2147483647;
  inset: 0 0 auto;
  height: 3px;
  background: linear-gradient(90deg, transparent, #b98c40, #e6bc56, transparent);
  background-size: 50% 100%;
  background-repeat: no-repeat;
  animation: natalai-navigation-progress 1.2s ease-in-out infinite;
}
@keyframes natalai-navigation-spin { to { transform: rotate(360deg); } }
@keyframes natalai-navigation-progress {
  from { background-position: -100% 0; }
  to { background-position: 200% 0; }
}
@media (prefers-reduced-motion: reduce) {
  ::view-transition-old(root), ::view-transition-new(root) { animation: none; }
  #navigation-feedback::before, [data-navigation-pending]::after,
  html.natalai-navigating::before { animation: none; }
  html.natalai-navigating::before { background-size: 100% 100%; }
}
