:root{color-scheme:dark;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100vh;background:#0a0a0a;color:#fafafa}.shell{min-height:100vh;display:grid;place-items:center;padding:2rem}.game{display:flex;flex-direction:column;align-items:center;gap:1.5rem}h1{margin:0;font-size:2rem;font-weight:700;letter-spacing:-.03em}.subtitle{margin:0;color:#ffffff73;font-size:.9rem;text-transform:uppercase;letter-spacing:.15em}.scoreboard{display:flex;gap:2rem}.score{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem 1.5rem;border-radius:.75rem;border:1px solid rgba(255,255,255,.08);background:#ffffff05;transition:border-color .25s,background .25s}.score.active{border-color:#fff3;background:#ffffff0d}.player-x{font-size:1.5rem;font-weight:700;color:#60a5fa}.player-o{font-size:1.5rem;font-weight:700;color:#f472b6}.score-num{font-size:1.75rem;font-weight:700;font-variant-numeric:tabular-nums}.board{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.cell{width:6rem;height:6rem;border:1px solid rgba(255,255,255,.1);border-radius:.75rem;background:#ffffff08;color:#fafafa;font-size:2.5rem;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s,transform .1s;display:grid;place-items:center;padding:0}.cell:hover:not(:disabled){background:#ffffff0f;border-color:#fff3;transform:scale(1.04)}.cell:active:not(:disabled){transform:scale(.97)}.cell:disabled{cursor:default}.cell-x{color:#60a5fa}.cell-o{color:#f472b6}.cell-win{border-color:#facc1599;background:#facc1514;animation:pulse .6s ease-in-out infinite alternate}@keyframes pulse{0%{box-shadow:0 0 #facc154d}to{box-shadow:0 0 12px 4px #facc1526}}.status{font-size:1.15rem;font-weight:500;min-height:1.75rem}.text-x{color:#60a5fa}.text-o{color:#f472b6}.text-draw{color:#ffffff80}.btn{padding:.6rem 1.8rem;border:1px solid rgba(255,255,255,.15);border-radius:.5rem;background:#ffffff0f;color:#fafafa;font-size:.95rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s}.btn:hover{background:#ffffff1a;border-color:#ffffff40}
