/* View Transitions API for smooth page transitions */
@view-transition {
  navigation: auto;
}

/* Prevent animation for persistent elements */
::view-transition-old(header-persistent),
::view-transition-new(header-persistent),
::view-transition-old(menu-persistent),
::view-transition-new(menu-persistent) {
  animation: none;
  mix-blend-mode: normal;
}

/* Root transition - only for content area */
::view-transition-old(root),
::view-transition-new(root) {
  animation-duration: 0.2s;
}

/* Fade effect only for content */
::view-transition-old(root) {
  animation-name: fade-out;
}

::view-transition-new(root) {
  animation-name: fade-in;
}

/* Define animations */
@keyframes fade-out {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}

@keyframes fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* Fallback for browsers without View Transitions API */
@supports not (view-transition-name: none) {
  body {
    animation: fade-in 0.3s ease-in-out;
  }
}

body {
  opacity: 0;
  animation: fade-in 0.3s ease-in-out forwards;
}

/* Ensure body is visible even if JS doesn't load */
body.loaded {
  opacity: 1;
}
