:root{--card-h: 58px;--card-w-md: 48px;--card-h-md: 68px;--card-w-lg: 70px;--card-h-lg: 96px;--ease-snap: cubic-bezier(.34, 1.56, .64, 1);--ease-smooth: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--dur-fast: .15s;--dur-mid: .28s;--dur-slow: .48s;--font-display: "Bebas Neue", sans-serif;--font-ui: "Rajdhani", sans-serif;--font-mono: "JetBrains Mono", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased}html,body{width:100%;height:100%;overflow:hidden;background:var(--app-bg);font-family:var(--font-ui);color:var(--text-primary);-webkit-user-select:none;user-select:none}#root{width:100%;height:100%;display:flex;flex-direction:column}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--neon-dark);border-radius:2px}.game-client{width:100%;height:100%;display:flex;flex-direction:column;background:#0a0e27;color:#fff}.game-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#00e5cc1a;border-bottom:1px solid rgba(0,229,204,.3);font-family:var(--font-display)}.game-header h1{font-size:24px;margin:0;color:#00e5cc}.menu-btn{background:none;border:none;color:#00e5cc;font-size:20px;cursor:pointer;padding:8px}.player-count{font-size:14px;color:#00e5cc;font-weight:700}.connection-status{padding:8px;background:#ff9800;color:#000;text-align:center;font-size:12px}.error-banner{padding:8px;background:#f44336;color:#fff;text-align:center;font-size:12px}.game-main{flex:1;position:relative;display:flex;align-items:center;justify-content:center}.game-bottom{padding:16px;background:#00000080;border-top:1px solid rgba(0,229,204,.2)}
