@keyframes bw-correct-flash{0%{background-color:#22c55e59}60%{background-color:#22c55e26}to{background-color:transparent}}@keyframes bw-wrong-flash{0%{background-color:#ef444459}60%{background-color:#ef444426}to{background-color:transparent}}@keyframes bw-shake{0%,to{transform:translate(0)}15%{transform:translate(-8px)}30%{transform:translate(8px)}45%{transform:translate(-6px)}60%{transform:translate(6px)}75%{transform:translate(-3px)}90%{transform:translate(3px)}}@keyframes bw-speed-pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.18);opacity:.9}to{transform:scale(1);opacity:1}}@keyframes bw-btn-correct{0%{box-shadow:0 0 #22c55ecc}50%{box-shadow:0 0 0 10px #22c55e00}to{box-shadow:0 0 #22c55e00}}@keyframes bw-btn-wrong{0%{box-shadow:0 0 #ef4444cc}50%{box-shadow:0 0 0 10px #ef444400}to{box-shadow:0 0 #ef444400}}@keyframes bw-timer-warn{0%,to{opacity:1}50%{opacity:.5}}@keyframes bw-score-pop{0%{transform:scale(1)}40%{transform:scale(1.35)}70%{transform:scale(.92)}to{transform:scale(1)}}@keyframes bw-xp-float{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-48px) scale(1.2)}}@keyframes bw-match-pop{0%{transform:scale(1)}40%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes bw-pair-shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes bw-duel-win{0%{background:#22c55e40}to{background:transparent}}@keyframes bw-duel-lose{0%{background:#ef444440}to{background:transparent}}@keyframes bw-page-enter{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes bw-phase-enter{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes bw-phase-exit{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-24px)}}.bw-correct-flash{animation:bw-correct-flash .5s ease-out forwards}.bw-wrong-flash{animation:bw-wrong-flash .5s ease-out forwards}.bw-shake{animation:bw-shake .45s ease-out}.bw-speed-pulse{animation:bw-speed-pulse .4s ease-out}.bw-btn-correct{animation:bw-btn-correct .5s ease-out}.bw-btn-wrong{animation:bw-btn-wrong .5s ease-out}.bw-timer-warn{animation:bw-timer-warn .6s ease-in-out infinite}.bw-score-pop{animation:bw-score-pop .4s ease-out}.bw-xp-float{animation:bw-xp-float 1.2s ease-out forwards}.bw-match-pop{animation:bw-match-pop .3s ease-out}.bw-pair-shake{animation:bw-pair-shake .3s ease-out}.bw-duel-win{animation:bw-duel-win .6s ease-out forwards}.bw-duel-lose{animation:bw-duel-lose .6s ease-out forwards}.bw-page-enter{animation:bw-page-enter .38s cubic-bezier(.22,1,.36,1) both}.bw-phase-enter{animation:bw-phase-enter .32s cubic-bezier(.22,1,.36,1) both}.bw-phase-exit{animation:bw-phase-exit .22s ease-in forwards}
