:root{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.5;font-weight:400;color:#213547;background:linear-gradient(135deg,#667eea,#764ba2);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(135deg,#820101,#764ba2);background-attachment:fixed;position:relative;overflow-x:hidden}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 20% 50%,rgba(120,119,198,.3) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(255,119,198,.3) 0%,transparent 50%),radial-gradient(circle at 40% 80%,rgba(120,219,255,.3) 0%,transparent 50%);pointer-events:none;z-index:-1}#root{min-height:100vh;display:flex;align-items:center;justify-content:center}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600}button{border:none;background:none;cursor:pointer;font-family:inherit;transition:all .3s ease}button:focus{outline:2px solid #667eea;outline-offset:2px}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes bounce{0%,20%,53%,80%,to{transform:translateZ(0)}40%,43%{transform:translate3d(0,-30px,0)}70%{transform:translate3d(0,-15px,0)}90%{transform:translate3d(0,-4px,0)}}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#ffffff1a;border-radius:4px}::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ffffff80}::selection{background:#667eea4d;color:inherit}::-moz-selection{background:#667eea4d;color:inherit}.game-board{display:flex;justify-content:center;align-items:center;padding:1rem}.board-grid{display:grid;grid-template-columns:repeat(3,100px);grid-template-rows:repeat(3,100px);gap:8px;background:linear-gradient(135deg,#667eea,#764ba2);padding:12px;border-radius:20px;box-shadow:0 10px 30px #0000004d;position:relative;overflow:hidden}.board-grid:before{content:"";position:absolute;inset:0;background:linear-gradient(45deg,#ffffff1a,#ffffff0d);pointer-events:none}.cell{background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:2.5rem;font-weight:700;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #0000001a;overflow:hidden}.cell:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#ffffffe6,#ffffffb3);opacity:0;transition:opacity .3s ease}.cell.clickable{cursor:pointer}.cell.clickable:hover:before{opacity:1}.cell.hovered{transform:scale(1.05);box-shadow:0 8px 25px #0003}.cell.animating{animation:cellPulse .3s cubic-bezier(.4,0,.2,1)}@keyframes cellPulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.cell-content{z-index:2;position:relative;animation:pieceAppear .4s cubic-bezier(.68,-.55,.265,1.55)}@keyframes pieceAppear{0%{transform:scale(0) rotate(180deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}.cell.x .cell-content{color:#ff6b6b;text-shadow:0 2px 4px rgba(255,107,107,.3)}.cell.o .cell-content{color:#4ecdc4;text-shadow:0 2px 4px rgba(78,205,196,.3)}.hover-preview{position:absolute;z-index:1;font-size:2.5rem;font-weight:700;opacity:.4;animation:hoverPulse 1s infinite alternate}@keyframes hoverPulse{0%{opacity:.3;transform:scale(.9)}to{opacity:.6;transform:scale(1.1)}}.cell.winning{background:linear-gradient(135deg,#ffeaa7,#fdcb6e);animation:winningGlow 1s ease-in-out infinite alternate;box-shadow:0 0 20px #fdcb6e99}@keyframes winningGlow{0%{box-shadow:0 0 20px #fdcb6e99;transform:scale(1)}to{box-shadow:0 0 30px #fdcb6ecc;transform:scale(1.02)}}.cell.winning .cell-content{animation:winningBounce .6s cubic-bezier(.68,-.55,.265,1.55) infinite alternate}@keyframes winningBounce{0%{transform:scale(1)}to{transform:scale(1.1)}}@media (max-width: 768px){.board-grid{grid-template-columns:repeat(3,80px);grid-template-rows:repeat(3,80px);gap:6px;padding:10px}.cell,.hover-preview{font-size:2rem}}.cell.selected{background:linear-gradient(135deg,#4facfe,#00f2fe);border:3px solid #4facfe;box-shadow:0 0 15px #4facfe99;animation:selectedPulse 1s ease-in-out infinite alternate}.cell.valid-move{background:linear-gradient(135deg,#a8edea,#fed6e3);border:2px solid #a8edea;opacity:.8;animation:validMovePulse 1.5s ease-in-out infinite}.cell.hovered-piece{background:linear-gradient(135deg,#667eea,#764ba2);border:2px solid #667eea}.cell.hovered-move{background:linear-gradient(135deg,#ffecd2,#fcb69f);border:2px solid #fcb69f}.move-indicator{font-size:1.2rem;color:#4facfe;font-weight:700;animation:bounce 1s ease-in-out infinite;position:absolute;z-index:2}@keyframes selectedPulse{0%{box-shadow:0 0 15px #4facfe99;transform:scale(1)}to{box-shadow:0 0 25px #4facfee6;transform:scale(1.05)}}@keyframes validMovePulse{0%{opacity:.6;transform:scale(.95)}50%{opacity:.9;transform:scale(1.02)}to{opacity:.6;transform:scale(.95)}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-5px)}60%{transform:translateY(-3px)}}@media (max-width: 480px){.board-grid{grid-template-columns:repeat(3,70px);grid-template-rows:repeat(3,70px);gap:4px;padding:8px}.cell{font-size:1.8rem;border-radius:8px}.hover-preview{font-size:1.8rem}.move-indicator{font-size:1rem}}.player-display{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1.5rem;background:linear-gradient(135deg,#ffffff1a,#ffffff0d);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;border:1px solid rgba(255,255,255,.2);box-shadow:0 8px 32px #0000001a}.game-info{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%}.status-message{text-align:center}.status-text{font-size:1.5rem;font-weight:700;padding:.5rem 1rem;border-radius:12px;transition:all .3s ease;display:inline-block}.status-text.playing{background:linear-gradient(135deg,#74b9ff,#0984e3);color:#fff;animation:statusPulse 2s infinite alternate}.status-text.won{background:linear-gradient(135deg,#00b894,#00a085);color:#fff;animation:victoryBounce .8s cubic-bezier(.68,-.55,.265,1.55) infinite alternate}.status-text.draw{background:linear-gradient(135deg,#fdcb6e,#e17055);color:#fff}@keyframes statusPulse{0%{transform:scale(1);box-shadow:0 4px 15px #74b9ff66}to{transform:scale(1.02);box-shadow:0 6px 20px #74b9ff99}}@keyframes victoryBounce{0%{transform:scale(1) rotate(-1deg)}to{transform:scale(1.05) rotate(1deg)}}.current-player{width:100%}.players-row{display:flex;align-items:center;justify-content:center;gap:2rem;flex-wrap:wrap}.player-indicator{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;border-radius:15px;transition:all .3s cubic-bezier(.4,0,.2,1);background:#ffffff1a;border:2px solid transparent;min-width:100px}.player-indicator.active{background:linear-gradient(135deg,#74b9ff33,#0984e333);border-color:#74b9ff;transform:scale(1.05);box-shadow:0 8px 25px #74b9ff4d;animation:activePlayerGlow 2s infinite alternate}@keyframes activePlayerGlow{0%{box-shadow:0 8px 25px #74b9ff4d}to{box-shadow:0 12px 35px #74b9ff80}}.player-icon{font-size:2rem;font-weight:700;transition:all .3s ease}.player-icon.x{color:#ff6b6b;text-shadow:0 2px 4px rgba(255,107,107,.3)}.player-icon.o{color:#4ecdc4;text-shadow:0 2px 4px rgba(78,205,196,.3)}.player-indicator.active .player-icon{animation:iconBounce 1s infinite alternate}@keyframes iconBounce{0%{transform:scale(1)}to{transform:scale(1.1)}}.player-label{font-size:.9rem;font-weight:600;color:#333;text-transform:uppercase;letter-spacing:.5px}.vs-divider{font-size:1.2rem;font-weight:700;color:#666;background:linear-gradient(135deg,#ddd,#bbb);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.game-mode-badge{background:linear-gradient(135deg,#a29bfe,#6c5ce7);color:#fff;padding:.5rem 1rem;border-radius:20px;font-size:.9rem;font-weight:600;box-shadow:0 4px 15px #a29bfe66;animation:badgeFloat 3s ease-in-out infinite alternate}@keyframes badgeFloat{0%{transform:translateY(0)}to{transform:translateY(-2px)}}.mode-text{display:flex;align-items:center;gap:.5rem}@media (max-width: 768px){.player-display{padding:1rem}.players-row{gap:1rem}.player-indicator{padding:.75rem;min-width:80px}.player-icon{font-size:1.5rem}.status-text{font-size:1.3rem}}.game-info-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:1rem 0;flex-wrap:wrap}.phase-indicator{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.5rem 1rem;border-radius:20px;font-size:.9rem;font-weight:600;box-shadow:0 4px 15px #667eea4d;animation:phaseGlow 2s ease-in-out infinite alternate}.phase-text{display:flex;align-items:center;gap:.5rem}.pieces-counter{display:flex;justify-content:center;gap:2rem;margin:1rem 0;padding:1rem;background:#ffffff1a;border-radius:15px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.piece-count{display:flex;flex-direction:column;align-items:center;gap:.25rem}.count-label{font-size:.8rem;color:#fffc;font-weight:500}.count-value{font-size:1rem;color:#fff;font-weight:700;background:linear-gradient(135deg,#4facfe,#00f2fe);padding:.25rem .75rem;border-radius:12px;min-width:80px;text-align:center}@keyframes phaseGlow{0%{box-shadow:0 4px 15px #667eea4d;transform:scale(1)}to{box-shadow:0 6px 20px #667eea80;transform:scale(1.02)}}@media (max-width: 768px){.game-info-row{flex-direction:column;gap:.5rem}.pieces-counter{gap:1rem}}@media (max-width: 480px){.players-row{flex-direction:column;gap:.5rem}.vs-divider{transform:rotate(90deg);margin:.5rem 0}.player-indicator{width:100%;max-width:200px}.status-text{font-size:1.2rem}.pieces-counter{flex-direction:column;gap:.5rem}.piece-count{flex-direction:row;justify-content:space-between}}.game-mode-selector{max-width:600px;margin:0 auto;padding:2rem;text-align:center}.selector-header{margin-bottom:3rem}.selector-header h2{font-size:2.5rem;margin-bottom:1rem;background:linear-gradient(135deg,#fffbfb,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.selector-header p{font-size:1.2rem;color:snow;margin:0}.mode-options{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:3rem}.mode-card{display:flex;align-items:center;padding:2rem;background:linear-gradient(135deg,#faf9f91a,#ffffff0d);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;border:2px solid rgba(255,255,255,.2);cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.mode-card:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .6s}.mode-card:hover:before{left:100%}.mode-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 20px 40px #0003;border-color:#fafbff}.mode-card.hovered{background:linear-gradient(135deg,#667eea1a,#764ba21a)}.mode-icon{font-size:3rem;margin-right:2rem;flex-shrink:0;animation:iconFloat 3s ease-in-out infinite alternate}@keyframes iconFloat{0%{transform:translateY(0) rotate(0)}to{transform:translateY(-5px) rotate(3deg)}}.mode-card:hover .mode-icon{animation:iconBounce .6s cubic-bezier(.68,-.55,.265,1.55)}@keyframes iconBounce{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.mode-content{flex:1;text-align:left}.mode-title{font-size:1.5rem;font-weight:700;margin:0 0 .5rem;color:#333}.mode-subtitle{font-size:1rem;color:#666;margin:0 0 .75rem;font-weight:500}.mode-description{font-size:.9rem;color:#888;margin:0;line-height:1.4}.mode-arrow{font-size:1.5rem;color:#667eea;margin-left:1rem;transition:all .3s ease}.mode-card:hover .mode-arrow{transform:translate(10px);color:#764ba2}.game-rules{background:linear-gradient(135deg,#ffffff1a,#ffffff0d);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;padding:2rem;border:1px solid rgba(255,255,255,.2);text-align:left}.game-rules h3{font-size:1.3rem;margin-bottom:1rem;color:#fffdfd;text-align:center}.game-rules ul{list-style:none;padding:0;margin:0}.game-rules li{color:#fff4f4;position:relative;padding:.5rem 0 .5rem 2rem;line-height:1.5}.game-rules li:before{content:"✓";position:absolute;left:0;color:#fff;font-weight:700;font-size:1.1rem}@media (max-width: 768px){.game-mode-selector{padding:1rem}.selector-header h2{font-size:2rem}.mode-card{flex-direction:column;text-align:center;padding:1.5rem}.mode-icon{margin-right:0;margin-bottom:1rem;font-size:2.5rem}.mode-content{text-align:center}.mode-arrow{margin-left:0;margin-top:1rem;transform:rotate(90deg)}.mode-card:hover .mode-arrow{transform:rotate(90deg) translate(10px)}.game-rules{padding:1.5rem}}@media (max-width: 480px){.selector-header h2{font-size:1.8rem}.selector-header p{font-size:1rem}.mode-card{padding:1rem}.mode-icon{font-size:2rem}.mode-title{font-size:1.3rem}.game-rules{padding:1rem}.game-rules li{padding-left:1.5rem;font-size:.9rem}}.back-button-selector{background:linear-gradient(135deg,#6c757d,#495057);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);margin-top:1rem;display:flex;align-items:center;gap:.5rem;justify-self:center}.back-button-selector:hover{background:linear-gradient(135deg,#495057,#343a40);transform:translateY(-2px);box-shadow:0 8px 25px #0003}.app{max-width:600px;margin:0 auto;padding:2rem;text-align:center;min-height:100vh;display:flex;flex-direction:column;justify-content:center;gap:2rem}.app h1{font-size:3rem;margin-bottom:1rem;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:0 2px 4px rgba(0,0,0,.1);animation:titleGlow 3s ease-in-out infinite alternate}@keyframes titleGlow{0%{filter:brightness(1)}to{filter:brightness(1.1)}}.game-controls{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.reset-button,.back-button{padding:.75rem 1.5rem;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);text-transform:uppercase;letter-spacing:.5px;position:relative;overflow:hidden}.reset-button{background:linear-gradient(135deg,#ff6b6b,#ee5a24);color:#fff;box-shadow:0 4px 15px #ff6b6b66}.back-button{background:linear-gradient(135deg,#74b9ff,#0984e3);color:#fff;box-shadow:0 4px 15px #74b9ff66}.reset-button:hover,.back-button:hover{transform:translateY(-2px);box-shadow:0 8px 25px #0000004d}.reset-button:active,.back-button:active{transform:translateY(0)}@media (max-width: 768px){.app{padding:1rem;gap:1.5rem}.app h1{font-size:2.5rem}.game-controls{flex-direction:column;align-items:center}.reset-button,.back-button{width:100%;max-width:200px}}@media (max-width: 480px){.app{padding:.5rem}.app h1{font-size:2rem}}
