/* Cross-document fallback for the standalone house. App Router navigation uses
   a short live-content animation, without browser snapshots or an exit wait. */
@view-transition { navigation: auto; }
:root {
  --portfolio-motion-ease: cubic-bezier(0.23, 1, 0.32, 1);
  --portfolio-motion-fast: 150ms;
  --portfolio-motion-enter: 240ms;
}
.portfolio-route-surface { display: flow-root; }
.portfolio-header, .site-nav { view-transition-name: portfolio-header; }
::view-transition { pointer-events: none; }
::view-transition-group(portfolio-header) { animation: none; z-index: 100; }
::view-transition-old(portfolio-header) { display: none; }
::view-transition-new(portfolio-header) { animation: none; }
::view-transition-group(root) { animation-duration: 160ms; }
::view-transition-old(root) { animation: portfolio-fade-out 80ms linear both; }
::view-transition-new(root) { animation: portfolio-fade-in 160ms var(--portfolio-motion-ease) both; }
@keyframes portfolio-fade-out { from { opacity: 1; } to { opacity: 0; } }
@keyframes portfolio-fade-in { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) {
    animation-duration: 80ms !important;
    animation-delay: 0ms !important;
  }
}
