/* Site-wide motion layer: page transitions, smooth scroll, reveal states */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: rm-out .28s cubic-bezier(.4,0,.2,1) both; }
::view-transition-new(root) { animation: rm-in .45s cubic-bezier(.16,1,.3,1) both; }
@keyframes rm-out { to { opacity: 0; transform: translateY(-6px); } }
@keyframes rm-in { from { opacity: 0; transform: translateY(10px); } }

html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }

/* Scroll progress hairline */
.rm-progress { position: fixed; top: 0; left: 0; right: 0; height: 2px; z-index: 9999; background: var(--brand-crimson); transform-origin: 0 50%; transform: scaleX(0); pointer-events: none; }

/* Gentle hover lift on cards and buttons */
.rm-lift { transition: transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s cubic-bezier(.16,1,.3,1); will-change: transform; }
.rm-lift:hover { transform: translateY(-3px); box-shadow: none; }

@media (prefers-reduced-motion: reduce) {
  ::view-transition-old(root), ::view-transition-new(root) { animation: none; }
  .rm-progress { display: none; }
  .rm-lift:hover { transform: none; }
}
