/* A cena final só aparece após confirmação explícita no arquivo nacional. */
.scene.is-final .scene-art{visibility:hidden;pointer-events:none}.scene.is-final .rope-3d,.scene.is-final .balance,.scene.is-final .update-label{visibility:hidden!important}
.final-scene{position:absolute;inset:0 20px 0;isolation:isolate;overflow:hidden}
.final-glow{position:absolute;left:50%;bottom:5%;width:48%;height:88%;transform:translateX(-50%);background:radial-gradient(ellipse,#ffdf0026,transparent 70%);pointer-events:none}
.final-ground{position:absolute;left:50%;bottom:10%;width:29%;height:8%;border:1px solid #ffdf0080;border-radius:50%;background:radial-gradient(ellipse,#ffdf0038,transparent 75%);transform:translateX(-50%);box-shadow:0 0 20px #ffdf0015}
.final-person{position:absolute;bottom:11%;padding:0;border:0;border-radius:16px;background:transparent!important;box-shadow:none;cursor:pointer;touch-action:manipulation}
.final-person:hover{background:transparent!important;border-color:transparent}.final-person:focus-visible{outline:2px dashed #ffdf00;outline-offset:0}
.final-person img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 4px 3px #0006)}
.final-winner{left:50%;height:88%;width:36%;transform:translateX(-50%);z-index:2}
.final-winner .final-avatar{height:100%;animation:victory-dance 2s ease-in-out infinite;transform-origin:50% 95%}
.final-loser{height:62%;width:30%;z-index:1}.final-scene[data-loser="13"] .final-loser{left:0}.final-scene[data-loser="22"] .final-loser{right:0}
.final-loser .final-avatar{height:100%;position:relative;animation:cry-shoulders 1.3s ease-in-out infinite;transform-origin:50% 85%}
.final-caption{position:absolute;inset:auto 0 0;text-align:center;pointer-events:none;z-index:4;font-size:10px;font-weight:650;color:#fff3a3;letter-spacing:.04em;text-transform:uppercase;padding:4px 0}
.final-caption::before{content:'✓';display:inline-block;margin-right:5px;color:#7af0b6}
.scene svg.final-tears{position:absolute;left:47%;top:25%;width:14%;height:21%;pointer-events:none;overflow:visible}
.final-scene[data-loser="13"] .scene svg.final-tears{left:51%;top:26%}
.tear{fill:#83dbff;stroke:#dcf8ff;stroke-width:.6;opacity:.9;transform-box:fill-box;transform-origin:center;animation:tear-fall 1.3s linear infinite}.tear:nth-child(2){animation-delay:-.65s}
.final-confetti{position:absolute;inset:0;pointer-events:none;z-index:3;overflow:hidden;opacity:0}.final-scene.celebrating .final-confetti{opacity:1}
.final-confetti i{position:absolute;left:var(--x);top:-12px;width:5px;height:9px;background:var(--color);border-radius:1px;animation:confetti-fall var(--duration) linear infinite;animation-delay:var(--delay)}
.final-scene:not(.celebrating) .final-confetti i{animation:none}
.final-scene.final-touched .final-winner .final-avatar{animation:victory-dance .6s ease-in-out infinite;filter:drop-shadow(0 0 8px #ffdf0060)}
.final-scene.final-touched .final-loser .final-avatar{animation-duration:.65s}
.scene.effects-paused .final-scene *{animation-play-state:paused!important}
@keyframes victory-dance{0%,100%{transform:translateY(0) rotate(-1deg)}35%{transform:translateY(-6px) rotate(2deg)}70%{transform:translateY(-2px) rotate(-2deg)}}
@keyframes cry-shoulders{0%,100%{transform:translateY(0) rotate(0)}30%{transform:translateY(1px) rotate(-.8deg)}60%{transform:translateY(0) rotate(.8deg)}}
@keyframes tear-fall{0%{opacity:0;transform:translateY(0) scale(.7)}15%{opacity:.95}80%{opacity:.8}100%{opacity:0;transform:translateY(35px) scale(.4)}}
@keyframes confetti-fall{to{transform:translate3d(15px,300px,0) rotate(520deg)}}
@media(max-width:650px){.final-scene{inset:0 0 0}.final-winner{height:88%;width:42%}.final-loser{width:29%;height:61%}.final-caption{font-size:8px;padding:2px 0;letter-spacing:0}.final-confetti i{width:3px;height:6px}}
@media(prefers-reduced-motion:reduce){.final-confetti{display:none}.final-scene *{animation:none!important}}

.scene svg.final-tears{max-height:none;display:block}
