/* Move the existing halftones only: hover on pointer devices, viewport presence on touch. */
@keyframes dot-drift-diagonal{from{background-position:0 0}to{background-position:24px -24px}}
@keyframes dot-drift-diagonal-small{from{background-position:0 0}to{background-position:12px -12px}}

:is(.public-feature-grid article,.application-category-card,.public-contact-layout aside):hover::before,
:is(.public-feature-grid article,.application-category-card,.public-contact-layout aside).dots-in-view::before{
  animation:dot-drift-diagonal-small 8s linear infinite;
}

:is(.public-feature-grid,.application-category-grid,.application-process,.public-contact-layout,.public-hero-stamp,.stat-grid article,.admin-form fieldset,.upload-card,.folder-panel,.activity-chart,.empty-state):hover,
:is(.public-feature-grid,.application-category-grid,.application-process,.public-contact-layout,.public-hero-stamp,.stat-grid article,.admin-form fieldset,.upload-card,.folder-panel,.activity-chart,.empty-state).dots-in-view{
  animation:dot-drift-diagonal 14s linear infinite;
}

.effects-off :is(.public-feature-grid,.application-category-grid,.application-process,.public-contact-layout,.public-hero-stamp,.stat-grid article,.admin-form fieldset,.upload-card,.folder-panel,.activity-chart,.empty-state),
.effects-off :is(.public-feature-grid article,.application-category-card,.public-contact-layout aside)::before,
.reactivity-off :is(.public-feature-grid,.application-category-grid,.application-process,.public-contact-layout,.public-hero-stamp,.stat-grid article,.admin-form fieldset,.upload-card,.folder-panel,.activity-chart,.empty-state),
.reactivity-off :is(.public-feature-grid article,.application-category-card,.public-contact-layout aside)::before{
  animation:none!important;
}

@media(prefers-reduced-motion:reduce){
  :is(.public-feature-grid,.application-category-grid,.application-process,.public-contact-layout,.public-hero-stamp,.stat-grid article,.admin-form fieldset,.upload-card,.folder-panel,.activity-chart,.empty-state),
  :is(.public-feature-grid article,.application-category-card,.public-contact-layout aside)::before{
    animation:none!important;
  }
}
