:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.square{background:#fff;border:1px solid #ddd;font-size:36px;font-weight:700;cursor:pointer;transition:background-color .2s ease;position:relative;overflow:hidden;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:0;margin:0;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;line-height:1}.square:hover{background-color:#f0f0f0}.square.removable{background-color:#e8f5e9}.square.removable:hover{background-color:#c8e6c9}.square:active{transform:scale(.95)}.square.x-piece{color:#e74c3c}.square.o-piece{color:#2ecc71}.square:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:#0000001a;border-radius:50%;transform:translate(-50%,-50%);transition:width .3s,height .3s}.square:active:before{width:100%;height:100%}@keyframes piece-appear{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.square:not(:empty){animation:piece-appear .2s ease-out forwards}.square.x-piece.removable{background-color:#fde8e7}.square.o-piece.removable{background-color:#e8f5e9}.square.x-piece.removable:hover{background-color:#fad1ce}.square.o-piece.removable:hover{background-color:#c8e6c9}.board{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;width:min(500px,80vw);height:min(500px,80vw);background-color:#ddd;padding:4px;margin:0 auto}.game-info{width:100%;max-width:500px;margin:20px auto;text-align:center;padding:20px}.status{font-size:24px;margin-bottom:20px;font-weight:500;color:#2c3e50}.pieces-info{display:flex;justify-content:center;gap:40px;margin:20px 0}.pieces-info div{padding:15px 25px;border-radius:10px;font-size:20px;font-weight:500;min-width:160px;box-shadow:0 2px 8px #0000001a;transition:all .2s ease}.pieces-info div:first-child{background-color:#fef2f2;color:#e74c3c;border:2px solid #e74c3c}.pieces-info div:last-child{background-color:#f0fff4;color:#2ecc71;border:2px solid #2ecc71}.reset-button{padding:15px 40px;font-size:22px;background-color:#333;color:#fff;border:none;border-radius:12px;cursor:pointer;transition:all .2s ease;margin-top:30px;min-width:200px;font-weight:500;letter-spacing:1px}.reset-button:hover{background-color:#222;transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.reset-button:active{transform:translateY(0);background-color:#111}.modal-content{background:#fff;padding:40px;border-radius:20px;text-align:center;animation:slideIn .3s ease-out;box-shadow:0 4px 20px #0003;min-width:300px}.winner-text{font-size:36px;margin:0 0 30px;font-weight:700}.x-winner{color:#e74c3c}.o-winner{color:#2ecc71}.play-again-button{padding:15px 40px;font-size:20px;background-color:#333;color:#fff;border:none;border-radius:12px;cursor:pointer;transition:all .2s ease;min-width:200px;font-weight:500}.play-again-button:hover{background-color:#ccc;transform:translateY(-2px)}.play-again-button:active{transform:translateY(0);background-color:#999}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .3s ease-out}.rules-modal{background:#fff;padding:40px;border-radius:20px;width:min(90%,500px);animation:slideIn .3s ease-out;box-shadow:0 4px 20px #0003}.rules-modal h2{color:#333;font-size:28px;margin-bottom:25px;text-align:center}.rules-content{margin-bottom:30px;color:#444;font-size:16px;line-height:1.6}.rules-content p{margin:12px 0}.rules-content ul{list-style-type:none;padding-left:20px;margin:8px 0}.rules-content ul li{position:relative;margin:8px 0}.rules-content ul li:before{content:"•";color:#666;position:absolute;left:-15px}.start-button{width:100%;padding:15px;font-size:18px;background-color:#333;color:#fff;border:none;border-radius:10px;cursor:pointer;transition:all .2s ease}.start-button:hover{background-color:#ccc;transform:translateY(-2px)}.start-button:active{transform:translateY(0);background-color:#999}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}*{margin:0;padding:0;box-sizing:border-box}html,body{background:#f5f5f5;min-height:100vh;width:100%;overflow-x:hidden}body{display:flex;flex-direction:column}#root{min-height:100vh;width:100%;background:#f5f5f5}.game{display:flex;flex-direction:column;align-items:center;width:100%;min-height:100vh;padding:clamp(40px,6vh,60px) min(5vh,40px);background:#f5f5f5}.game-container{background:#fff;padding:clamp(20px,4vw,40px);border-radius:15px;box-shadow:0 4px 20px #0000001a;width:min(90%,800px);display:flex;flex-direction:column;align-items:center;gap:clamp(20px,3vh,30px);margin-top:clamp(40px,6vh,60px)}h1{color:#333;text-align:center;font-size:clamp(2em,5vw,3em);font-weight:700;letter-spacing:1px}@media screen and (min-height: 800px){.game{justify-content:space-between}}@media screen and (max-height: 700px){.game{padding:30px 20px}.game-container{padding:20px;gap:15px;margin-top:30px}h1{font-size:2em}}@media screen and (max-width: 480px){.game{padding:20px 10px}.game-container{width:95%;padding:15px;margin-top:20px}}
