/* 09/11/2026 — grain animé de l'accueil, partagé avec les autres pages (carte, journal). Même mécanique que styles.css (.grain). */
.grain {
  position: fixed; inset: -50% 0 0 -50%; width: 200%; height: 200vh; z-index: 1100; pointer-events: none;
  opacity: 1; mix-blend-mode: hard-light; will-change: transform;
  background-image: url("/img/grain.png"); background-size: auto; background-repeat: repeat;
  animation: grain .5s steps(10) infinite;
}
@keyframes grain {
  0%, 100% { transform: translate(0, 0); } 10% { transform: translate(-5%, 5%); } 20% { transform: translate(3%, -10%); }
  30% { transform: translate(-2%, -15%); } 40% { transform: translate(-3%, -9%); } 50% { transform: translate(12%, 9%); }
  60% { transform: translate(9%, -4%); } 70% { transform: translate(-1%, 1%); } 80% { transform: translate(1%, -7%); } 90% { transform: translate(-7%, 1%); }
}
@media (prefers-reduced-motion: reduce) { .grain { animation: none; } }
