/* Arena Matemática — corrida contra o Rival (só visual; a pontuação não muda) */
.race{position:relative;margin:14px 0 6px;padding:10px 10px 6px;border-radius:16px;background:linear-gradient(180deg,#ffffff0d,#ffffff05);border:1px solid var(--line);overflow:visible}
.race-lane{position:relative;height:34px;margin:4px 22px 4px 4px}
.race-lane::before{content:"";position:absolute;left:0;right:0;top:50%;height:6px;margin-top:-3px;border-radius:99px;background:#ffffff1a}
.race-fill{position:absolute;left:0;top:50%;height:6px;margin-top:-3px;border-radius:99px;width:0;background:linear-gradient(90deg,var(--fire),var(--water));transition:width .5s cubic-bezier(.3,1.4,.5,1)}
.race-runner,.race-rival{position:absolute;top:0;left:0;font-size:24px;line-height:34px;transition:left .5s cubic-bezier(.3,1.4,.5,1);will-change:left}
.race-rival{opacity:.6;filter:grayscale(.4);transition:left 1s linear;font-size:22px}
.race-runner.hop{animation:raceHop .45s ease-out}
.race-flag{position:absolute;right:-20px;top:0;font-size:22px;line-height:34px}
.race-legend{display:flex;justify-content:space-between;font-size:.78rem;opacity:.75;padding:0 4px}
.race-timer{height:7px;margin:10px 0 0;border-radius:99px;background:#ffffff14;overflow:hidden}
.race-timer>i{display:block;height:100%;width:100%;transform-origin:left;background:linear-gradient(90deg,#2fe27a,#ffd23f,#ff5a3c)}
.combo{display:inline-block;margin-left:8px;padding:2px 10px;border-radius:99px;background:linear-gradient(135deg,#ff7a1a,#ffd23f);color:#2a1300;font-weight:950;font-size:.9rem;animation:comboPop .35s ease-out}
.question.pop{animation:qPop .35s ease-out}
.shake{animation:raceShake .35s ease-out}
.fx-layer{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:60}
.fx-p{position:absolute;font-size:22px;will-change:transform,opacity;animation:fxFall var(--d,1.1s) ease-out forwards}
.race-result{display:inline-block;margin:6px 0;padding:6px 14px;border-radius:99px;font-weight:950;background:#ffffff14;border:1px solid var(--line)}
@keyframes raceHop{0%{transform:translateY(0)}40%{transform:translateY(-14px) scale(1.2)}100%{transform:translateY(0)}}
@keyframes comboPop{0%{transform:scale(.4);opacity:0}70%{transform:scale(1.2)}100%{transform:scale(1);opacity:1}}
@keyframes qPop{0%{transform:scale(.85);opacity:0}100%{transform:scale(1);opacity:1}}
@keyframes raceShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-8px)}40%{transform:translateX(8px)}60%{transform:translateX(-5px)}80%{transform:translateX(5px)}}
@keyframes fxFall{0%{transform:translate(0,0) rotate(0);opacity:1}100%{transform:translate(var(--x,0),var(--y,300px)) rotate(var(--r,360deg));opacity:0}}
@media (prefers-reduced-motion:reduce){.race-runner,.race-rival,.race-fill{transition:none}.race-runner.hop,.combo,.question.pop,.shake,.fx-p{animation:none}.fx-layer{display:none}}
