*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;display:flex;justify-content:center;align-items:center}code{font-family:source-code-pro,Menlo,Monaco,Consolas,"Courier New",monospace}#root{width:100%;max-width:1200px;padding:20px}.board{display:flex;flex-direction:column;grid-gap:10px;gap:10px;padding:20px;background:hsla(0,0%,100%,.1);border-radius:15px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s ease}.board.inactive{opacity:.8;filter:grayscale(.5);pointer-events:none}.board.pending{pointer-events:none;opacity:.9}.board.pending .cell{cursor:wait}.board-row{grid-gap:10px;gap:10px}.board-row,.cell{display:flex;justify-content:center}.cell{width:100px;height:100px;background:hsla(0,0%,100%,.9);border:3px solid hsla(0,0%,100%,.3);border-radius:10px;font-size:48px;font-weight:700;cursor:not-allowed;transition:all .3s ease;align-items:center;box-shadow:0 4px 6px rgba(0,0,0,.1);position:relative}.cell.clickable:not(:disabled):hover{transform:scale(1.05);background:#c8e6ff;border-color:#667eea;box-shadow:0 6px 12px rgba(102,126,234,.3);cursor:pointer}.cell.filled{background:hsla(0,0%,100%,.95)}.cell.vanishing{border-color:#f39c12!important;background-color:#fef9e7;animation:pulse-border 2s infinite}.vanish-indicator{position:absolute;top:2px;right:2px;font-size:14px;opacity:.8;animation:bounce 1s ease-in-out infinite}@keyframes pulse-border{0%{box-shadow:0 0 0 0 rgba(243,156,18,.4)}70%{box-shadow:0 0 0 6px rgba(243,156,18,0)}to{box-shadow:0 0 0 0 rgba(243,156,18,0)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.symbol{animation:popIn .3s ease;line-height:1}.symbol.X{color:#e74c3c}.symbol.O{color:#3498db}@keyframes popIn{0%{transform:scale(0);opacity:0}50%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}@media (max-width:768px){.cell{width:80px;height:80px;font-size:36px}}@media (max-width:480px){.cell{width:60px;height:60px;font-size:28px}.board{padding:10px}.board-row{grid-gap:8px;gap:8px}}.game-info{background:hsla(0,0%,100%,.95);border-radius:15px;padding:25px;box-shadow:0 8px 32px rgba(0,0,0,.1);max-width:600px;margin:0 auto 30px}.game-info.waiting{text-align:center;padding:40px}.spinner{width:50px;height:50px;margin:0 auto 20px;border:4px solid rgba(102,126,234,.2);border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.players-info{display:flex;justify-content:space-around;align-items:center;margin-bottom:25px}.player-card{text-align:center;padding:15px;border-radius:10px;background:hsla(0,0%,94.1%,.5);transition:all .3s ease;flex:1 1;max-width:150px}.player-card.active{background:rgba(102,126,234,.15);border:2px solid #667eea;transform:scale(1.05)}.player-card h3{margin:0 0 10px;font-size:16px;color:#333}.symbol-badge{width:60px;height:60px;margin:0 auto;display:flex;align-items:center;justify-content:center;font-size:36px;font-weight:700;border-radius:50%;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.1)}.symbol-badge.X{color:#e74c3c;border:3px solid #e74c3c}.symbol-badge.O{color:#3498db;border:3px solid #3498db}.vs-divider{font-weight:700;font-size:20px;color:#667eea;margin:0 15px}.game-status{text-align:center;margin:20px 0;min-height:40px}.game-status p{margin:0;font-size:20px;font-weight:600;color:#555}.game-status .my-turn{color:#667eea;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.game-over{padding:15px;border-radius:10px;background:hsla(0,0%,100%,.8)}.game-over .winner{color:#27ae60;font-size:28px;animation:celebrate .5s ease}.game-over .loser{color:#e74c3c;font-size:24px}.game-over .draw{color:#f39c12;font-size:24px}@keyframes celebrate{0%,to{transform:scale(1)}25%{transform:scale(1.1) rotate(-5deg)}75%{transform:scale(1.1) rotate(5deg)}}.game-meta{text-align:center;margin-top:20px;padding-top:20px;border-top:2px solid rgba(102,126,234,.2)}.game-meta p{margin:8px 0;color:#666;font-size:14px}.vanish-info{background:rgba(102,126,234,.1);padding:10px;border-radius:8px;font-weight:500;color:#667eea!important}@media (max-width:768px){.game-info{padding:20px}.players-info{flex-direction:column;grid-gap:15px;gap:15px}.vs-divider{transform:rotate(90deg);margin:0}.player-card{max-width:100%;width:100%}}.app{min-height:100vh;display:flex;justify-content:center;align-items:center;padding:20px}.container{width:100%;max-width:800px}.app-header{text-align:center;margin-bottom:30px;color:#fff}.app-header h1{font-size:42px;margin:0 0 10px;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.subtitle{font-size:18px;opacity:.9;margin:0}.connection-error{background:hsla(0,0%,100%,.95);border-radius:15px;padding:50px;text-align:center;box-shadow:0 8px 32px rgba(0,0,0,.1)}.connection-error h1{color:#e74c3c;margin:0 0 15px}.connection-error p{color:#666;font-size:18px}.error-banner{background:#e74c3c;color:#fff;padding:15px;border-radius:10px;text-align:center;margin-bottom:20px;font-weight:500;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.welcome-screen{display:flex;justify-content:center;align-items:center;min-height:400px}.welcome-card{background:hsla(0,0%,100%,.95);border-radius:15px;padding:40px;text-align:center;box-shadow:0 8px 32px rgba(0,0,0,.1);max-width:500px;width:100%}.welcome-card h2{color:#667eea;margin:0 0 20px;font-size:32px}.welcome-card p{color:#555;font-size:18px;margin:20px 0 15px;font-weight:600}.rules-list{text-align:left;list-style:none;padding:0;margin:0 0 30px}.rules-list li{padding:12px 15px;margin:8px 0;background:rgba(102,126,234,.1);border-radius:8px;color:#555;font-size:16px}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:15px 40px;font-size:20px;font-weight:600;border-radius:10px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px rgba(102,126,234,.4)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(102,126,234,.6)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:#fff;color:#667eea;border:2px solid #667eea;padding:12px 30px;font-size:18px;font-weight:600;border-radius:10px;cursor:pointer;transition:all .3s ease}.btn-secondary:hover{background:#667eea;color:#fff;transform:translateY(-2px)}.game-actions{text-align:center;margin-top:30px}.app-footer{text-align:center;margin-top:40px;color:#fff;opacity:.8}.app-footer code{background:hsla(0,0%,100%,.2);padding:4px 8px;border-radius:5px;font-family:"Courier New",monospace}@media (max-width:768px){.app-header h1{font-size:32px}.subtitle{font-size:16px}.welcome-card{padding:30px 20px}.welcome-card h2{font-size:26px}.rules-list li{font-size:14px;padding:10px 12px}}@media (max-width:480px){.app-header h1{font-size:24px}.subtitle{font-size:14px}.btn-primary{padding:12px 30px;font-size:18px}}
/*# sourceMappingURL=main.e410d702.chunk.css.map */