/* wall-drift · the wall answers back
   Matching faces light up where they stand (inset ring, soft glow, full colour); the others step back.
   Nothing moves out of its slot, so faces never stack on their neighbours. */
#wall .wfac { transition: opacity 600ms var(--ease-out), transform 900ms var(--ease-out), filter 600ms var(--ease-out), box-shadow 500ms var(--ease-out); }
#wall.filtering .wfac:not(.match) { opacity: .3; filter: grayscale(1); }
#wall.filtering .wfac.match { box-shadow: inset 0 0 0 3px var(--blue), 0 16px 36px -20px rgba(46,111,216,.75); }
#wall.filtering .wfac.match::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: radial-gradient(120% 60% at 50% 0%, rgba(143,193,255,.28), transparent 60%); animation: wdGlow 900ms var(--ease-out) both; }
@keyframes wdGlow { from { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { #wall .wfac { transition: opacity 1ms, filter 1ms; } #wall.filtering .wfac.match::after { animation: none; } }
.rm #wall .wfac { transition: opacity 1ms, filter 1ms; }
.rm #wall.filtering .wfac.match::after { animation: none; }
/* faces that don't match are out of play: no clicks, no hover */
#wall.filtering .wfac:not(.match) { pointer-events: none; cursor: default; }
