/* « Petites joies » (06/11/2026) : coche blanche qui se dessine, rebond, cadre blanc qui s'allume. */
.joy-check { width: 1.6rem; height: 1.6rem; flex: none; vertical-align: middle; filter: drop-shadow(0 1px 3px rgba(0, 0, 0, .45)); }
.joy-check-bg { fill: rgba(255, 255, 255, .18); stroke: #fff; stroke-width: 2; }
.joy-check-mark { fill: none; stroke: #fff; stroke-width: 2.8; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 20; stroke-dashoffset: 0; }
.lib-won-new .joy-check, .joy-check.draw { animation: joy-check-in .6s cubic-bezier(.3, 1.6, .5, 1) .35s both; }
.lib-won-new .joy-check-mark, .joy-check.draw .joy-check-mark { animation: joy-draw .45s ease-out .7s both; }
@keyframes joy-check-in { from { transform: scale(0) rotate(-40deg); opacity: 0; } }
@keyframes joy-draw { from { stroke-dashoffset: 20; } }
.joy-pop { animation: joy-pop .7s cubic-bezier(.3, 1.5, .5, 1); }
@keyframes joy-pop { 0% { transform: scale(1); } 30% { transform: scale(1.045); box-shadow: 0 0 0 4px rgba(255, 255, 255, .9), 0 0 26px 6px rgba(255, 230, 120, .75); } 100% { transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .joy-pop, .lib-won-new .joy-check, .lib-won-new .joy-check-mark, .joy-check.draw, .joy-check.draw .joy-check-mark { animation: none !important; } }
