*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:IBM Plex Sans,system-ui,sans-serif;background:#f1f3f4;color:#202124;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,button{font-family:IBM Plex Sans,system-ui,sans-serif}button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}button:disabled{cursor:not-allowed}a{color:inherit;text-decoration:none}code{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.92em}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes hit-pop{0%{transform:scale(.96);opacity:.7}60%{transform:scale(1.02)}to{transform:scale(1);opacity:1}}@keyframes score-pop{0%{transform:scale(1)}40%{transform:scale(1.18)}to{transform:scale(1)}}@keyframes combo-pulse{0%,to{opacity:1}50%{opacity:.72}}@keyframes skeleton-pulse{0%,to{opacity:.45}50%{opacity:.85}}.anim-fade-in{animation:fade-in .2s ease both}.anim-slide-up{animation:slide-up .28s ease both}.anim-hit{animation:hit-pop .28s ease both}.anim-score-pop{display:inline-block;animation:score-pop .28s ease}.anim-combo{animation:combo-pulse 1.1s ease-in-out infinite}.skeleton-line{background:#e8eaed;border-radius:4px;animation:skeleton-pulse 1.2s ease-in-out infinite}.review-skeleton .skeleton-line:nth-child(odd){animation-delay:.1s}.btn-press:not(:disabled):active{transform:translateY(1px)}.btn-press:not(:disabled):hover{filter:brightness(.97)}.focus-ring:focus-visible{outline:2px solid #202124;outline-offset:2px}@media(max-width:480px){.answer-keyboard-hint{font-size:12px}}@media(pointer:coarse){.answer-keyboard-hint{display:none}}@media(prefers-reduced-motion:reduce){.anim-fade-in,.anim-slide-up,.anim-hit,.anim-score-pop,.anim-combo{animation:none}.skeleton-line{animation:none;opacity:.6}}
