*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{height:100%;height:-webkit-fill-available}body{min-height:100%;min-height:-webkit-fill-available;height:100%;background:#0f0f14;color:#e2e8f0;font-family:Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;touch-action:manipulation}#root{min-height:100%;min-height:-webkit-fill-available}button{font-family:inherit}.game-screen-root{height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;overflow:hidden;display:flex;flex-direction:column}@keyframes slideIn{0%{opacity:0;transform:translateY(36px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInFromRight{0%{opacity:.6;transform:translate(80px)}to{opacity:1;transform:translate(0)}}@keyframes slideInFromLeft{0%{opacity:.6;transform:translate(-80px)}to{opacity:1;transform:translate(0)}}.card-swipe-next{animation:slideInFromRight .25s ease-out}.card-swipe-prev{animation:slideInFromLeft .25s ease-out}.flashcard{perspective:1000px}.flashcard-inner{position:relative;width:100%;min-height:220px;transition:transform .4s ease;transform-style:preserve-3d}.flashcard-inner.flipped{transform:rotateY(180deg)}.flashcard-front,.flashcard-back{backface-visibility:hidden;-webkit-backface-visibility:hidden;position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.flashcard-back{transform:rotateY(180deg)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.vocab-ruby-row ruby{ruby-position:over;ruby-align:center}
