/* Lightweight AOS shim (fade + slide) — data-aos 属性に対応 */
[data-aos] {
  opacity: 0;
  transition-property: opacity, transform;
  transition-duration: .8s;
  transition-timing-function: cubic-bezier(.25, .46, .45, .94);
  will-change: opacity, transform;
}
[data-aos="fade-up"]    { transform: translateY(28px); }
[data-aos="fade-down"]  { transform: translateY(-28px); }
[data-aos="fade-left"]  { transform: translateX(28px); }
[data-aos="fade-right"] { transform: translateX(-28px); }
[data-aos="zoom-in"]    { transform: scale(.94); }
[data-aos="fade"]       { transform: none; }
[data-aos].aos-animate {
  opacity: 1;
  transform: none;
}
