.fallback-spinner{display:flex;height:100vh;position:relative;width:100%}.loading{border-radius:50%;height:55px;left:calc(50% - 35px);top:50%;width:55px}.effect-1,.effect-2,.loading{border:3px solid transparent;box-sizing:border-box;position:absolute}.effect-1,.effect-2{border-left-color:#2962ff;border-radius:50%;height:100%;width:100%}.effect-1{-webkit-animation:rotate 1s ease infinite;animation:rotate 1s ease infinite}.effect-2{-webkit-animation:rotateOpacity 1s ease .1s infinite;animation:rotateOpacity 1s ease .1s infinite}.effect-3{-webkit-animation:rotateOpacity 1s ease .2s infinite;animation:rotateOpacity 1s ease .2s infinite;border:3px solid transparent;border-left-color:#2962ff;border-radius:50%;box-sizing:border-box;height:100%;width:100%}.loading .effects{transition:all .3s ease}.fallback-logo{left:calc(50% - 45px);position:absolute;top:40%}@-webkit-keyframes rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes rotateOpacity{0%{opacity:.1;-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{opacity:1;-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotateOpacity{0%{opacity:.1;-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{opacity:1;-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.offline-game-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.game-paper{border-radius:15px;box-shadow:0 10px 30px rgba(0,0,0,.3);max-width:800px;padding:30px;text-align:center;width:100%}.game-header{margin-bottom:20px}.game-header h1{color:#333;margin-bottom:10px}.game-header p{color:#666;margin-bottom:15px}.score-board{display:flex;flex-wrap:wrap;gap:20px;justify-content:center;margin-bottom:15px}.score{color:#4caf50;font-weight:700}.high-score{color:#2196f3;font-weight:700}.game-controls{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:20px}.game-over{align-items:center;display:flex;flex-direction:column;gap:10px}.game-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin:20px 0}.game-card{cursor:pointer;display:flex;flex-direction:column;height:100%;transition:all .3s ease}.game-card:hover{box-shadow:0 8px 25px rgba(0,0,0,.15);-webkit-transform:translateY(-5px);transform:translateY(-5px)}.game-card .MuiCardContent-root{display:flex;flex-direction:column;flex-grow:1;justify-content:space-between}.difficulty{color:#ff9800;font-weight:700;margin-top:auto}.game-board{grid-gap:1px;background-color:#f0f0f0;border:3px solid #333;border-radius:10px;display:grid;gap:1px;grid-template-columns:repeat(20,1fr);grid-template-rows:repeat(20,1fr);height:400px;margin:0 auto 20px;overflow:hidden;width:400px}.cell{background-color:#fff;border:.5px solid #e0e0e0;transition:all .1s ease}.cell.snake{background-color:#4caf50;border-color:#45a049}.cell.head{background-color:#2e7d32;border-color:#1b5e20;position:relative}.cell.head:before{content:"👁️";font-size:8px;left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.cell.food{-webkit-animation:pulse 1s infinite;animation:pulse 1s infinite;background-color:#f44336;border-color:#d32f2f;border-radius:50%}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.1);transform:scale(1.1)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.1);transform:scale(1.1)}to{-webkit-transform:scale(1);transform:scale(1)}}.tic-tac-toe-board{margin:20px auto;max-width:300px}.tic-tac-toe-grid{grid-gap:5px;display:grid;gap:5px;grid-template-columns:repeat(3,1fr);margin:0}.tic-tac-toe-cell{background-color:#fff;border:2px solid #333;font-size:2rem;font-weight:700;height:80px;transition:all .2s ease;width:100%}.tic-tac-toe-cell:hover:not(:disabled){background-color:#f5f5f5;-webkit-transform:scale(1.05);transform:scale(1.05)}.tic-tac-toe-cell.filled{background-color:#e8f5e8}.player-x{color:#f44336}.player-o{color:#2196f3}.game-status{margin:20px 0;min-height:60px}.winner-player{color:#4caf50;font-weight:700}.winner-computer{color:#f44336;font-weight:700}.draw{color:#ff9800;font-weight:700}.new-record{color:gold;font-weight:700;margin-top:10px}.memory-board{margin:20px auto;max-width:320px}.memory-grid{grid-gap:5px;display:grid;gap:5px;grid-template-columns:repeat(4,1fr);margin:0}.memory-card{background-color:#3f51b5;border:2px solid #333;color:#fff;font-size:1.5rem;height:70px;overflow:hidden;position:relative;transition:all .3s ease;width:100%}.memory-card:hover:not(:disabled){-webkit-transform:scale(1.05);transform:scale(1.05)}.memory-card.flipped{background-color:#fff;color:#333;-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}.memory-card.matched{-webkit-animation:matchFound .6s ease;animation:matchFound .6s ease;background-color:#4caf50;color:#fff}@-webkit-keyframes matchFound{0%,to{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.1);transform:scale(1.1)}}@keyframes matchFound{0%,to{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.1);transform:scale(1.1)}}.card-content{display:block;font-size:1.8rem}.game-preview{background-color:#f8f9fa;border-radius:10px;margin:30px 0;padding:20px}.game-instructions{background-color:#f5f5f5;border-radius:8px;margin-top:20px;padding:15px}.game-instructions p{color:#666;font-size:14px;margin:0}@media (max-width:600px){.offline-game-container{padding:10px}.game-paper{padding:20px}.game-board{height:300px;width:300px}.tic-tac-toe-cell{font-size:1.5rem;height:60px}.memory-card{font-size:1.2rem;height:50px}.game-controls{align-items:center;flex-direction:column}.score-board{flex-direction:column;gap:10px}.game-header h1{font-size:1.8rem}}.offline-indicator{-webkit-animation:slideIn .5s ease-out;animation:slideIn .5s ease-out;background-color:#f44336;border-radius:20px;color:#fff;font-size:14px;font-weight:700;padding:10px 15px;position:fixed;right:20px;top:20px;z-index:1000}.offline-indicator.checking{-webkit-animation:pulse 1s infinite;animation:pulse 1s infinite;background-color:#ff9800}@-webkit-keyframes slideIn{0%{opacity:0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideIn{0%{opacity:0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}.MuiButton-root:disabled{cursor:not-allowed;opacity:.6}.connection-check-toast{-webkit-animation:slideUp .3s ease-out;animation:slideUp .3s ease-out;background-color:#2196f3;border-radius:10px;bottom:20px;color:#fff;font-size:14px;left:50%;padding:15px 20px;position:fixed;-webkit-transform:translateX(-50%);transform:translateX(-50%);z-index:1001}@-webkit-keyframes slideUp{0%{opacity:0;-webkit-transform:translate(-50%,100%);transform:translate(-50%,100%)}to{opacity:1;-webkit-transform:translate(-50%);transform:translate(-50%)}}@keyframes slideUp{0%{opacity:0;-webkit-transform:translate(-50%,100%);transform:translate(-50%,100%)}to{opacity:1;-webkit-transform:translate(-50%);transform:translate(-50%)}}