/* Saída mecânica: coletor, portinhola, tubo transparente e bandeja. */
.draw-chute{right:2%;bottom:6%;width:35%;height:42%;z-index:9;filter:drop-shadow(0 12px 12px #31506d2b)}
.draw-chute::before{content:"";position:absolute;left:0;top:2%;width:46%;height:25%;border-radius:50% 16% 38% 46%;background:linear-gradient(145deg,#8da0b4 0 12%,#eef5fa 22%,#a5b6c6 47%,#5f7388 74%,#354b61);border:2px solid #71869a;box-shadow:inset 5px 5px 8px #fff9,inset -5px -5px 9px #263d5355;transform:rotate(14deg);z-index:1}
.draw-chute::after{content:"";position:absolute;left:8%;top:17%;width:19%;height:8%;border-radius:4px;background:linear-gradient(#4f6479,#1f354a);border:1px solid #253b50;box-shadow:0 3px 5px #263e5545;transform:rotate(19deg);transform-origin:100% 50%;z-index:5}
.draw-chute>span{right:28%;top:14%;width:29%;height:61%;border:3px solid #6f879d;border-radius:10px 10px 20px 20px;background:linear-gradient(90deg,#71879b 0 9%,#dff3fb88 15% 44%,#ffffffc9 49%,#b8dbe988 58% 84%,#5e7489 92%);box-shadow:inset 6px 0 8px #fff8,inset -7px 0 8px #30485f55,0 9px 17px #29476030;transform:rotate(-24deg);overflow:hidden}
.draw-chute>span::before{content:"";position:absolute;inset:5% 20% 8% 25%;border-radius:999px;background:linear-gradient(90deg,#ffffff1a,#fff9,#ffffff0d);filter:blur(1px)}
.draw-chute>span::after{content:"";position:absolute;left:-15%;right:-15%;bottom:-3px;height:13%;border-radius:50%;background:linear-gradient(#70869a,#2f465c);border:2px solid #546b81;box-shadow:inset 0 2px 3px #fff7}
.winner-ball{right:1%;bottom:0;width:34%;border:3px solid #fff;box-shadow:inset -8px -10px 12px #263a5042,inset 5px 5px 8px #fff9,0 11px 16px #29465f45;transform:translate(-91px,-133px) scale(.62);z-index:4}
.winner-ball::after{content:"";position:absolute;left:17%;top:10%;width:30%;height:17%;border-radius:50%;background:#fff9;filter:blur(2px);transform:rotate(-34deg)}
.winner-ball.is-dropping{animation:realisticBallExit 1.65s cubic-bezier(.2,.68,.28,1) forwards}
.draw-chute:has(.winner-ball.is-dropping)::after{animation:releaseGate 1.65s ease-in-out both}
.draw-chute:has(.winner-ball.is-dropping)>span{animation:tubeReaction 1.65s ease-out both}
@keyframes releaseGate{0%,13%{transform:rotate(19deg)}24%,58%{transform:rotate(66deg)}72%,100%{transform:rotate(19deg)}}
@keyframes tubeReaction{0%,100%{transform:rotate(-24deg)}42%{transform:rotate(-22deg)}58%{transform:rotate(-25deg)}}
@keyframes realisticBallExit{0%,12%{opacity:0;transform:translate(-105px,-142px) scale(.56) rotate(-80deg)}20%{opacity:1;transform:translate(-92px,-128px) scale(.72) rotate(-30deg)}42%{opacity:1;transform:translate(-63px,-83px) scale(.84) rotate(145deg)}61%{transform:translate(-31px,-37px) scale(.94) rotate(285deg)}76%{transform:translate(0,0) scale(1) rotate(410deg)}85%{transform:translate(0,-13px) scale(1.02,.98) rotate(445deg)}92%{transform:translate(0,0) scale(.98,1.02) rotate(470deg)}100%{opacity:1;transform:translate(0,0) scale(1) rotate(480deg)}}
@media(max-width:680px){.draw-chute{right:0;bottom:5%;width:37%;height:40%}.winner-ball{width:36%}}
@media(prefers-reduced-motion:reduce){.winner-ball.is-dropping{animation:reducedBallExit .25s ease-out forwards}.draw-chute:has(.winner-ball.is-dropping)::after,.draw-chute:has(.winner-ball.is-dropping)>span{animation:none}@keyframes reducedBallExit{to{opacity:1;transform:translate(0,0)}}}
