.lobby{margin-bottom:0;padding:0}.lobby-inner{flex-direction:column;gap:32px;max-width:720px;margin:0 auto;padding:56px 40px;display:flex}.lobby-title{letter-spacing:.04em;margin:0;font-size:clamp(2.5rem,6vw,4rem);font-weight:800}.lobby-sub{margin:0;font-size:15px;line-height:1.7}.accent{color:var(--glow)}.lobby-modes{grid-template-columns:1fr 1fr;gap:16px;display:grid}.mode-card{flex-direction:column;gap:10px;padding:24px;display:flex}.mode-icon{font-size:28px}.mode-card h2{margin:0;font-size:18px}.mode-card p{margin:0;font-size:13px;line-height:1.5}.online-actions{flex-direction:column;gap:8px;display:flex}.join-row{gap:8px;display:flex}.join-row input{font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em;flex:1}.rules-row{border-top:1px solid #ffffff14;flex-wrap:wrap;gap:10px 24px;padding-top:20px;font-size:13px;line-height:1.5;display:flex}.rule strong{color:var(--text)}.game-header{justify-content:space-between;align-items:center;gap:16px;padding:12px 0 16px;display:flex}.game-status-wrap{align-items:center;gap:14px;display:flex}.game-status{color:var(--muted);font-size:14px}.timer{color:var(--glow);min-width:44px;font-size:18px;font-weight:700;transition:color .3s}.timer.warn{color:var(--warn)}.timer.danger{color:var(--bad);animation:.5s infinite alternate pulse}@keyframes pulse{to{opacity:.5}}.game-layout{grid-template-columns:200px 1fr 200px;align-items:start;gap:16px;display:grid}.player-panel{border-radius:var(--radius2);background:linear-gradient(#0b132ab3,#070a148c);border:1px solid #ffffff14;flex-direction:column;gap:14px;padding:16px;transition:border-color .3s,box-shadow .3s;display:flex}.player-panel.active{border-color:#49d9ff4d;box-shadow:0 0 24px #49d9ff14}#panel-p2.active{border-color:#b56bff4d;box-shadow:0 0 24px #b56bff14}.player-panel.inactive{opacity:.55}.player-header{align-items:center;gap:10px;display:flex}.player-color{border-radius:50%;flex-shrink:0;width:12px;height:12px}.p1-bg{background:var(--glow);box-shadow:0 0 8px #49d9ff99}.p2-bg{background:var(--glow2);box-shadow:0 0 8px #b56bff99}.p1-text{color:var(--glow)}.p2-text{color:var(--glow2)}.player-name{letter-spacing:.06em;font-size:14px;font-weight:600}.player-role{font-size:11px}.player-score-wrap{text-align:center}.score-label{margin-bottom:2px;font-size:11px}.player-score{font-size:48px;font-weight:800;font-family:var(--mono);color:var(--text);line-height:1;transition:transform .15s}.player-score.bump{transform:scale(1.25)}.shapes-label{letter-spacing:.1em;text-transform:uppercase;font-size:11px}.shape-options{flex-direction:column;gap:8px;display:flex}.shape-card{cursor:pointer;background:#0003;border:1px solid #ffffff14;border-radius:12px;justify-content:center;align-items:center;min-height:60px;padding:10px;transition:border-color .15s,background .15s,transform 80ms;display:flex}.shape-card:hover:not(.dimmed){background:#ffffff0a;border-color:#ffffff2e}.shape-card:active:not(.dimmed){transform:scale(.97)}.shape-card.selected.p1-card{background:#49d9ff1a;border-color:#49d9ff80;box-shadow:0 0 16px #49d9ff26}.shape-card.selected.p2-card{background:#b56bff1a;border-color:#b56bff80;box-shadow:0 0 16px #b56bff26}.shape-card.dimmed{cursor:default;opacity:.45}.shape-preview{gap:2px;display:grid}.shape-dot{background:#ffffff0d;border:1px solid #ffffff0f;border-radius:4px;width:18px;height:18px}.p1-card .shape-dot.filled{background:#49d9ff59;border-color:#49d9ff99}.p2-card .shape-dot.filled{background:#b56bff59;border-color:#b56bff99}.col-tracker,.row-tracker{flex-direction:column;gap:6px;display:flex}.tracker-label{letter-spacing:.08em;text-transform:uppercase;font-size:10px}.tracker-dots{flex-wrap:wrap;gap:4px;display:flex}.tracker-dot{width:14px;height:14px;font-family:var(--mono);color:var(--muted);background:#ffffff0a;border:1px solid #ffffff1a;border-radius:3px;justify-content:center;align-items:center;font-size:8px;transition:background .3s,border-color .3s;display:flex}.tracker-dot.scored-p1{color:var(--glow);background:#49d9ff4d;border-color:#49d9ff99}.tracker-dot.scored-p2{color:var(--glow2);background:#b56bff4d;border-color:#b56bff99}.board-wrap{flex-direction:column;gap:4px;display:flex}.col-index{grid-template-columns:repeat(9,52px);gap:3px;padding-left:20px;display:grid}.col-index-cell{text-align:center;width:52px;font-size:10px;transition:color .3s}.col-index-cell.scored{color:var(--glow);font-weight:700}.board-row-wrap{gap:4px;display:flex}.row-index{grid-template-rows:repeat(9,52px);gap:3px;display:grid}.row-index-cell{justify-content:flex-end;align-items:center;width:20px;height:52px;padding-right:4px;font-size:10px;transition:color .3s;display:flex}.row-index-cell.scored{color:var(--glow2);font-weight:700}.board{grid-template-rows:repeat(9,52px);grid-template-columns:repeat(9,52px);gap:3px;display:grid}.cell{background:#ffffff12;border:1px solid #ffffff24;border-radius:6px;width:52px;height:52px;transition:background .12s,border-color .12s;position:relative}.cell.p1{background:#49d9ff38;border-color:#49d9ff73}.cell.p2{background:#b56bff38;border-color:#b56bff73}.cell.scored-col{border-color:#49d9ff40}.cell.scored-row{border-color:#b56bff40}.cell.preview-p1{cursor:crosshair;background:#49d9ff4d;border-color:#49d9ffb3}.cell.preview-p2{cursor:crosshair;background:#b56bff4d;border-color:#b56bffb3}.cell.preview-invalid{cursor:not-allowed;background:#ff5a7a33;border-color:#ff5a7a80}@keyframes flashScore{0%{background:#fc69;border-color:#ffcc66e6;transform:scale(1.06)}to{background:inherit;border-color:inherit;transform:scale(1)}}.cell.flash{animation:.5s forwards flashScore}@keyframes placePop{0%{opacity:.6;transform:scale(.7)}60%{transform:scale(1.08)}to{opacity:1;transform:scale(1)}}.cell.placed{animation:.22s forwards placePop}.gameover-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:200;background:#05070ecc;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.gameover-box{text-align:center;flex-direction:column;align-items:center;gap:20px;max-width:400px;padding:48px;display:flex}.gameover-title{font-size:32px;font-weight:800}.gameover-scores{font-size:20px;font-family:var(--mono);gap:32px;display:flex}.gameover-scores span{font-size:14px}@media (max-width:860px){.game-layout{grid-template-columns:1fr}.board-wrap{overflow-x:auto}.lobby-modes{grid-template-columns:1fr}}
