.ovation { position:fixed; inset:0; z-index:90; pointer-events:none; overflow:hidden; visibility:hidden; transition:visibility 0s linear 2.6s; }
.ovation.is-active { visibility:visible; transition-delay:0s; }
/* Silhouettes de premier plan : masses noires, grandes et sans détails faciaux. */
.ovation-crowd { position:absolute; bottom:-8px; left:-3%; width:106%; height:clamp(260px,43vh,510px); display:flex; align-items:flex-end; justify-content:space-around; gap:0; opacity:0; transform:translateY(110%); transition:transform 2.2s cubic-bezier(.2,.8,.2,1),opacity 2.6s ease-in-out; filter:drop-shadow(0 -12px 18px rgba(0,0,0,.75)); }
.ovation.is-active .ovation-crowd { transform:translateY(0); opacity:1; }
.ovation-person { position:relative; width:clamp(64px,9vw,150px); height:var(--height); flex:1 0 0; min-width:0; transform-origin:bottom center; animation:ovation-bob .55s ease-in-out infinite alternate; animation-delay:var(--delay); filter:blur(.55px); }
.ovation-head { position:absolute; top:5%; left:30%; width:40%; aspect-ratio: .82; border-radius:47% 47% 42% 42%; background:#030205; box-shadow:0 0 0 2px rgba(0,0,0,.2); z-index:2; }
.ovation-body { position:absolute; bottom:-6%; left:-8%; width:116%; height:70%; border-radius:48% 48% 0 0 / 30% 30% 0 0; background:linear-gradient(90deg,#020103,#090509 50%,#020103); z-index:1; }
.ovation-arm { position:absolute; top:20%; width:23%; height:51%; border-radius:55% 55% 38% 38%; background:#030205; transform-origin:50% 90%; z-index:3; animation:ovation-clap .28s ease-in-out infinite alternate; }
.ovation-arm.left { left:19%; transform:rotate(-47deg); }
.ovation-arm.right { right:19%; transform:rotate(47deg); animation-direction:alternate-reverse; }
/* Un bord de foule continu plutôt qu'une rangée de figurines distinctes. */
.ovation-crowd::after { content:""; position:absolute; inset:auto -2% -3px; height:23%; background:linear-gradient(0deg,#020103 65%,rgba(2,1,3,.9) 88%,transparent); pointer-events:none; z-index:4; }
.ovation-quote { position:absolute; left:50%; top:43%; width:min(92vw,850px); transform:translate(-50%,-45%) scale(.95); opacity:0; padding:32px 45px; text-align:center; font:italic clamp(25px,4vw,55px)/1.15 'Cormorant Garamond',Georgia,serif; color:#f8e6ba; text-shadow:0 3px 12px #12040a,0 0 32px #d8a653; background:radial-gradient(ellipse,rgba(26,6,15,.92),rgba(26,6,15,.66) 65%,transparent); transition:opacity 2s ease,transform 2.2s ease; }
.ovation.is-active .ovation-quote { opacity:1; transform:translate(-50%,-50%) scale(1); }
.ovation-quote small { display:block; margin-top:15px; font:600 11px 'DM Sans',sans-serif; letter-spacing:.34em; color:#d6ae65; }
body.ovation-shake main, body.ovation-shake .masthead { animation:ovation-shake .22s linear infinite; }
@keyframes ovation-clap { to { transform:rotate(5deg); } }
@keyframes ovation-bob { to { transform:translateY(-8px) rotate(2deg); } }
@keyframes ovation-shake { 0%,100% { transform:translate(0,0); } 25% { transform:translate(-2px,1px); } 50% { transform:translate(2px,-2px); } 75% { transform:translate(-1px,2px); } }
@media(prefers-reduced-motion:reduce) { .ovation-person,.ovation-arm,body.ovation-shake main,body.ovation-shake .masthead { animation:none!important; } .ovation-crowd,.ovation-quote { transition:none; } }
body[data-world='secret'] .ovation { display:none; }
@media (max-width:700px) { .ovation-crowd { height:clamp(200px,37vh,360px); } .ovation-person { width:18vw; } }


/* La disparition de la foule est aussi progressive que son arrivée. */
.ovation:not(.is-active) .ovation-crowd { transition-duration:2.6s,2.6s; }
