:root{--radius-card:18px}.card-perspective{perspective:1200px;perspective-origin:50%}.card-3d{transform-style:preserve-3d;position:relative;width:100%;height:100%}.card-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:var(--radius-card);overflow:hidden}.card-face-back{transform:rotateY(180deg)}.card-ghost-1{transform:scale(.95) translateY(6px);opacity:.55;z-index:0}.card-ghost-2{transform:scale(.9) translateY(12px);opacity:.3;z-index:-1}@keyframes shimmer{0%{transform:translateX(-100%) skewX(-15deg)}to{transform:translateX(200%) skewX(-15deg)}}.card-shimmer:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.06) 50%,transparent);transform:translateX(-100%) skewX(-15deg);animation:shimmer 4s ease-in-out infinite;animation-delay:1.5s;pointer-events:none;border-radius:inherit;overflow:hidden;z-index:2}@keyframes learnedBounce{0%{transform:scale(0) rotate(-15deg)}60%{transform:scale(1.3) rotate(5deg)}to{transform:scale(1) rotate(0deg)}}.learned-animate{animation:learnedBounce .35s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes toastSlideUp{0%{transform:translateY(20px) translateX(-50%);opacity:0}to{transform:translateY(0) translateX(-50%);opacity:1}}.toast-enter{animation:toastSlideUp .25s ease-out forwards}.category-tile{transition:transform .2s ease,box-shadow .2s ease}.category-tile:active{transform:scale(.97)}.mode-btn{transition:transform .15s ease,background .2s ease}.mode-btn:active{transform:scale(.97)}@keyframes hintPulse{0%,to{opacity:.7}50%{opacity:1}}.hint-pulse{animation:hintPulse 2s ease-in-out infinite}