/* Chuyển trang giữa các tài liệu (Chrome/Edge 126+, Safari 18.2+). Trình duyệt khác bỏ qua. */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: 180ms ease both lt-vt-out; }
::view-transition-new(root) { animation: 260ms var(--lt-ease) both lt-vt-in; }
::view-transition-group(*) { animation-duration: 420ms; animation-timing-function: var(--lt-ease); }
@keyframes lt-vt-out { to { opacity: 0; transform: translateY(-8px); } }
@keyframes lt-vt-in { from { opacity: 0; transform: translateY(12px); } }

/* Hiện dần khi cuộn tới. */
@supports (animation-timeline: view()) {
  .lt-reveal { animation: lt-rise both var(--lt-ease); animation-timeline: view(); animation-range: entry 0% entry 40%; }
  @keyframes lt-rise { from { opacity: 0; transform: translateY(24px); } }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; }
  /* Không có animation thì vòng điểm phải hiện ngay giá trị cuối. */
  .lt-ring { --lt-p: var(--v); }
}
