@view-transition { navigation: auto; }

/* The original game art travels between pages; the rest arrives quietly. */
::view-transition-group(*) { animation-duration: .56s; animation-timing-function: cubic-bezier(.22,.7,.24,1); }
::view-transition-group(game-plane) { z-index: 2; }
::view-transition-group(game-icon) { z-index: 3; }
::view-transition-image-pair(game-plane),::view-transition-image-pair(game-icon) { isolation:isolate; }
::view-transition-old(game-plane),::view-transition-new(game-plane) { width:100%;height:100%;object-fit:cover;border-radius:32px;mix-blend-mode:normal; }
::view-transition-old(game-icon),::view-transition-new(game-icon) { width:100%;height:100%;object-fit:contain;border-radius:22%;mix-blend-mode:normal; }
::view-transition-old(root) { animation:page-leave .22s ease both; }
::view-transition-new(root) { animation:page-arrive .44s ease both; }
::view-transition-old(game-plane),::view-transition-old(game-icon) { animation:page-leave .32s ease both; }
::view-transition-new(game-plane),::view-transition-new(game-icon) { animation:page-ink .52s ease both; }
@keyframes page-leave { to { opacity:0; } }
@keyframes page-arrive { from { opacity:0;transform:translateY(10px); } to { opacity:1;transform:none; } }
@keyframes page-ink { from { opacity:0; } 28% { opacity:.45; } to { opacity:1; } }

/* Individual transform properties preserve the authored tilt and placement. */
.seal-impression { animation:seal-press .66s cubic-bezier(.2,.65,.25,1) both; }
@keyframes seal-press {
  0% { opacity:0;translate:0 -18px;scale:1.13; }
  52% { opacity:var(--seal-ink-opacity,1);translate:0 2px;scale:.97; }
  75% { translate:0 -1px;scale:1.015; }
  100% { opacity:var(--seal-ink-opacity,1);translate:0 0;scale:1; }
}
.motion-paused .seal-impression { animation:none; }
@media(prefers-reduced-motion:reduce) {
  @view-transition { navigation:none; }
  ::view-transition-group(*) { animation:none!important; }
  .seal-impression { animation:none; }
}
