@keyframes runner-approach{0%{transform:translate(-40%)}to{transform:translate(0%)}}@keyframes runner-idle-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes event-success-hop{0%{transform:translate(0)rotate(0)}35%{transform:translate(30px,-46px)rotate(-8deg)}60%{transform:translate(70px,-52px)rotate(4deg)}to{transform:translate(150px)rotate(0)}}@keyframes event-success-throw{0%{transform:translate(0)rotate(0)}30%{transform:translate(6px,-4px)rotate(-14deg)}55%{transform:translate(18px,-10px)rotate(18deg)}to{transform:translate(28px,-4px)rotate(4deg)}}@keyframes event-success-javelin-flight{0%{opacity:1;transform:translate(0)rotate(10deg)}to{opacity:1;transform:translate(220px,-30px)rotate(-8deg)}}@keyframes event-success-vault{0%{transform:translate(0)rotate(0)}30%{transform:translate(10px,-10px)rotate(-30deg)}55%{transform:translate(45px,-70px)rotate(40deg)}80%{transform:translate(90px,-30px)rotate(70deg)}to{transform:translate(140px)rotate(90deg)}}@keyframes event-fail-stumble{0%{transform:translate(0)rotate(0)}40%{transform:translate(18px,-10px)rotate(-6deg)}60%{transform:translate(22px,6px)rotate(14deg)}to{transform:translate(24px,10px)rotate(24deg)}}@keyframes event-fail-short{0%{transform:translate(0)rotate(0)}40%{transform:translate(8px,-6px)rotate(-4deg)}to{transform:translate(14px,4px)rotate(10deg)}}@keyframes boat-bob{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-4px)rotate(-1deg)}}@keyframes paddle-stroke{0%,to{transform:rotate(0)}50%{transform:rotate(-22deg)}}@keyframes water-scroll{0%{background-position-x:0}to{background-position-x:-120px}}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-10px)rotate(0)}to{opacity:0;transform:translateY(90px)rotate(180deg)}}.anim-runner-approach{animation:1.1s ease-out forwards runner-approach}.anim-runner-idle{animation:1.4s ease-in-out infinite runner-idle-bob}.anim-event-success-hop{animation:1.1s cubic-bezier(.3,.6,.4,1) forwards event-success-hop}.anim-event-success-throw{animation:.9s ease-out forwards event-success-throw}.anim-event-success-javelin{animation:.9s ease-out forwards event-success-javelin-flight}.anim-event-success-vault{animation:1.2s cubic-bezier(.3,.6,.4,1) forwards event-success-vault}.anim-event-fail-stumble{animation:.9s ease-in forwards event-fail-stumble}.anim-event-fail-short{animation:.8s ease-in forwards event-fail-short}.anim-boat-bob{animation:1.6s ease-in-out infinite boat-bob}.anim-paddle{animation:.6s ease-in-out infinite paddle-stroke}.anim-water-scroll{animation:1.4s linear infinite water-scroll}.anim-confetti{animation:1.1s ease-in forwards confetti-fall}@media (prefers-reduced-motion:reduce){.anim-runner-approach,.anim-runner-idle,.anim-event-success-hop,.anim-event-success-throw,.anim-event-success-javelin,.anim-event-success-vault,.anim-event-fail-stumble,.anim-event-fail-short,.anim-boat-bob,.anim-paddle,.anim-water-scroll,.anim-confetti{animation-duration:.01ms!important;animation-iteration-count:1!important}}@keyframes leg-run-front{0%,to{transform:rotate(-28deg)}50%{transform:rotate(26deg)}}@keyframes leg-run-back{0%,to{transform:rotate(26deg)}50%{transform:rotate(-28deg)}}@keyframes arm-run-front{0%,to{transform:rotate(24deg)}50%{transform:rotate(-22deg)}}@keyframes arm-run-back{0%,to{transform:rotate(-22deg)}50%{transform:rotate(24deg)}}@keyframes torso-run-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.is-running .leg-front{transform-origin:22px 50px;animation:.3s ease-in-out infinite leg-run-front}.is-running .leg-back{transform-origin:36px 50px;animation:.3s ease-in-out infinite leg-run-back}.is-running .arm-front{transform-origin:14px 26px;animation:.3s ease-in-out infinite arm-run-front}.is-running .arm-back{transform-origin:46px 26px;animation:.3s ease-in-out infinite arm-run-back}.is-running .torso-group{animation:.3s ease-in-out infinite torso-run-bounce}@keyframes shadow-pulse{0%,to{opacity:.32;transform:scaleX(1)}50%{opacity:.2;transform:scaleX(.7)}}@keyframes shadow-hop{0%{opacity:.32;transform:scaleX(1)translate(0)}40%{opacity:.14;transform:scaleX(.45)translate(70px)}to{opacity:.32;transform:scaleX(1)translate(150px)}}@keyframes shadow-vault{0%{opacity:.32;transform:scaleX(1)translate(0)}55%{opacity:.12;transform:scaleX(.4)translate(80px)}to{opacity:.32;transform:scaleX(1)translate(140px)}}@keyframes shadow-stumble{0%{opacity:.32;transform:scaleX(1)translate(0)}to{opacity:.28;transform:scaleX(1.15)translate(20px)}}.anim-shadow-idle{animation:.3s ease-in-out infinite shadow-pulse}.anim-shadow-hop{animation:1.1s cubic-bezier(.3,.6,.4,1) forwards shadow-hop}.anim-shadow-vault{animation:1.2s cubic-bezier(.3,.6,.4,1) forwards shadow-vault}.anim-shadow-stumble{animation:.9s ease-in forwards shadow-stumble}@keyframes javelin-windup{0%,to{transform:rotate(-6deg)}50%{transform:rotate(2deg)}}.is-running .javelin-prop{transform-origin:46px 20px;animation:.3s ease-in-out infinite javelin-windup}@keyframes confetti-burst{0%{opacity:1;transform:translate(0)scale(1)rotate(0)}to{transform:translate(var(--tx), var(--ty)) scale(.35) rotate(var(--rot));opacity:0}}.anim-confetti-burst{animation:.95s cubic-bezier(.2,.8,.3,1) forwards confetti-burst}@keyframes correct-flash{0%{opacity:0}25%{opacity:.45}to{opacity:0}}.anim-correct-flash{animation:.85s ease-out forwards correct-flash}@keyframes badge-pop{0%{opacity:0;transform:scale(.3)rotate(-8deg)}55%{opacity:1;transform:scale(1.15)rotate(3deg)}to{opacity:1;transform:scale(1)rotate(0)}}.anim-badge-pop{animation:.48s cubic-bezier(.3,1.4,.4,1) forwards badge-pop}@keyframes float-up-fade{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-28px)}}.anim-float-up{animation:.9s ease-out forwards float-up-fade}@keyframes score-bump{0%{transform:scale(1)}40%{transform:scale(1.35)}to{transform:scale(1)}}.anim-score-bump{animation:.42s ease-out score-bump}@keyframes wrong-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.anim-wrong-shake{animation:.42s ease-in-out wrong-shake}@keyframes dust-puff{0%{opacity:.7;transform:translateY(0)scale(.6)}to{opacity:0;transform:translateY(-10px)scale(1.3)}}.anim-dust-puff{animation:.7s ease-out forwards dust-puff}@media (prefers-reduced-motion:reduce){.is-running .leg-front,.is-running .leg-back,.is-running .arm-front,.is-running .arm-back,.is-running .torso-group,.is-running .javelin-prop,.anim-shadow-idle,.anim-shadow-hop,.anim-shadow-vault,.anim-shadow-stumble,.anim-confetti-burst,.anim-correct-flash,.anim-badge-pop,.anim-float-up,.anim-score-bump,.anim-wrong-shake,.anim-dust-puff{animation-duration:.01ms!important;animation-iteration-count:1!important}}.trail-scene-grid{background-image:linear-gradient(to right, var(--scene-grid-tint,#1a1a1a59) 1px, transparent 1px), linear-gradient(to bottom, #1a1a1a26 1px, transparent 1px);background-size:28px 18px}@media (prefers-reduced-motion:reduce){.trail-scene-grid{opacity:.05}}@keyframes gate-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.anim-gate-in{animation:.5s ease-out forwards gate-fade-in}@keyframes gate-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.anim-gate-float{animation:3.2s ease-in-out infinite gate-float}@keyframes badge-glow-pulse{0%,to{box-shadow:0 0 #e8543e40}50%{box-shadow:0 0 0 6px #e8543e00}}.anim-badge-glow{animation:2.4s ease-in-out infinite badge-glow-pulse}@keyframes panel-slide-bounce-in{0%{opacity:0;transform:translate(28px)scale(.94)}65%{opacity:1;transform:translate(-4px)scale(1.015)}to{opacity:1;transform:translate(0)scale(1)}}.anim-panel-in{animation:.52s cubic-bezier(.2,.9,.25,1.15) both panel-slide-bounce-in}@keyframes holo-shimmer{0%{background-position:0%}to{background-position:200%}}.anim-holo-shimmer{background-image:linear-gradient(100deg,#fff0 30%,#ffffff80 45%,#fff0 60%);background-size:220% 100%;animation:3.2s linear infinite holo-shimmer}@keyframes bubble-pop-in{0%{opacity:0;transform:translateY(8px)scale(.85)}60%{opacity:1;transform:translateY(-2px)scale(1.04)}to{opacity:1;transform:translateY(0)scale(1)}}.anim-bubble-in{animation:.42s cubic-bezier(.3,1.2,.4,1) both bubble-pop-in}@keyframes reaction-pop{0%{opacity:0;transform:translateY(6px)scale(.5)rotate(-6deg)}50%{opacity:1;transform:translateY(-6px)scale(1.15)rotate(4deg)}to{opacity:1;transform:translateY(-10px)scale(1)rotate(0)}}.anim-reaction-pop{animation:.48s cubic-bezier(.3,1.4,.4,1) both reaction-pop}@keyframes sparkle-drift{0%{opacity:0;transform:translate(0)scale(.4)rotate(0)}20%{opacity:1}to{opacity:0;transform:translate(var(--sx,12px), calc(var(--sy,-18px))) scale(1) rotate(90deg)}}.anim-sparkle{animation:.9s ease-out forwards sparkle-drift}@keyframes scene-zoom-settle{0%{opacity:.7;transform:scale(1.03)}to{opacity:1;transform:scale(1)}}.anim-scene-settle{animation:.48s ease-out both scene-zoom-settle}@keyframes progress-fill-glow{0%,to{filter:brightness()}50%{filter:brightness(1.25)}}.anim-progress-glow{animation:1.8s ease-in-out infinite progress-fill-glow}@media (prefers-reduced-motion:reduce){.anim-gate-in,.anim-gate-float,.anim-badge-glow,.anim-panel-in,.anim-holo-shimmer,.anim-bubble-in,.anim-reaction-pop,.anim-sparkle,.anim-scene-settle,.anim-progress-glow{animation-duration:.01ms!important;animation-iteration-count:1!important}}
