@media (hover: hover) and (pointer: fine) {
  .button, .metrics article, .school-button, .level-card, .indicator-card, .pathway-card, .case-card, .source-card, .school-stat button, .autocomplete-option { transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, filter .2s ease, background-color .2s ease; }
  .button:hover { transform: translateY(-3px) scale(1.02); box-shadow: 0 10px 24px #dfff6750; }
  .metrics article:hover { transform: translateY(-5px); box-shadow: 0 16px 34px #102b2b24; }
  .school-button:hover, .autocomplete-option:hover { transform: translateX(5px); border-color: #3e8c77; box-shadow: 0 8px 18px #14333318; }
  .level-card:hover { transform: translateY(-5px) scale(1.015); box-shadow: 0 12px 22px #1433332b; }
  #indicators .indicator-card:hover { transform: translateY(-6px); box-shadow: 0 16px 28px color-mix(in srgb, var(--tone) 28%, transparent); outline: 2px solid var(--tone); }
  .indicator-card:hover .progress-track i { filter: brightness(1.13) saturate(1.15); }
  .pathway-card:hover { transform: translateY(-6px); border-color: #dfff67; box-shadow: 0 16px 30px #00000035, inset 0 1px #ffffff35; }
  .pathway-card:hover .pathway-status { transform: scale(1.04); }
  .case-card:hover, .source-card:hover { transform: translateY(-6px); box-shadow: 0 16px 28px #14333324; border-color: #1b7765; }
  .school-stat button { position: relative; }
  .school-stat button:hover { transform: translateY(-3px); box-shadow: 0 8px 18px #00000030; }
  .school-stat button[data-hover-label]::after { content: attr(data-hover-label); position: absolute; left: 50%; bottom: calc(100% + 8px); z-index: 4; width: max-content; max-width: 180px; transform: translate(-50%, 5px); opacity: 0; pointer-events: none; padding: .32rem .5rem; border-radius: .35rem; background: #071e20; color: #eaffd4; font-size: .68rem; font-weight: 700; transition: opacity .18s ease, transform .18s ease; }
  .school-stat button[data-hover-label]:hover::after { opacity: 1; transform: translate(-50%, 0); }
  .leaflet-interactive { transition: filter .18s ease; }
  .leaflet-interactive:hover { filter: drop-shadow(0 0 7px #dfff67); }
}

@media (prefers-reduced-motion: reduce) {
  .button, .metrics article, .school-button, .level-card, .indicator-card, .pathway-card, .case-card, .source-card, .school-stat button, .autocomplete-option { transition: none !important; }
}
