@keyframes float-ball{0%,to{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-20px) rotate(180deg)}}@keyframes float-ball-reverse{0%,to{transform:translateY(0) rotate(0deg)}50%{transform:translateY(20px) rotate(-180deg)}}.floating-ball{animation:float-ball 6s ease-in-out infinite;opacity:.3}.floating-ball-reverse{animation:float-ball-reverse 8s ease-in-out infinite;opacity:.2}@keyframes stadium-lights{0%,to{box-shadow:0 0 20px rgba(255,255,255,.3)}25%{box-shadow:0 0 40px rgba(255,255,255,.6)}50%{box-shadow:0 0 60px rgba(255,255,255,.8)}75%{box-shadow:0 0 40px rgba(255,255,255,.6)}}.stadium-lights{animation:stadium-lights 4s ease-in-out infinite}@keyframes celebration-wave{0%{transform:translateX(-100%) skewX(-15deg)}to{transform:translateX(100vw) skewX(-15deg)}}.celebration-wave{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(45deg,transparent 30%,rgba(34,197,94,.4) 50%,transparent 70%);animation:celebration-wave 2s ease-out}@keyframes counter-pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.counter-animate{animation:counter-pulse .6s ease-out}@keyframes trophy-bounce{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-10px) scale(1.05)}}.trophy-bounce:hover{animation:trophy-bounce .6s ease-in-out}@keyframes crowd-pulse{0%,to{background-color:rgba(59,130,246,.05)}50%{background-color:rgba(59,130,246,.15)}}.crowd-pulse{animation:crowd-pulse 2s ease-in-out infinite}@keyframes ball-roll{0%{transform:translateX(-50px) rotate(0deg)}to{transform:translateX(50px) rotate(1turn)}}.ball-rolling{animation:ball-roll 2s ease-in-out infinite alternate}@keyframes player-run{0%{transform:translateX(-100px);opacity:0}20%{opacity:1}80%{opacity:1}to{transform:translateX(calc(100vw + 100px));opacity:0}}.player-running{animation:player-run 4s ease-in-out}@keyframes pin-drop{0%{transform:translateY(-50px) scale(0);opacity:0}50%{transform:translateY(5px) scale(1.1);opacity:1}to{transform:translateY(0) scale(1);opacity:1}}.pin-drop{animation:pin-drop .8s cubic-bezier(.68,-.55,.265,1.55)}@keyframes net-ripple{0%{box-shadow:0 0 0 0 rgba(34,197,94,.7);transform:scale(1)}50%{box-shadow:0 0 0 20px rgba(34,197,94,0);transform:scale(1.05)}to{box-shadow:0 0 0 0 rgba(34,197,94,0);transform:scale(1)}}.goal-net-ripple:hover{animation:net-ripple .6s ease-out}@keyframes confetti-fall{0%{transform:translateY(-100vh) rotate(0deg);opacity:1}to{transform:translateY(100vh) rotate(2turn);opacity:0}}.confetti-piece{position:absolute;animation:confetti-fall 3s linear}@keyframes atmosphere-shift{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.stadium-atmosphere{background:linear-gradient(-45deg,#3b82f6,#1d4ed8,#059669,#047857);background-size:400% 400%;animation:atmosphere-shift 8s ease infinite}@keyframes golden-glow{0%,to{box-shadow:0 0 20px rgba(251,191,36,.3)}50%{box-shadow:0 0 40px rgba(251,191,36,.8)}}.golden-glow:hover{animation:golden-glow 1s ease-in-out infinite}@keyframes banner-wave{0%,to{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}.festival-banner{animation:banner-wave 3s ease-in-out infinite;transform-origin:top center}@keyframes ball-bounce{0%,to{transform:translateY(0) rotate(0deg)}25%{transform:translateY(-30px) rotate(90deg)}50%{transform:translateY(-40px) rotate(180deg)}75%{transform:translateY(-20px) rotate(270deg)}}.ball-physics{animation:ball-bounce 2s ease-in-out infinite}.scroll-animate{opacity:0;transform:translateY(50px);transition:all .8s cubic-bezier(.25,.46,.45,.94)}.scroll-animate.in-view{opacity:1;transform:translateY(0)}@media (max-width:768px){.floating-ball,.floating-ball-reverse{display:none}.stadium-lights{animation-duration:6s}}