/* Content is visible by default. A reveal class is added only as a block enters view. */
@keyframes duco-reveal-in {
  from { opacity: .25; transform: translate3d(0, 10px, 0); }
  to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: no-preference) {
  .duco-reveal-in { animation: duco-reveal-in 480ms cubic-bezier(.2,.65,.3,1) 1 both; }
  :where(.dp-link,.dm26b-text-link,.dm26b-light-link,.dm26-secondary,.dm26-nav-link,.dm26b-footer-link,.dm26b-footer-small-link) {
    transition: color 180ms ease, border-color 180ms ease;
  }
  :where(.dp-button,.dm26-primary,.dm26-nav-contact) {
    transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
  }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  /* These wrappers already contain the project image; clipping does not change their dimensions. */
  :where(.dm26b-work-card,.dm26b-article-image-link,.ds-project>a,.ds-article>a:first-child) { overflow: clip; }
  .ds-article>a:first-child { display: block; }
  :where(.dm26b-work-image,.dm26b-article-image,.ds-project>a>.ds-project-image,.ds-article>a:first-child>img) {
    transition: transform 360ms cubic-bezier(.2,.65,.3,1);
    transform-origin: center center;
  }
  .dm26b-work-card:hover .dm26b-work-image,
  .dm26b-article-image-link:hover .dm26b-article-image,
  .ds-project>a:hover>.ds-project-image,
  .ds-article>a:first-child:hover>img { transform: scale(1.02); }
  :where(.dp-button,.dm26-primary,.dm26-nav-contact):hover { transform: translateY(-1px); }
  :where(.dp-button,.dm26-primary,.dm26-nav-contact):active { transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .duco-reveal-in { animation: none!important; opacity: 1!important; transform: none!important; }
  :where(.dp-link,.dm26b-text-link,.dm26b-light-link,.dm26-secondary,.dm26-nav-link,.dm26b-footer-link,.dm26b-footer-small-link,.dp-button,.dm26-primary,.dm26-nav-contact,.dm26b-work-image,.dm26b-article-image,.ds-project-image,.ds-article img) {
    transition: none!important; transform: none!important;
  }
}
