@import url(https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap);:root{--bg:#181c24;--card:#232837;--primary:#00bcd4;--secondary:#ff4081;--text:#f5f5f5;--text-muted:#888;--border:#33374a;--box-shadow:0 4px 24px #0006;--success:#4caf50;--danger:#f44336}*,:after,:before{box-sizing:border-box}.app-root,body{background:#181c24;background:var(--bg);color:#f5f5f5;color:var(--text);font-family:Roboto,sans-serif;margin:0;min-height:100vh}body{overflow-x:hidden}.app-root{align-items:center;display:flex;justify-content:center;min-height:100vh}.lobby-card{align-items:stretch;background:#232837;background:var(--card);border-radius:18px;box-shadow:0 4px 24px #0006;box-shadow:var(--box-shadow);display:flex;flex-direction:column;gap:.8rem;margin:1rem auto;max-width:480px;padding:1.5rem 2rem 1.2rem;width:100%}.lobby-title-row{align-items:center;display:flex;justify-content:space-between}.lobby-card h1{color:#00bcd4;color:var(--primary);flex:1 1;font-size:2rem;font-weight:700;margin:0;text-align:center}.mute-btn{background:#0000;border:none;border-radius:8px;cursor:pointer;font-size:1.5rem;padding:.3rem;transition:background .2s}.mute-btn:hover{background:#ffffff14}.lobby-fieldset{border:1.5px solid #33374a;border:1.5px solid var(--border);border-radius:12px;margin:0;padding:.6rem 1rem .5rem}.lobby-fieldset legend{color:#00bcd4;color:var(--primary);font-size:.85rem;font-weight:500;letter-spacing:.05em;padding:0 .5rem;text-transform:uppercase}.lobby-section{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.5rem}.lobby-section:last-child{margin-bottom:0}.lobby-section.inline-row{align-items:flex-start;flex-direction:row;gap:1.5rem}.inline-group{display:flex;flex-direction:column;gap:.3rem}.lobby-section label{color:#f5f5f5;color:var(--text);font-size:.9rem;font-weight:500}.lobby-section input,.lobby-section select{background:#181c24;background:var(--bg);border:1.5px solid #33374a;border:1.5px solid var(--border);border-radius:8px;color:#f5f5f5;color:var(--text);font-size:1rem;outline:none;padding:.5rem .75rem;transition:border .2s}.lobby-section input:focus,.lobby-section select:focus{border-color:#00bcd4;border-color:var(--primary)}.avatar-picker{display:flex;flex-wrap:wrap;gap:.4rem}.avatar-option{align-items:center;background:#181c24;background:var(--bg);border:2px solid #33374a;border:2px solid var(--border);border-radius:10px;cursor:pointer;display:flex;font-size:1.15rem;height:36px;justify-content:center;transition:border-color .2s,transform .15s;width:36px}.avatar-option.selected,.avatar-option:hover{border-color:#00bcd4;border-color:var(--primary);transform:scale(1.1)}.avatar-option.selected{background:#00bcd426}.color-picker{display:flex;gap:.5rem}.color-option{border:3px solid #0000;border-radius:50%;cursor:pointer;height:36px;transition:border-color .2s,transform .15s;width:36px}.color-option:hover{transform:scale(1.15)}.color-option.selected{border-color:#fff;box-shadow:0 0 10px #ffffff4d;transform:scale(1.15)}.mode-picker{display:flex;gap:.5rem}.mode-btn{background:#181c24;background:var(--bg);border:1.5px solid #33374a;border:1.5px solid var(--border);border-radius:10px;color:#888;color:var(--text-muted);cursor:pointer;flex:1 1;font-size:.9rem;font-weight:600;padding:.6rem .3rem;transition:all .2s}.mode-btn:hover{color:#f5f5f5;color:var(--text)}.mode-btn.active,.mode-btn:hover{border-color:#00bcd4;border-color:var(--primary)}.mode-btn.active{background:#00bcd426;color:#00bcd4;color:var(--primary)}.difficulty-picker{display:flex;gap:.5rem}.difficulty-btn{background:#181c24;background:var(--bg);border:1.5px solid #33374a;border:1.5px solid var(--border);border-radius:10px;color:#888;color:var(--text-muted);cursor:pointer;flex:1 1;font-size:.85rem;font-weight:600;padding:.5rem .3rem;text-transform:capitalize;transition:all .2s}.difficulty-btn:hover{color:#f5f5f5;color:var(--text)}.difficulty-btn.active,.difficulty-btn:hover{border-color:#ff4081;border-color:var(--secondary)}.difficulty-btn.active{background:#ff408126;color:#ff4081;color:var(--secondary)}.start-btn{background:linear-gradient(135deg,#00bcd4,#ff4081);background:linear-gradient(135deg,var(--primary),var(--secondary));border:none;border-radius:12px;box-shadow:0 2px 12px #0000004d;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:700;margin-top:.2rem;padding:.7rem 1.5rem;transition:transform .15s,box-shadow .2s}.start-btn:hover{box-shadow:0 4px 20px #00bcd44d;transform:translateY(-2px) scale(1.02)}.start-btn:active{transform:translateY(0) scale(.98)}@media (max-width:600px){.app-root{align-items:flex-start}.lobby-card{gap:.6rem;margin:12px;padding:1rem .8rem}.lobby-card h1{font-size:1.6rem}.mode-picker{flex-direction:column}.lobby-section.inline-row{flex-direction:column;gap:.5rem}.avatar-option{font-size:1rem;height:34px;width:34px}}.game-root{align-items:center;background:#0000;color:var(--text);display:flex;flex-direction:column;min-height:100vh;padding:0 1rem}.game-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin:1.2rem 0 1rem;max-width:600px;width:100%}.game-actions{align-items:center;display:flex;gap:.55rem}.back-btn{background:var(--card);border:none;border-radius:8px;color:var(--primary);cursor:pointer;font-size:.95rem;font-weight:700;padding:.5rem 1rem;transition:background .2s,color .2s;white-space:nowrap}.back-btn:hover{background:var(--primary);color:#fff}.undo-btn{background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);cursor:pointer;font-size:.9rem;font-weight:600;padding:.5rem .85rem;transition:background .2s,border-color .2s,color .2s}.undo-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.undo-btn:disabled{cursor:not-allowed;opacity:.45}.scores-block{align-items:flex-start;display:flex;flex-direction:column;gap:.5rem;min-width:120px}.score-row{align-items:center;display:flex;flex-direction:row;font-size:1rem;font-weight:700;gap:.5rem}.score-avatar{font-size:1.2rem}.score-name{transition:text-shadow .3s}.score-name.active{animation:pulse-glow 1.5s ease-in-out infinite;text-shadow:0 0 10px currentColor,0 0 3px #fff}@keyframes pulse-glow{0%,to{text-shadow:0 0 8px currentColor,0 0 2px #fff}50%{text-shadow:0 0 16px currentColor,0 0 6px #fff}}.score-value{background:var(--bg);border:1.5px solid var(--border);border-radius:6px;color:var(--text);font-size:1rem;font-weight:700;min-width:32px;padding:.1rem .6rem;text-align:center;transition:transform .2s}.score-value.score-changed{animation:score-bounce .4s ease}@keyframes score-bounce{0%{transform:scale(1)}40%{transform:scale(1.3)}to{transform:scale(1)}}.room-id{align-self:flex-start;background:var(--card);border-radius:6px;color:var(--text-muted);font-size:.85rem;padding:.2rem .7rem}.online-status-stack{align-items:flex-end;display:flex;flex-direction:column;gap:.35rem}.connection-pill{border:1px solid #0000;border-radius:999px;font-size:.75rem;font-weight:700;padding:.18rem .55rem}.connection-pill.ok{background:#7ee7871a;border-color:#7ee78759;color:#7ee787}.connection-pill.bad{background:#ffae571f;border-color:#ffae5759;color:#ffae57}.board-container{background:var(--card);border-radius:18px;box-shadow:var(--box-shadow);margin:0 auto 1.5rem;min-height:180px;min-width:180px;overflow:visible;position:relative;transition:width .3s,height .3s}.grid-inner{left:50%;top:50%}.dot,.grid-inner{position:absolute;transform:translate(-50%,-50%)}.dot{background:#fff;border:3px solid var(--primary);border-radius:50%;box-shadow:0 2px 8px #0000002e;height:18px;width:18px;z-index:2}.line{background:var(--border);border-radius:6px;position:absolute;transition:background .2s,box-shadow .2s;z-index:1}.hline{height:8px;width:60px}.vline{height:60px;width:8px}.line.taken{box-shadow:0 0 6px #ffffff26}.line.clickable{cursor:pointer}.line.clickable:hover{background:var(--primary);background:var(--preview-color,var(--primary));box-shadow:0 0 12px var(--primary);box-shadow:0 0 12px var(--preview-color,var(--primary))}.line.clickable:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.line.line-new{animation:line-draw .3s ease-out}@keyframes line-draw{0%{opacity:.3;transform:scaleX(.3)}to{opacity:1;transform:scaleX(1)}}.vline.line-new{animation:line-draw-v .3s ease-out}@keyframes line-draw-v{0%{opacity:.3;transform:scaleY(.3)}to{opacity:1;transform:scaleY(1)}}.box{border-radius:8px;height:52px;position:absolute;transition:background .3s,border .3s;width:52px;z-index:0}.box.box-new{animation:box-pop .4s ease-out}@keyframes box-pop{0%{opacity:0;transform:scale(.5)}60%{opacity:1;transform:scale(1.15)}to{opacity:1;transform:scale(1)}}.game-footer{font-size:1.1rem;margin-top:.5rem;min-height:2.5rem;text-align:center}.game-meta{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:center;margin-bottom:.45rem}.meta-pill{background:#ffffff05;border:1px solid var(--border);border-radius:999px;color:var(--text-muted);font-size:.78rem;font-weight:600;letter-spacing:.01em;padding:.2rem .65rem}.turn{font-size:1.15rem;font-weight:700;margin-top:.3rem}.thinking-indicator{animation:thinking 1s ease-in-out infinite}@keyframes thinking{0%,to{opacity:1}50%{opacity:.4}}.waiting-room{align-items:center;background:var(--card);border-radius:18px;box-shadow:var(--box-shadow);display:flex;flex-direction:column;gap:1rem;margin:40px auto;max-width:420px;padding:2rem;width:100%}.waiting-room h2{color:var(--primary);font-size:1.5rem;margin:0 0 .5rem}.room-id-section{align-items:center;display:flex;flex-direction:column;gap:.5rem;width:100%}.copy-btn{background:#0000;border:none;cursor:pointer;font-size:1.1rem;margin-left:.3rem;padding:.2rem;transition:transform .15s}.copy-btn:hover{transform:scale(1.2)}.share-btn{background:var(--bg);border:1.5px solid var(--primary);border-radius:8px;color:var(--primary);cursor:pointer;font-size:.9rem;font-weight:600;padding:.4rem 1rem;transition:background .2s,color .2s}.share-btn:hover{background:var(--primary);color:#fff}.player-count{color:var(--text-muted);font-size:1rem}.player-list{list-style:none;margin:0;padding:0;width:100%}.player-slot{align-items:center;background:var(--bg);border-left:4px solid var(--border);border-radius:10px;display:flex;gap:.7rem;margin-bottom:.4rem;padding:.6rem .8rem;transition:all .2s}.player-slot.joined{animation:slide-in .3s ease-out}@keyframes slide-in{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}.player-slot.empty{opacity:.5}.player-avatar{font-size:1.4rem}.player-name{font-size:1rem;font-weight:600}.player-waiting{font-style:italic}.player-waiting,.waiting-hint{color:var(--text-muted);font-size:.9rem}.waiting-hint{margin:0;text-align:center}.waiting-room .start-btn:disabled{cursor:not-allowed;opacity:.5;transform:none}.game-over-overlay{align-items:center;animation:fade-in .3s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:100}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.game-over-card{align-items:center;animation:card-pop .4s ease-out;background:var(--card);border-radius:18px;box-shadow:0 8px 40px #00000080;display:flex;flex-direction:column;gap:1.2rem;max-width:380px;padding:2rem;width:90%}@keyframes card-pop{0%{opacity:0;transform:scale(.8)}60%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.game-over-title{align-items:center;display:flex;font-size:1.6rem;font-weight:700;gap:.5rem;text-align:center}.winner-avatar{font-size:2rem}.leaderboard{display:flex;flex-direction:column;gap:.4rem;width:100%}.leaderboard-row{align-items:center;background:var(--bg);border-left:4px solid var(--border);border-radius:10px;display:flex;gap:.6rem;padding:.5rem .8rem;transition:background .2s}.leaderboard-row.first-place{background:#ffc10714}.rank{color:var(--text-muted);font-size:.85rem;font-weight:700;min-width:24px}.lb-avatar{font-size:1.3rem}.lb-name{flex:1 1;font-size:.95rem;font-weight:600}.lb-score{background:var(--card);border:1.5px solid var(--border);border-radius:6px;font-size:1rem;font-weight:700;padding:.15rem .6rem}.game-over-actions{display:flex;gap:.8rem;width:100%}.game-over-actions .back-btn,.game-over-actions .start-btn{flex:1 1;font-size:.95rem;padding:.7rem;text-align:center}.game-over-actions .back-btn{background:var(--bg);border:1.5px solid var(--border);border-radius:10px;color:var(--text);cursor:pointer;font-weight:600;transition:border-color .2s}.game-over-actions .back-btn:hover{background:var(--bg);border-color:var(--primary);color:var(--primary)}@media (max-width:1024px){.game-header{max-width:100%}}@media (max-width:600px){.game-root{padding:0 .5rem}.game-header{align-items:stretch;flex-direction:column;gap:.5rem;margin:.8rem 0}.back-btn{align-self:flex-start;font-size:.85rem;padding:.4rem .8rem}.game-actions{justify-content:flex-start}.scores-block{flex-direction:row;flex-wrap:wrap;gap:1rem;justify-content:center}.score-row{font-size:.9rem}.board-container{border-radius:12px;margin-bottom:1rem}.game-footer{font-size:1rem}.waiting-room{margin:20px auto;padding:1.2rem}.game-over-card{padding:1.5rem}.game-over-title{font-size:1.3rem}.game-over-actions{flex-direction:column}}
/*# sourceMappingURL=main.5514b31f.css.map*/