/* Effet « Exclusive » : reflet holographique + lignes onyx + balayage lumineux, appliqués sur le FOND de la carte uniquement.
   Le calque (.sm-exclusive-sheen) est placé juste après l'image de fond, sous l'image de la carte, le badge « ★ Exclusive » et le texte : il ne les recouvre jamais.
   Feuille statique liée par vite.config.js (comme /profile-fonts.css) : publicDir est désactivé, une url('/images/…') dans le bundle ferait avertir Vite au build.
   Animations : transform/opacity seulement (compositeur), une seule couche animée par carte ; coupées si « réduire les animations ». */
.sm-exclusive-sheen { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; border-radius: inherit; contain: paint; }
.sm-exclusive-sheen::before { content: ''; position: absolute; inset: 0; background: linear-gradient(125deg, rgba(255, 120, 214, .55) 0%, rgba(120, 200, 255, .5) 38%, rgba(255, 232, 150, .5) 62%, rgba(255, 120, 214, .55) 100%); mix-blend-mode: soft-light; opacity: .75; }
.sm-exclusive-sheen::after { content: ''; position: absolute; inset: 0; background: url('/images/onyx-lines.png') center / cover no-repeat; mix-blend-mode: overlay; opacity: .35; }
.sm-exclusive-sheen i { position: absolute; top: -10%; bottom: -10%; left: 0; z-index: 1; width: 45%; background: linear-gradient(105deg, transparent 0%, rgba(255, 255, 255, .0) 20%, rgba(255, 255, 255, .5) 50%, rgba(255, 255, 255, 0) 80%, transparent 100%); mix-blend-mode: soft-light; opacity: .8; transform: translate3d(-130%, 0, 0) skewX(-14deg); will-change: transform; animation: sm-exclusive-sweep 7s ease-in-out infinite; }
@keyframes sm-exclusive-sweep { 0%, 12% { transform: translate3d(-130%, 0, 0) skewX(-14deg); } 62%, 100% { transform: translate3d(300%, 0, 0) skewX(-14deg); } }
@media (prefers-reduced-motion: reduce) { .sm-exclusive-sheen i { animation: none; will-change: auto; transform: translate3d(70%, 0, 0) skewX(-14deg); opacity: .35; } }
