@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600;800&display=swap";:root{--bg-dark:#0f172a;--bg-darker:#020617;--primary:#3b82f6;--primary-hover:#2563eb;--danger:#ef4444;--danger-hover:#dc2828;--text-main:#f8fafc;--text-muted:#94a3b8;--glass-bg:#1e293bb3;--glass-border:#ffffff1a;--glass-shadow:0 8px 32px 0 #0000005e;--cell-size:100px}*{box-sizing:border-box;margin:0;padding:0}body{background:radial-gradient(circle at 50% -20%, var(--bg-dark), var(--bg-darker));color:var(--text-main);justify-content:center;align-items:center;min-height:100vh;font-family:Outfit,sans-serif;display:flex}.app-container{flex-direction:column;align-items:center;width:100%;max-width:500px;padding:2rem;display:flex}.app-header{text-align:center;margin-bottom:2rem;animation:.8s ease-out fadeInDown}.app-header h1{background:linear-gradient(135deg,#60a5fa,#c084fc);-webkit-text-fill-color:transparent;text-shadow:0 10px 30px #60a5fa4d;-webkit-background-clip:text;margin-bottom:.5rem;font-size:3rem;font-weight:800}.subtitle{color:var(--text-muted);letter-spacing:1px;font-weight:300}.app-main{width:100%}.tictactoe-container{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:24px;flex-direction:column;align-items:center;padding:2rem;animation:.8s ease-out fadeInUp;display:flex}.status-panel{text-align:center;min-height:60px;margin-bottom:1.5rem}.status-text{margin-bottom:.5rem;font-size:1.25rem;font-weight:600}.turn-indicator{letter-spacing:.5px;text-transform:uppercase;border-radius:999px;padding:.25rem 1rem;font-size:.9rem;font-weight:600;display:inline-block}.turn-indicator.my-turn{color:#34d399;background:#10b98133;border:1px solid #10b9814d;animation:2s infinite pulse}.turn-indicator.opponent-turn{color:#fbbf24;background:#f59e0b33;border:1px solid #f59e0b4d}.board{background:#0003;border:1px solid #ffffff0d;border-radius:16px;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:2rem;padding:16px;display:grid}.cell{width:var(--cell-size);height:var(--cell-size);cursor:default;background:#ffffff08;border-radius:12px;justify-content:center;align-items:center;font-size:4rem;font-weight:800;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:inset 0 2px 4px #ffffff05,0 4px 6px #0003}.cell.clickable{cursor:pointer}.cell.clickable:hover{background:#ffffff14;transform:translateY(-2px);box-shadow:inset 0 2px 4px #ffffff0d,0 8px 12px #0000004d}.cell.clickable:active{transform:translateY(0)}.cell-x{color:#60a5fa;text-shadow:0 0 20px #60a5fa80;animation:.4s cubic-bezier(.175,.885,.32,1.275) popIn}.cell-o{color:#f43f5e;text-shadow:0 0 20px #f43f5e80;animation:.4s cubic-bezier(.175,.885,.32,1.275) popIn}.controls button{cursor:pointer;border:none;border-radius:999px;min-width:160px;padding:.75rem 2rem;font-family:inherit;font-size:1rem;font-weight:600;transition:all .3s}.controls button:disabled{opacity:.6;cursor:not-allowed}.primary-btn{background:linear-gradient(135deg, var(--primary), #8b5cf6);color:#fff;box-shadow:0 4px 15px #3b82f666}.primary-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #3b82f699}.secondary-btn{color:var(--text-main);border:1px solid var(--glass-border);background:#ffffff1a}.danger-btn{color:var(--danger);background:#ef44441a;border:1px solid #ef44444d}.danger-btn:hover:not(:disabled){background:var(--danger);color:#fff;box-shadow:0 4px 15px #ef444466}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.5)}70%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%{box-shadow:0 0 #10b98166}70%{box-shadow:0 0 0 10px #10b98100}to{box-shadow:0 0 #10b98100}}.spinner{vertical-align:middle;border:3px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:20px;height:20px;margin-right:10px;animation:1s ease-in-out infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.tab-nav{justify-content:center;gap:1rem;margin-top:1.5rem;display:flex}.tab-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:.5rem 1.5rem;font-family:inherit;font-size:1.1rem;font-weight:600;transition:all .3s}.tab-btn:hover{color:var(--text-main)}.tab-btn.active{color:var(--primary);border-bottom:2px solid var(--primary)}.leaderboard-container{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:24px;flex-direction:column;width:100%;padding:2rem;animation:.8s ease-out fadeInUp;display:flex}.leaderboard-container h2{text-align:center;color:var(--primary);margin-bottom:1.5rem;font-weight:800}.rankings-table{border-collapse:collapse;width:100%}.rankings-table th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--glass-border);padding:1rem .5rem;font-weight:600}.rankings-table td{border-bottom:1px solid #ffffff0d;padding:1rem .5rem}.rankings-table tbody tr{transition:background .3s}.rankings-table tbody tr:hover{background:#ffffff0d}.username-cell{color:#c084fc;font-family:monospace;font-size:.9em}.rank-first td{color:#fbbf24;background:#fbbf241a;font-weight:800}.rank-second td{color:#94a3b8;font-weight:800}.rank-third td{color:#b45309;font-weight:800}@media (width<=600px){:root{--cell-size:clamp(60px, 22vw, 90px)}.app-container{padding:1rem}.tictactoe-container{padding:1.5rem 1rem}.app-header h1{font-size:2.2rem}.board{gap:8px;padding:12px}.cell{font-size:2.5rem}.controls button{min-width:120px;padding:.6rem 1.5rem;font-size:.9rem}}
