@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Outfit:wght@400;500;700&display=swap";.lobby-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;width:100vw;background:var(--bg-color);font-family:var(--font-body);color:var(--text-color);position:relative;overflow-y:auto;overflow-x:hidden}.lobby-container:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:none;pointer-events:none;z-index:0}.lobby-title{font-family:var(--font-heading);font-size:clamp(3rem,10vw,6rem);color:var(--primary-color);font-weight:700;margin:0;margin-bottom:clamp(1rem,4vh,2rem);letter-spacing:2px;z-index:2;text-align:center;line-height:1.1}@media (max-width: 768px){.lobby-title{font-size:3rem;margin-bottom:1rem}.lobby-marbles{gap:10px;margin-bottom:1.5rem}.marble{width:40px;height:40px}}.lobby-marbles{display:flex;gap:20px;margin-bottom:3rem;z-index:2}.marble{width:clamp(40px,10vw,60px);height:clamp(40px,10vw,60px);border-radius:50%;box-shadow:0 4px 10px #0000000d;border:none}.marble.red{background:#ce6a5c}.marble.blue{background:#638596}.marble.green{background:#7d9781}.marble.yellow{background:#d9a05b}.lobby-form{display:flex;flex-direction:column;gap:20px;width:90%;max-width:400px;z-index:2;background:var(--glass-bg);padding:clamp(20px,5vw,40px);border-radius:12px;border:var(--glass-border);box-shadow:var(--shadow-elevation);position:relative;box-sizing:border-box}@media (max-height: 600px){.lobby-title{font-size:2.5rem;margin-bottom:.5rem}.lobby-marbles{margin-bottom:1rem;gap:10px}.marble{width:30px;height:30px}.lobby-form{padding:15px;gap:10px;flex-direction:row;flex-wrap:wrap;justify-content:center}.lobby-input,.lobby-button{padding:8px;font-size:1rem}}.lobby-form:after{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:1px solid rgba(125,151,129,.15);pointer-events:none;border-radius:8px}.lobby-input{padding:16px;font-size:1.1rem;font-family:var(--font-body);background:rgba(255,255,255,.8);border:1px solid #cbd5e1;border-radius:6px;color:var(--text-color);outline:none;transition:all .2s;font-weight:500}.lobby-input:focus{background:#ffffff;border-color:var(--primary-color);box-shadow:0 0 0 3px #7d978126}.lobby-input::placeholder{color:#94a3b8;font-style:italic;opacity:.8}.lobby-button{padding:16px;font-size:1.2rem;font-family:var(--font-heading);border-radius:6px;border:none;background:var(--primary-color);color:#fff;cursor:pointer;box-shadow:0 4px 6px #7d978126;transition:all .2s ease;text-transform:uppercase;font-weight:700;letter-spacing:1px;margin-top:10px}.lobby-button:hover:not(:disabled){background:#6c8570;transform:translateY(-1px);box-shadow:0 6px 12px #7d978140}.lobby-button:active:not(:disabled){transform:translateY(1px);box-shadow:0 2px 4px #7d978126}.lobby-button:disabled{background:#cbd5e1;color:#94a3b8;cursor:not-allowed;border-color:transparent;box-shadow:none;opacity:.7}.waiting-room-container{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:100%;padding:40px 20px 20px;width:100%}.waiting-title{font-family:var(--font-heading);color:var(--accent-color);font-size:2.5rem;text-shadow:none;margin-bottom:10px}.waiting-subtitle{font-family:var(--font-body);color:var(--text-muted);margin-bottom:40px;font-style:italic}.players-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:30px;width:100%;max-width:900px}@media (max-width: 768px){.players-grid{grid-template-columns:1fr;gap:15px;padding-bottom:40px}.waiting-title{font-size:1.8rem;word-break:break-all}.waiting-subtitle{margin-bottom:20px;font-size:.9rem}}.lobby-layout-split{display:flex;flex-direction:column;align-items:center;width:100%;max-width:600px;gap:30px;flex:1}.player-card.hero-card{width:100%;border:2px solid var(--primary-color);background:#ffffff;box-shadow:0 10px 25px #0000000d;z-index:10}.hero-controls{display:flex;justify-content:space-around;align-items:center;margin:20px 0;gap:20px;flex-wrap:wrap}.others-grid-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:15px;width:100%;justify-content:center}.player-card{background:var(--glass-bg);padding:20px;border-radius:8px;border:var(--glass-border);box-shadow:var(--shadow-elevation);display:flex;flex-direction:column;gap:15px;position:relative;transition:all .3s}.player-card.compact-card{padding:10px;gap:8px;font-size:.9rem}.compact-header{border-bottom:1px solid rgba(0,0,0,.1);padding-bottom:5px}.player-name.compact-name{font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compact-status{font-size:.7rem;padding:2px 4px}.compact-body{display:flex;flex-direction:column;gap:5px;align-items:center}.compact-row{display:flex;align-items:center;gap:8px;justify-content:center}.player-card.empty{opacity:.5;border-style:dashed;background:rgba(255,255,255,.4)}.player-card.empty .player-name{color:var(--text-muted);font-style:italic;font-weight:500}.player-card.ready{border-color:#7d9781;box-shadow:0 0 15px #7d978126}.player-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(0,0,0,.05);padding-bottom:10px}.player-name{font-family:var(--font-heading);font-size:1.3rem;color:var(--text-color);font-weight:700}.player-status{font-size:.8rem;padding:4px 8px;border-radius:4px;font-weight:700;text-transform:uppercase;font-family:var(--font-text)}.status-ready{background:#7d9781;color:#fff;border:1px solid #6c8570}.status-not-ready{background:#d9a05b;color:#fff;border:1px solid #c99351}.control-row{display:flex;align-items:center;gap:12px;font-family:var(--font-body);font-weight:700;color:var(--text-color)}.control-btn{padding:6px 14px;border-radius:4px;border:1px solid #cbd5e1;background:rgba(255,255,255,.8);cursor:pointer;font-family:var(--font-text);font-weight:600;color:var(--text-color);transition:background .2s}.control-btn:hover{background:#e2e8f0}.control-select{padding:6px;border-radius:4px;border:1px solid #cbd5e1;background:#fff;font-family:var(--font-text)}.color-preview{width:24px;height:24px;border-radius:50%;border:1px solid rgba(0,0,0,.1)}.ready-button{margin-top:10px;padding:12px;width:100%;border-radius:6px;border:none;font-family:var(--font-heading);font-size:1.1rem;cursor:pointer;transition:all .2s;text-transform:uppercase;font-weight:700}.ready-button.confirm{background:#7d9781;color:#fff}.ready-button.confirm:hover{background:#6c8570}.ready-button.cancel{background:#ce6a5c;color:#fff}.ready-button.cancel:hover{background:#b55d51}.waiting-footer{margin-top:40px;font-size:.9rem;color:var(--text-muted);font-family:var(--font-text);opacity:.8}.color-trigger-marble:hover{box-shadow:0 0 15px var(--glow-color)!important;transform:scale(1.1)}.color-picker-modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(0,0,0,.8);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:1000;display:flex;justify-content:center;align-items:center;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.color-picker-modal-content{background:var(--glass-bg, rgba(255, 255, 255, .9));padding:30px;border-radius:12px;border:2px solid var(--accent-color, #d4af37);box-shadow:0 10px 30px #00000080;display:flex;flex-direction:column;align-items:center;gap:20px;max-width:90%;width:400px;animation:scaleUp .2s cubic-bezier(.175,.885,.32,1.275)}@keyframes scaleUp{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.modal-title{font-family:var(--font-heading, serif);font-size:1.8rem;color:var(--primary-color, #3e2723);margin:0;text-transform:uppercase;letter-spacing:1px}.modal-subtitle{font-family:var(--font-body, sans-serif);color:var(--text-muted, #666);font-size:.9rem;margin-top:-10px}.color-grid-modal{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;width:100%;margin-top:10px}.color-option-wrapper{display:flex;justify-content:center;align-items:center;position:relative;padding:5px;border-radius:50%;transition:background .2s}.color-option-wrapper:hover{background:rgba(0,0,0,.05)}.modal-close-hint{margin-top:10px;font-size:.8rem;color:#888;cursor:pointer;text-decoration:underline}.lobby-teams-container{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-start;width:100%;max-width:900px;gap:20px;flex:1;padding-bottom:100px}.team-column{display:flex;flex-direction:column;gap:15px;width:45%;min-width:0}.team-title{font-family:var(--font-heading);font-size:1.5rem;color:var(--accent-color);text-align:center;margin:0 0 15px;letter-spacing:1px;text-transform:uppercase;font-weight:700}.team-divider{width:1px;background:#cbd5e1;align-self:stretch;min-height:100px;opacity:.8}.player-card.unified-card{padding:15px;gap:10px;cursor:default;transition:transform .2s,box-shadow .2s,border-color .3s}.player-card.unified-card.is-me{cursor:pointer;border:2px solid var(--accent-color)}.player-card.unified-card.is-me:hover:not(.ready){transform:translateY(-3px);box-shadow:0 8px 20px #0000000d}.player-card.unified-card.ready{border-color:#7d9781!important;box-shadow:0 4px 12px #7d978126}.player-card.unified-card.offline{opacity:.6;filter:grayscale(30%);border:2px dashed #94a3b8}.player-card.unified-card .player-name{font-size:1.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-card.unified-card .control-row.centered{justify-content:center}@keyframes marble-breathe{0%,to{transform:scale(1);box-shadow:0 0 8px var(--glow-color, rgba(212, 175, 55, .5))}50%{transform:scale(1.08);box-shadow:0 0 18px var(--glow-color, rgba(212, 175, 55, .8))}}.color-trigger-marble{animation:marble-breathe 2s ease-in-out infinite}.lobby-footer-bar{position:fixed;bottom:0;left:0;width:100%;padding:18px 20px;background:rgba(255,255,255,.95);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid #cbd5e1;display:flex;justify-content:center;align-items:center;z-index:100;box-shadow:0 -4px 20px #00000005}.ready-button-fixed{padding:14px 40px;border-radius:6px;border:2px solid;font-family:var(--font-heading);font-size:1.2rem;cursor:pointer;transition:all .2s;text-transform:uppercase;letter-spacing:1px;min-width:200px}.ready-button-fixed.confirm{background:#7d9781;border-color:#7d9781;color:#fff;box-shadow:0 4px 10px #7d978126}.ready-button-fixed.confirm:hover{background:#6c8570;border-color:#6c8570;transform:translateY(-2px);box-shadow:0 6px 15px #7d978140}.ready-button-fixed.cancel{background:#ce6a5c;border-color:#ce6a5c;color:#fff;box-shadow:0 4px 10px #ce6a5c26}.ready-button-fixed.cancel:hover{background:#b55d51;border-color:#b55d51;transform:translateY(-2px);box-shadow:0 6px 15px #ce6a5c40}.leave-room-link{background:none;border:none;padding:4px;font-family:var(--font-body);font-size:.8rem;color:#94a3b8;text-decoration:underline;cursor:pointer;align-self:center}.leave-room-link:hover{color:#ce6a5c}@media (max-width: 600px){.lobby-teams-container{flex-direction:row;justify-content:space-around;align-items:stretch;gap:5px;padding:0 5px 110px}.team-column{width:46%;min-width:0;display:flex;flex-direction:column;align-items:center}.team-divider{width:1px;background:#cbd5e1;min-height:auto;align-self:stretch;margin:0 5px;opacity:.8}.team-title{font-size:1rem;margin-bottom:8px}.player-card.unified-card{padding:10px 5px;width:90%;margin:0 auto}.player-card.unified-card .player-name{font-size:.85rem}.lobby-footer-bar{padding:10px;justify-content:center}.ready-button-fixed{width:auto;min-width:180px;max-width:80%;padding:12px 25px;font-size:1rem;margin:0 auto}}:root{--primary-color: #7d9781;--accent-color: #ce6a5c;--highlight-color: #d9a05b;--slate-blue: #638596;--font-heading: "Outfit", sans-serif;--font-body: "Inter", sans-serif;--font-text: "Inter", sans-serif;--text-color: #2d3436;--text-muted: #57606f;--bg-color: #f4f6f4;--glass-bg: rgba(255, 255, 255, .95);--glass-border: 1px solid #e2e8f0;--shadow-elevation: 0 4px 20px rgba(0, 0, 0, .05);--card-width: clamp(95px, 12vw, 130px);--card-height: calc(var(--card-width) * 1.5);--card-overlap: calc(var(--card-width) * -.38);--hand-height: calc(var(--card-height) * .95);--card-translate-y-rest: 20%;--card-translate-y-hover: 0%;--hand-visible-height: calc(var(--card-height) * 1.05)}@media (max-width: 768px){:root{--card-width: clamp(88px, 23vw, 135px);--card-overlap: calc(var(--card-width) * -.42);--card-translate-y-rest: 15%;--card-translate-y-hover: 0%;--hand-visible-height: calc(var(--card-height) * 1)}}@media (min-width: 769px) and (max-width: 1200px){:root{--card-width: clamp(92px, 14vw, 140px);--card-overlap: calc(var(--card-width) * -.4);--hand-visible-height: calc(var(--card-height) * 1)}}html,body{margin:0;padding:0;height:100%;width:100%;overflow:hidden;font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-color);color:var(--text-color);touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}#root{display:flex;flex-direction:column;height:100vh;height:100dvh;width:100vw;overflow:hidden;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}@keyframes pulse{0%,to{transform:scale(1);box-shadow:0 0 8px currentColor}50%{transform:scale(1.1);box-shadow:0 0 16px currentColor,0 0 24px currentColor}}.player-active{animation:pulse 1.5s ease-in-out infinite}@media (max-width: 768px){.hide-mobile{display:none!important}}.game-marble{width:100%;height:100%;border-radius:50%;background-color:var(--marble-color);background-image:none;box-shadow:none;border:none;position:relative}.game-marble.selected{box-shadow:0 0 0 3px #d4af37;transform:scale(1.1)}.board-edge-shadow{filter:drop-shadow(0 12px 32px rgba(30,37,34,.18))}.board-edge-glow{filter:drop-shadow(0 0 25px rgba(212,175,55,.7));animation:board-glow-opacity 3s ease-in-out infinite}@keyframes board-glow-opacity{0%,to{opacity:.35}50%{opacity:.95}}@keyframes playable-ring-pulse{0%,to{transform:scale(1);opacity:.55}50%{transform:scale(1.18);opacity:.95}}.playable-ring-anim{transform-box:fill-box;transform-origin:center;animation:playable-ring-pulse 1.6s ease-in-out infinite}@keyframes shake-interval{0%,90%{transform:translate(0)}92%{transform:translate(-2px,1px)}94%{transform:translate(2px,-1px)}96%{transform:translate(-2px,-1px)}98%{transform:translate(2px,1px)}to{transform:translate(0)}}.base-shake{animation:shake-interval 3s ease-in-out infinite}@keyframes active-pulse{0%{transform:scale(1);box-shadow:0 0 5px currentColor}50%{transform:scale(1.1);box-shadow:0 0 15px currentColor}}@keyframes base-pulse{0%,to{stroke:#e8d5b0;stroke-width:2.5px;stroke-opacity:.6}50%{stroke:#d9a05b;stroke-width:4.5px;stroke-opacity:1}}.base-glow{animation:base-pulse 2s ease-in-out infinite;stroke:#ffecb3!important}@keyframes target-ring-pulse{0%,to{transform:scale(1);stroke-opacity:.6}50%{transform:scale(1.2);stroke-opacity:1;stroke:#ff3f34}}.target-ring-anim{transform-box:fill-box;transform-origin:center;animation:target-ring-pulse 1.2s ease-in-out infinite}@keyframes pulse-glow{0%,to{opacity:.65;filter:blur(5px)}50%{opacity:.95;filter:blur(8px)}}@keyframes zoom-in-bounce{0%{transform:scale(.85);opacity:0}10%{opacity:1}70%{transform:scale(1.02)}to{transform:scale(1)}}.zoom-in-bounce-anim{animation:zoom-in-bounce .35s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes local-turn-pulse{0%,to{box-shadow:0 0 #d9a05bcc,0 4px 10px #00000026;transform:scale(1.1)}50%{box-shadow:0 0 0 8px #d9a05b00,0 6px 15px #d9a05b4d;transform:scale(1.18)}}.local-turn-active{animation:local-turn-pulse 1.5s infinite ease-in-out!important;border-color:#d9a05b!important}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.turn-bar-shimmer{background:linear-gradient(90deg,#d9a05b 0%,#faf9f6 50%,#d9a05b 100%);background-size:200% 100%;animation:shimmer 3s infinite linear}@keyframes local-badge-pulse{0%,to{box-shadow:0 2px 5px #d9a05b4d;border-color:#d9a05b}50%{box-shadow:0 2px 12px #d9a05bb3;border-color:#f7ca88}}.local-badge-active{animation:local-badge-pulse 1.5s infinite ease-in-out!important;border-color:#d9a05b!important}.game-viewport-middle{flex:1 1 auto;min-height:0;min-width:0;width:100%;position:relative;overflow:hidden;container-type:size;display:flex;align-items:center;justify-content:center;box-sizing:border-box;padding:2px}.game-board-scaler{width:min(100cqw,100cqh,100%);height:min(100cqw,100cqh,100%);aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center;position:relative;box-sizing:border-box}.game-board-scaler.zoomed{width:min(100cqw,100%);height:min(100cqh,100%);aspect-ratio:unset}.board-controls{position:absolute;top:2%;right:2%;display:flex;flex-direction:column;gap:12px;z-index:5}.board-control-btn{width:44px;height:44px;flex-shrink:0;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.92);border:1.5px solid #e2e8f0;color:#2d3436;box-shadow:0 3px 10px #1e252240;cursor:pointer;padding:0;transition:background .15s ease,border-color .15s ease,transform .1s ease,color .15s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.board-control-btn:active{transform:scale(.92)}.board-control-btn.active{background:var(--primary-color);border-color:#638067;color:#fff}.board-control-btn svg{width:22px;height:22px}.bottom-interactive-tray{flex-shrink:0;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;position:relative;z-index:50;padding-bottom:max(6px,env(safe-area-inset-bottom,6px));transition:all .3s cubic-bezier(.34,1.56,.64,1)}.compact-action-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1.5px solid #cbd5e1;border-radius:30px;padding:6px 16px;box-shadow:0 8px 24px #0000001f,0 2px 6px #0000000a;max-width:92%;width:auto;min-height:48px;box-sizing:border-box;animation:compact-bar-slide-in .3s cubic-bezier(.34,1.56,.64,1)}@keyframes compact-bar-slide-in{0%{transform:translateY(20px) scale(.95);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.compact-card-preview{display:flex;align-items:center;gap:10px}.compact-card-img{width:32px;height:48px;border-radius:4px;object-fit:contain;box-shadow:0 2px 6px #0003;border:1px solid rgba(0,0,0,.15)}.compact-card-info{display:flex;flex-direction:column;text-align:left}.compact-card-title{font-family:var(--font-heading);font-weight:700;font-size:14px;color:var(--text-color);line-height:1.2}.compact-card-desc{font-family:var(--font-body);font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.compact-change-btn{padding:6px 14px;border-radius:20px;background:#faf9f6;color:var(--text-color);border:1px solid #cbd5e1;font-family:var(--font-heading);font-size:12px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px;box-shadow:0 2px 4px #0000000d;transition:all .2s ease;white-space:nowrap}.compact-change-btn:hover{background:#ffffff;border-color:#d4af37;transform:scale(1.03)}.compact-change-btn:active{transform:scale(.97)}.compact-action-btns{display:flex;align-items:center;gap:8px}.card-info-badge{position:absolute;top:-8px;right:-8px;width:24px;height:24px;border-radius:50%;background:rgba(45,52,54,.85);color:#faf9f6;font-family:var(--font-heading);font-size:13px;font-style:italic;font-weight:700;display:flex;align-items:center;justify-content:center;border:1.5px solid rgba(255,255,255,.8);box-shadow:0 2px 4px #00000040;cursor:pointer;z-index:5;box-sizing:border-box}.header-icon-btn{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.3);color:#faf9f6;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:all .2s ease}.header-icon-btn:hover{background:rgba(255,255,255,.25);transform:scale(1.08)}.header-icon-btn:active{transform:scale(.95)}
