.gem{background:transparent;box-shadow:0 2px 4px rgba(0,0,0,.2);border-radius:8px;position:relative}.special-flaming{box-shadow:0 0 12px 4px rgba(255,100,0,.8);border:2px solid #ff4500;animation:pulse 1.2s infinite;background:radial-gradient(circle,rgba(255,69,0,.2) 0,rgba(255,165,0,.4) 50%,rgba(255,215,0,.2) 100%);z-index:1}.special-hypercube{box-shadow:0 0 12px 4px rgba(0,100,255,.8);border:2px solid #007fff;animation:spin 3s linear infinite;background:radial-gradient(circle,rgba(30,144,255,.2) 0,rgba(0,191,255,.4) 50%,rgba(135,206,250,.2) 100%);z-index:1}@keyframes swapRight{0%{transform:translateX(0)}to{transform:translateX(100%)}}@keyframes swapLeft{0%{transform:translateX(0)}to{transform:translateX(-100%)}}@keyframes swapDown{0%{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes swapUp{0%{transform:translateY(0)}to{transform:translateY(-100%)}}@keyframes swapBackRight{0%{transform:translateX(-100%)}to{transform:translateX(0)}}@keyframes swapBackLeft{0%{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes swapBackDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes swapBackUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes hintRight{0%{transform:translateX(0)}50%{transform:translateX(30%)}to{transform:translateX(0)}}@keyframes hintLeft{0%{transform:translateX(0)}50%{transform:translateX(-30%)}to{transform:translateX(0)}}@keyframes hintDown{0%{transform:translateY(0)}50%{transform:translateY(30%)}to{transform:translateY(0)}}@keyframes hintUp{0%{transform:translateY(0)}50%{transform:translateY(-30%)}to{transform:translateY(0)}}.sparkle-animation{animation:sparkleEffect .4s ease-in-out forwards;z-index:10}@keyframes sparkleEffect{0%{transform:scale(1);opacity:1;box-shadow:0 0 0 0 rgba(255,215,0,.7)}30%{transform:scale(1.3);opacity:.9;box-shadow:0 0 15px 8px rgba(255,215,0,.8)}60%{transform:scale(1.1);opacity:.8;box-shadow:0 0 20px 10px hsla(0,0%,100%,.9)}to{transform:scale(0);opacity:0;box-shadow:0 0 30px 15px hsla(0,0%,100%,0)}}@keyframes pulse{0%{transform:scale(1);opacity:1;box-shadow:0 0 8px 2px rgba(255,100,0,.6)}50%{transform:scale(1.1);opacity:.9;box-shadow:0 0 15px 6px rgba(255,100,0,.9)}to{transform:scale(1);opacity:1;box-shadow:0 0 8px 2px rgba(255,100,0,.6)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.emoji-select{transition:all .3s ease}.emoji-select:hover{transform:scale(1.1);box-shadow:0 0 8px hsla(0,0%,100%,.6)}.emoji-select.clickable{cursor:pointer}.emoji-select.clickable:active{transform:scale(.95)}.shuffle-alert{animation:pulse 1s infinite alternate}.swap-right{animation:swapRight .3s ease-in-out}.swap-left{animation:swapLeft .3s ease-in-out}.swap-down{animation:swapDown .3s ease-in-out}.swap-up{animation:swapUp .3s ease-in-out}.swap-back-right{animation:swapBackRight .3s ease-in-out}.swap-back-left{animation:swapBackLeft .3s ease-in-out}.swap-back-down{animation:swapBackDown .3s ease-in-out}.swap-back-up{animation:swapBackUp .3s ease-in-out}.hint-right{animation:hintRight 1s ease-in-out infinite}.hint-left{animation:hintLeft 1s ease-in-out infinite}.hint-down{animation:hintDown 1s ease-in-out infinite}.hint-up{animation:hintUp 1s ease-in-out infinite}