/* Brief entrances and responsive feedback; no moving QR codes or looping effects. */
.btn, .textbtn, .whatsapp-community-qr, .past-event-thumb {
  transition: transform .2s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.activity-grid > article, .upcoming-card {
  transition: transform .25s ease, box-shadow .25s ease;
}
nav a { position: relative; }
nav a::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: -5px;
  height: 2px; border-radius: 2px; background: var(--blue);
  transform: scaleX(0); transform-origin: left; transition: transform .2s ease;
}
nav a:focus-visible::after { transform: scaleX(1); }
@media (hover: hover) and (pointer: fine) {
  .btn:hover { transform: translateY(-2px); box-shadow: 0 6px 16px #38251a1a; }
  .textbtn:hover { transform: translateY(-1px); }
  .activity-grid > article:hover, .upcoming-card:hover {
    transform: translateY(-4px); box-shadow: 0 12px 26px #38251a14;
  }
  .whatsapp-community-qr:hover { box-shadow: 0 7px 20px #193d2524; }
  .past-event-thumb:hover { transform: translateY(-2px); }
  nav a:hover::after { transform: scaleX(1); }
}
.btn:active, .textbtn:active { transform: translateY(0); }
dialog:modal { animation: slkv-dialog-enter .22s ease-out; }
dialog:modal::backdrop { animation: slkv-backdrop-enter .18s ease-out; }
@keyframes slkv-dialog-enter {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes slkv-backdrop-enter { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .btn, .textbtn, .whatsapp-community-qr, .past-event-thumb,
  .activity-grid > article, .upcoming-card, .past-event-card, .janaza-provider,
  nav a::after { transition: none !important; }
  .btn:hover, .textbtn:hover, .activity-grid > article:hover, .upcoming-card:hover,
  .past-event-card:hover, .janaza-provider:hover, .past-event-thumb:hover { transform: none !important; }
  dialog:modal, dialog:modal::backdrop { animation: none; }
}
