/* Site-wide motion: reveal on scroll (only when JS is running; see motion.js). */
.sy-js .sy-rv { opacity: 0; transform: translate3d(0, 22px, 0); }
.sy-js .sy-rv.is-in {
	opacity: 1;
	transform: none;
	transition: opacity .9s cubic-bezier(.2, .7, .2, 1), transform .9s cubic-bezier(.2, .7, .2, 1);
	transition-delay: calc(var(--sy-rv-i, 0) * 80ms);
}
@media (prefers-reduced-motion: reduce) {
	.sy-js .sy-rv { opacity: 1; transform: none; }
}

/* Consistent interaction feel. */
:root { --sy-ease: cubic-bezier(.2, .7, .2, 1); }
a, button { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 2px solid var(--sy-navy, #283951); outline-offset: 3px; }
.sy-link .sy-arrow, .sy-btn-dark .sy-arrow, .sy-cx__name .sy-arrow, .sy-ml__item .sy-arrow { transition: transform .3s var(--sy-ease); }
.sy-link:hover .sy-arrow, .sy-btn-dark:hover .sy-arrow, .sy-cx__card:hover .sy-arrow { transform: translateX(3px); }
.sy-link:hover svg[width="14"] { transform: translate(2px, -2px); }
