/* Native scrolling; finite reveal is applied by motion.js only after intersection.
   No hidden initial state, animated blur, fixed GPU layers or scroll hijacking. */
@media (prefers-reduced-motion: no-preference) and (hover: hover) and (pointer: fine) {
  .brand-text-link svg, .dp-text-link span, .dp-actions a svg,
  .marketing-actions .btn-solid svg {transition:transform 220ms cubic-bezier(.16,1,.3,1);}
  .brand-text-link:hover svg, .dp-text-link:hover span,
  .dp-actions a:hover svg, .marketing-actions .btn-solid:hover svg {transform:translateX(3px);}
}
@media (prefers-reduced-motion: reduce) {
  [data-motion] {opacity:1!important;translate:none!important;}
}
@media print {
  [data-motion] {opacity:1!important;translate:none!important;}
}
