/* Native same-origin page transitions. Only the portfolio and Playground opt in. */
@view-transition { navigation: auto; }
/* Resolve cross-page fragments before the new-page snapshot.
   In-page menu clicks request smooth scrolling explicitly in script.js. */
:root { scroll-behavior: auto; }
::view-transition-group(root) { animation: none; }
::view-transition-old(root),
::view-transition-new(root) { animation: none; mix-blend-mode: normal; }
::view-transition-new(root) { z-index: 1; }
:root:has(.pg-theme-dark)::view-transition-new(root) {
  animation: pg-swipe-in .52s cubic-bezier(.45, 0, .55, 1) both;
}
:root:not(:has(.pg-theme-dark))::view-transition-new(root) {
  animation: pg-swipe-back .52s cubic-bezier(.45, 0, .55, 1) both;
}
@keyframes pg-swipe-in {
  from { clip-path: polygon(100% 0, 108% 0, 108% 100%, 108% 100%); }
  to { clip-path: polygon(-8% 0, 108% 0, 108% 100%, 0 100%); }
}
@keyframes pg-swipe-back {
  from { clip-path: polygon(-8% 0, -8% 0, 0 100%, -8% 100%); }
  to { clip-path: polygon(-8% 0, 100% 0, 108% 100%, -8% 100%); }
}
@media (prefers-reduced-motion: reduce) {
  @view-transition { navigation: none; }
  ::view-transition-new(root) { animation: none !important; }
}
