.envido-cantos-overlay{position:fixed;pointer-events:none;z-index:100;width:100%;height:100%;top:0;left:0}.envido-canto{position:absolute;background:#ffd700f2;color:#1a1008;padding:8px 16px;border-radius:8px;font-weight:700;font-size:18px;box-shadow:0 4px 8px #0006;border:2px solid rgba(255,180,0,.8);animation:slideIn .3s ease-out,pulse .5s ease-in-out .3s;white-space:nowrap}.envido-canto.position-0{bottom:50px;left:50%;transform:translate(-50%)}.envido-canto.position-1{right:40px;top:calc(45% + 35px);transform:translateY(-50%)}.envido-canto.position-2{top:70px;left:50%;transform:translate(-50%)}.envido-canto.position-3{left:40px;top:calc(45% + 35px);transform:translateY(-50%)}.envido-canto.is-local{background:#64c8fff2;border-color:#3296ffcc}.envido-canto-text{text-shadow:1px 1px 2px rgba(0,0,0,.3)}.envido-canto.position-0{animation:slideInBottom .3s ease-out,pulseBottom .5s ease-in-out .3s}.envido-canto.position-2{animation:slideInTop .3s ease-out,pulseTop .5s ease-in-out .3s}@media (max-width: 768px){.envido-canto{padding:6px 12px;font-size:14px;border-width:1px}.envido-canto.position-0{bottom:42px}.envido-canto.position-1{right:20px;top:calc(45% + 30px)}.envido-canto.position-2{top:52px}.envido-canto.position-3{left:20px;top:calc(45% + 30px)}@keyframes slideInBottom{0%{opacity:0;bottom:32px}to{opacity:1;bottom:42px}}@keyframes slideInTop{0%{opacity:0;top:42px}to{opacity:1;top:52px}}}@media (max-width: 375px){.envido-canto{padding:5px 10px;font-size:12px}}.cantos-overlay{position:fixed;pointer-events:none;z-index:100;width:100%;height:100%;top:0;left:0}.canto{position:absolute;background:#ff6464f2;color:#fff;padding:8px 16px;border-radius:8px;font-weight:700;font-size:18px;box-shadow:0 4px 8px #0006;border:2px solid rgba(255,50,50,.8);animation:slideIn .3s ease-out,pulse .5s ease-in-out .3s;white-space:nowrap}.canto.position-0{bottom:50px;left:50%;transform:translate(-50%)}.canto.position-1{right:40px;top:calc(45% + 35px);transform:translateY(-50%)}.canto.position-2{top:70px;left:50%;transform:translate(-50%)}.canto.position-3{left:40px;top:calc(45% + 35px);transform:translateY(-50%)}.canto.is-local{background:#6496fff2;border-color:#3264ffcc}.canto-text{text-shadow:1px 1px 2px rgba(0,0,0,.3)}@keyframes slideIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.canto.position-0{animation:slideInBottom .3s ease-out,pulseBottom .5s ease-in-out .3s}@keyframes slideInBottom{0%{opacity:0;bottom:40px}to{opacity:1;bottom:50px}}@keyframes pulseBottom{0%,to{transform:translate(-50%) scale(1)}50%{transform:translate(-50%) scale(1.1)}}.canto.position-2{animation:slideInTop .3s ease-out,pulseTop .5s ease-in-out .3s}@keyframes slideInTop{0%{opacity:0;top:60px}to{opacity:1;top:70px}}@keyframes pulseTop{0%,to{transform:translate(-50%) scale(1)}50%{transform:translate(-50%) scale(1.1)}}.canto.persistent{animation:slideIn .3s ease-out,persistentPulse 2s ease-in-out .3s infinite;box-shadow:0 4px 12px #ff646499,0 0 20px #ff32324d}.canto.persistent.is-local{box-shadow:0 4px 12px #6496ff99,0 0 20px #3264ff4d}@keyframes persistentPulse{0%,to{transform:scale(1);box-shadow:0 4px 12px #ff646499,0 0 20px #ff32324d}50%{transform:scale(1.05);box-shadow:0 4px 16px #ff6464cc,0 0 30px #ff323280}}.canto.persistent.position-0{animation:slideInBottom .3s ease-out,persistentPulseBottom 2s ease-in-out .3s infinite}@keyframes persistentPulseBottom{0%,to{transform:translate(-50%) scale(1);box-shadow:0 4px 12px #ff646499,0 0 20px #ff32324d}50%{transform:translate(-50%) scale(1.05);box-shadow:0 4px 16px #ff6464cc,0 0 30px #ff323280}}.canto.persistent.position-2{animation:slideInTop .3s ease-out,persistentPulseTop 2s ease-in-out .3s infinite}@keyframes persistentPulseTop{0%,to{transform:translate(-50%) scale(1);box-shadow:0 4px 12px #ff646499,0 0 20px #ff32324d}50%{transform:translate(-50%) scale(1.05);box-shadow:0 4px 16px #ff6464cc,0 0 30px #ff323280}}@media (max-width: 768px){.canto{padding:6px 12px;font-size:14px;border-width:1px}.canto.position-0{bottom:42px}.canto.position-1{right:20px;top:calc(45% + 30px)}.canto.position-2{top:52px}.canto.position-3{left:20px;top:calc(45% + 30px)}@keyframes slideInBottom{0%{opacity:0;bottom:32px}to{opacity:1;bottom:42px}}@keyframes slideInTop{0%{opacity:0;top:42px}to{opacity:1;top:52px}}}@media (max-width: 375px){.canto{padding:5px 10px;font-size:12px}}.action-log-tab{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:110;background:#14141ee6;border:1px solid rgba(212,175,55,.35);border-right:none;border-radius:8px 0 0 8px;padding:12px 8px;cursor:pointer;color:#f5d97a;font-size:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s ease;pointer-events:auto}.action-log-tab:hover{background:#d4af3733;border-color:#d4af37}.action-log-tab.open{right:280px}.action-log-tab-icon{display:block;line-height:1}.action-log-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:105;background:#0000004d}.action-log-drawer{position:fixed;right:-280px;top:0;width:280px;height:100%;z-index:110;background:#0f0f19f2;border-left:1px solid rgba(212,175,55,.35);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);display:flex;flex-direction:column;transition:right .3s ease;pointer-events:auto}.action-log-drawer.open{right:0}.action-log-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid rgba(212,175,55,.2)}.action-log-title{font-family:Playfair Display,serif;font-size:.9rem;color:#f5d97a;letter-spacing:.1em;text-transform:uppercase}.action-log-close{background:none;border:none;color:#fff9;font-size:18px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s ease}.action-log-close:hover{color:#ffffffe6;background:#ffffff1a}.action-log-content{flex:1;overflow-y:auto;padding:12px 16px}.action-log-empty{color:#fff6;font-family:Playfair Display,serif;font-size:.85rem;text-align:center;padding:24px 0}.action-log-hand-divider{display:flex;align-items:center;gap:8px;margin:12px 0 8px;color:#d4af37b3;font-family:Playfair Display,serif;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.action-log-hand-divider:before,.action-log-hand-divider:after{content:"";flex:1;height:1px;background:#d4af3740}.action-log-group:first-child .action-log-hand-divider{margin-top:0}.action-log-entry{padding:6px 0;font-size:.82rem;color:#fffc;line-height:1.4;animation:logFadeIn .3s ease}.action-log-player{font-weight:700;color:#fffffff2}.action-log-action{color:#ffffffb3}.action-log-winner{margin-top:8px;padding-top:8px;border-top:1px solid rgba(212,175,55,.2);font-weight:600;color:#d4af37;text-align:center}@keyframes logFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.action-log-content::-webkit-scrollbar{width:4px}.action-log-content::-webkit-scrollbar-track{background:transparent}.action-log-content::-webkit-scrollbar-thumb{background:#d4af374d;border-radius:2px}@media (max-width: 768px){.action-log-tab{right:0;top:auto;bottom:140px;transform:none;border-radius:8px 0 0 8px;padding:10px 6px;font-size:14px}.action-log-tab.open{right:0;bottom:auto;top:0;border-radius:0;width:100%;display:none}.action-log-backdrop{background:#00000080}.action-log-drawer{right:auto;left:0;top:auto;bottom:-60%;width:100%;height:60%;border-left:none;border-top:1px solid rgba(212,175,55,.35);border-radius:16px 16px 0 0;transition:bottom .3s ease}.action-log-drawer.open{bottom:0}}@media (max-width: 375px){.action-log-entry{font-size:.78rem}}.settings-modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:200;animation:fadeIn .2s ease}.settings-modal-content{background:#1e1e28fa;border:1px solid rgba(212,175,55,.3);border-radius:16px;padding:24px;width:90%;max-width:400px;animation:slideUp .3s ease}.settings-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.settings-modal-title{font-family:Playfair Display,serif;font-size:1.5rem;color:#d4af37;margin:0;letter-spacing:.05em}.settings-modal-close{width:32px;height:32px;font-size:1.8rem;color:#ffffff80;background:transparent;border:none;cursor:pointer;transition:color .2s ease;line-height:1}.settings-modal-close:hover{color:#fff}.settings-modal-body{display:flex;flex-direction:column;gap:24px}.settings-section{display:flex;flex-direction:column;gap:12px}.settings-label{font-size:.85rem;color:#ffffffb3;text-transform:uppercase;letter-spacing:.1em;font-family:Playfair Display,serif}.settings-options{display:flex;gap:12px;flex-wrap:wrap}.settings-option-btn{flex:1;min-width:100px;padding:12px 16px;font-family:Playfair Display,serif;font-size:.95rem;color:#ffffffb3;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:8px;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.05em}.settings-option-btn:hover{background:#d4af371a;border-color:#d4af374d}.settings-option-btn.selected{color:#1a1a2e;background:linear-gradient(135deg,#d4af37,#c9a227);border-color:#d4af37}.settings-toggle-btn{display:flex;align-items:center;justify-content:center;gap:12px;padding:14px 20px;font-family:Playfair Display,serif;font-size:1rem;color:#ffffffb3;background:#0000004d;border:1px solid rgba(255,255,255,.2);border-radius:8px;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.05em}.settings-toggle-btn:hover{background:#d4af371a;border-color:#d4af374d}.settings-toggle-btn.active{color:#f5d97a;border-color:#f5d97a99;box-shadow:0 0 12px #f5d97a40}.toggle-icon{font-size:1.4rem}.toggle-text{font-size:.9rem}@media (max-width: 640px){.settings-modal-content{padding:20px;max-width:90%}.settings-modal-title{font-size:1.3rem}.settings-options{flex-direction:column}.settings-option-btn{min-width:auto}}.round-progress{position:fixed;top:72px;right:24px;z-index:100;display:flex;align-items:center;gap:6px;padding:6px 10px;background:#14141ee6;border:1px solid rgba(212,175,55,.35);border-radius:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.round-progress-label{color:#fff9;font-family:SF Mono,Fira Code,monospace;font-size:.65rem;text-transform:uppercase;letter-spacing:.5px;margin-right:2px}.round-progress-dot{width:16px;height:16px;border-radius:50%;transition:background-color .3s ease,transform .3s ease,border-color .3s ease}.round-progress-dot.pending{background:transparent;border:2px solid rgba(255,255,255,.25)}.round-progress-dot.won{background:#4caf50;border:2px solid #4caf50;animation:dot-pop .3s ease}.round-progress-dot.lost{background:#f44336;border:2px solid #f44336;animation:dot-pop .3s ease}.round-progress-dot.tie{background:#ffc107;border:2px solid #ffc107;animation:dot-pop .3s ease}@keyframes dot-pop{0%{transform:scale(1)}50%{transform:scale(1.4)}to{transform:scale(1)}}@media (max-width: 768px){.round-progress{top:52px;right:12px;padding:5px 8px;gap:5px}.round-progress-dot{width:12px;height:12px}}.landscape-prompt{display:none}@media (max-width: 768px) and (orientation: portrait){.landscape-prompt{display:flex;position:fixed;top:0;left:0;width:100%;height:100%;background:#000000f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:300;align-items:center;justify-content:center;animation:fadeIn .5s ease}.landscape-prompt-content{text-align:center;padding:40px;max-width:90%}.rotate-icon{font-size:4rem;margin-bottom:24px;animation:rotateHint 2s ease-in-out infinite}@keyframes rotateHint{0%,to{transform:rotate(0)}25%{transform:rotate(-15deg)}75%{transform:rotate(15deg)}}.landscape-prompt-title{font-family:Playfair Display,serif;font-size:2rem;color:#d4af37;margin:0 0 16px;letter-spacing:.05em}.landscape-prompt-text{font-family:Playfair Display,serif;font-size:1.1rem;color:#fffc;margin:0;line-height:1.5}.fullscreen-btn{margin-top:24px;padding:12px 32px;font-family:Playfair Display,serif;font-size:1.1rem;color:#000;background:#d4af37;border:none;border-radius:8px;cursor:pointer;letter-spacing:.05em;transition:background .2s}.fullscreen-btn:active{background:#b8960e}}.fullscreen-float-btn{display:none}@media (max-width: 932px) and (orientation: landscape){.fullscreen-float-btn{display:flex;align-items:center;gap:6px;position:fixed;top:8px;left:50%;transform:translate(-50%);z-index:250;padding:6px 16px;background:#000000bf;border:1px solid #d4af37;border-radius:20px;color:#d4af37;font-family:Playfair Display,serif;font-size:.85rem;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fsFloatIn .4s ease,fsFloatOut .4s ease 5s forwards}.fullscreen-float-icon{font-size:1rem}.fullscreen-float-close{margin-left:4px;font-size:1.1rem;opacity:.6;line-height:1}.fullscreen-float-close:active{opacity:1}@keyframes fsFloatIn{0%{opacity:0;transform:translate(-50%) translateY(-20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes fsFloatOut{0%{opacity:1}to{opacity:0;pointer-events:none}}}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden;background:linear-gradient(135deg,#1a1a2e,#0f0f1a,#16213e)}canvas{display:block;touch-action:none}.ui-overlay{position:fixed;top:24px;left:50%;transform:translate(-50%);z-index:100;pointer-events:none}.title{font-family:Playfair Display,serif;font-size:2rem;color:#d4af37;text-shadow:0 2px 20px rgba(212,175,55,.4);letter-spacing:.1em;text-transform:uppercase}.instructions{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:100;font-family:Playfair Display,serif;font-size:1rem;color:#fff9;letter-spacing:.05em;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.action-panel{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:100;display:flex;flex-direction:row;gap:16px;align-items:flex-end;transition:all .3s ease}.action-panel.is-your-turn .game-actions{border-color:#ffd70099;box-shadow:0 0 15px #ffd7004d;animation:pulse-actions 1.5s ease-in-out infinite}@keyframes pulse-actions{0%,to{box-shadow:0 0 15px #ffd7004d}50%{box-shadow:0 0 25px #ffd70080}}.action-group{display:flex;flex-direction:column;align-items:center;gap:6px}.action-group-title{display:none}.game-actions{display:flex;gap:12px;padding:10px 14px;background:#14141ee6;border:1px solid rgba(212,175,55,.35);border-radius:10px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.game-action-button{padding:8px 16px;font-family:Playfair Display,serif;font-size:.85rem;color:#f5d97a;background:#1e1e28cc;border:1px solid rgba(212,175,55,.3);border-radius:6px;cursor:pointer;text-transform:uppercase;letter-spacing:.05em;transition:all .2s ease}.game-action-button:hover:not(:disabled){background:#d4af3733;border-color:#d4af37;box-shadow:0 0 12px #d4af3740}.game-action-button:disabled{opacity:.5;cursor:not-allowed}.player-labels{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:90}.player-label{position:absolute;padding:6px 10px;background:#14141ed9;border:1px solid rgba(255,255,255,.12);border-radius:6px;font-family:Playfair Display,serif;font-size:.85rem;color:#ffffffe6;text-transform:none;letter-spacing:.02em}.player-label.is-local{border-color:#d4af3799;color:#f5d97a}.player-label.position-0{bottom:20px;left:50%;transform:translate(-50%)}.player-label.position-2{top:40px;left:50%;transform:translate(-50%)}.player-label.position-1{right:12%;top:45%;transform:translateY(-50%)}.player-label.position-3{left:12%;top:45%;transform:translateY(-50%)}.player-label.has-word{border-color:#ffd700cc!important;box-shadow:0 0 10px #ffd70066,0 0 20px #ffd70033;animation:pulse-word 1.5s ease-in-out infinite}@keyframes pulse-word{0%,to{box-shadow:0 0 10px #ffd70066,0 0 20px #ffd70033}50%{box-shadow:0 0 15px #ffd70099,0 0 30px #ffd7004d}}.signal-button{position:absolute;padding:4px 8px;background:#14141ed9;border:1px solid rgba(255,255,255,.2);border-radius:4px;cursor:pointer;font-size:1.2rem;transition:all .2s ease;z-index:91;pointer-events:auto;margin-left:8px}.signal-button:hover:not(:disabled){background:#d4af3733;border-color:#d4af37;transform:scale(1.1)}.signal-button:disabled{opacity:.4;cursor:not-allowed}.signal-count{position:absolute;top:-6px;right:-6px;background:#d4af37;color:#1a1a2e;border-radius:50%;width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;font-family:Playfair Display,serif}.signal-display-container{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:95}.signal-display{position:absolute;display:flex;flex-direction:column;align-items:center;gap:8px;animation:fadeInOut 4s ease-in-out forwards;pointer-events:none}.signal-group{display:flex;flex-direction:row;gap:12px;align-items:center}.animated-signal{display:flex;flex-direction:column;align-items:center;gap:8px}.lottie-container{width:120px;height:120px;display:flex;align-items:center;justify-content:center}.emoji-fallback{font-size:3.5rem;line-height:1;filter:drop-shadow(0 4px 12px rgba(0,0,0,.3))}.signal-face,.signal-image{filter:drop-shadow(0 4px 12px rgba(0,0,0,.3))}.signal-image img,.signal-image video{display:block;object-fit:contain;object-position:center;border-radius:8px;max-width:200px}.signal-label{background:#14141ef2;padding:6px 12px;border-radius:4px;font-family:Playfair Display,serif;font-size:.9rem;color:#f5d97a;border:1px solid rgba(212,175,55,.4);white-space:nowrap}@keyframes fadeInOut{0%{opacity:0;transform:scale(.5)}15%{opacity:1;transform:scale(1.05)}30%,85%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}.signal-display.position-1{right:80px;top:50%;transform:translateY(-50%)}.signal-display.position-2{top:120px;left:50%;transform:translate(-50%)}.signal-display.position-3{left:80px;top:50%;transform:translateY(-50%)}.connection-status{position:fixed;top:24px;right:24px;z-index:100;font-family:SF Mono,Fira Code,monospace;font-size:.75rem}.status-indicator{display:flex;align-items:center;gap:8px;padding:8px 14px;background:#14141ee6;border:1px solid rgba(255,255,255,.1);border-radius:6px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.status-dot{width:8px;height:8px;border-radius:50%;transition:all .3s ease}.status-dot.connected{background:#4ade80;box-shadow:0 0 8px #4ade8099}.status-dot.disconnected{background:#6b7280}.status-text{color:#fffc;letter-spacing:.02em}.leave-button{margin-left:8px;padding:4px 10px;font-family:inherit;font-size:.7rem;color:#f87171;background:#f871711a;border:1px solid rgba(248,113,113,.3);border-radius:4px;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.05em}.leave-button:hover{background:#f8717133;border-color:#f87171}.menu-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:50;display:flex;align-items:center;justify-content:center;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:opacity .5s ease,visibility .5s ease}.menu-overlay.hidden{opacity:0;visibility:hidden;pointer-events:none}.menu-content{max-width:800px;width:90%;max-height:85vh;overflow-y:auto;padding:32px}.menu-title{font-family:Playfair Display,serif;font-size:2.5rem;color:#d4af37;text-shadow:0 2px 20px rgba(212,175,55,.4);letter-spacing:.1em;text-transform:uppercase;text-align:center;margin-bottom:32px}.name-input-container{display:flex;flex-direction:column;align-items:center;gap:24px}.name-input-subtitle{font-family:Playfair Display,serif;font-size:1.1rem;color:#ffffffb3;text-align:center}.name-input-form{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:320px}.name-input-field{width:100%;padding:14px 20px;font-family:Playfair Display,serif;font-size:1.1rem;color:#fff;background:#1e1e28cc;border:1px solid rgba(212,175,55,.3);border-radius:8px;outline:none;transition:all .3s ease;text-align:center}.name-input-field::placeholder{color:#fff6}.name-input-field:focus{border-color:#d4af37;box-shadow:0 0 20px #d4af3733}.name-input-error{color:#f87171;font-size:.85rem;margin:0}.menu-button{padding:12px 28px;font-family:Playfair Display,serif;font-size:1rem;border-radius:6px;cursor:pointer;transition:all .3s ease;letter-spacing:.05em;text-transform:uppercase;border:1px solid}.menu-button.primary{color:#1a1a2e;background:linear-gradient(135deg,#d4af37,#c9a227);border-color:#d4af37}.menu-button.primary:hover{background:linear-gradient(135deg,#e5c048,#d4af37);box-shadow:0 0 25px #d4af3766;transform:translateY(-2px)}.menu-button.secondary{color:#d4af37;background:#1e1e28cc;border-color:#d4af374d}.menu-button.secondary:hover{background:#d4af3726;border-color:#d4af37}.menu-button.ready-active{color:#1a1a2e;background:linear-gradient(135deg,#4ade80,#22c55e);border-color:#4ade80}.menu-button.ready-active:hover{background:linear-gradient(135deg,#5ce88f,#4ade80)}.menu-button:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.room-browser{display:flex;flex-direction:column;gap:24px}.room-browser-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.room-browser-title{font-family:Playfair Display,serif;font-size:1.3rem;color:#ffffffe6;margin:0}.room-browser-actions{display:flex;gap:12px}.room-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.no-rooms{grid-column:1 / -1;text-align:center;padding:48px 24px;background:#1e1e2899;border-radius:12px;border:1px dashed rgba(212,175,55,.2)}.no-rooms-text{font-family:Playfair Display,serif;font-size:1.2rem;color:#fff9;margin:0 0 8px}.no-rooms-hint{font-size:.9rem;color:#fff6;margin:0}.room-card{background:#1e1e28e6;border:1px solid rgba(212,175,55,.2);border-radius:12px;padding:20px;transition:all .3s ease}.room-card:hover:not(.full){border-color:#d4af3780;box-shadow:0 0 20px #d4af371a}.room-card.full{opacity:.6}.room-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.room-card-name{font-family:Playfair Display,serif;font-size:1.1rem;color:#d4af37;margin:0}.room-card-type{font-size:.75rem;color:#ffffff80;background:#ffffff1a;padding:4px 8px;border-radius:4px}.room-card-players{margin-bottom:16px}.player-count{font-size:.9rem;color:#ffffffb3}.room-card-teams{display:flex;gap:16px;margin-bottom:16px}.team-section{flex:1;padding:12px;background:#0000004d;border-radius:8px}.team-section.full{opacity:.5}.team-label{display:block;font-size:.75rem;color:#ffffff80;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.team-players{display:flex;flex-direction:column;gap:4px}.player-name{font-size:.85rem;color:#fffc}.empty-slot{font-size:.85rem;color:#ffffff4d;font-style:italic}.room-card-join{display:flex;flex-direction:column;gap:12px}.team-select{display:flex;gap:8px}.team-select-btn{flex:1;padding:8px 12px;font-family:inherit;font-size:.8rem;color:#ffffffb3;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;cursor:pointer;transition:all .2s ease}.team-select-btn:hover:not(.disabled){background:#d4af371a;border-color:#d4af374d}.team-select-btn.selected{color:#d4af37;background:#d4af3726;border-color:#d4af37}.team-select-btn.disabled{opacity:.4;cursor:not-allowed}.join-btn{width:100%}.room-card-full{text-align:center;padding:12px;color:#ffffff80;font-style:italic}.modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:#000c;display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#1e1e28fa;border:1px solid rgba(212,175,55,.3);border-radius:16px;padding:28px;width:90%;max-width:420px;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.modal-title{font-family:Playfair Display,serif;font-size:1.4rem;color:#d4af37;margin:0}.modal-close{width:32px;height:32px;font-size:1.5rem;color:#ffffff80;background:transparent;border:none;cursor:pointer;transition:color .2s ease}.modal-close:hover{color:#fff}.create-room-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-label{font-size:.85rem;color:#ffffffb3;text-transform:uppercase;letter-spacing:.05em}.form-input{padding:12px 16px;font-family:inherit;font-size:1rem;color:#fff;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:8px;outline:none;transition:all .2s ease}.form-input:focus{border-color:#d4af3780;box-shadow:0 0 10px #d4af371a}.form-input::placeholder{color:#ffffff4d}.game-type-options,.team-options,.points-options{display:flex;gap:12px}.option-btn{flex:1;padding:16px 12px;font-family:inherit;color:#ffffffb3;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:8px;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;align-items:center;gap:4px}.option-btn:hover{background:#d4af371a;border-color:#d4af374d}.option-btn.selected{color:#d4af37;background:#d4af3726;border-color:#d4af37}.option-title{font-size:1rem}.option-desc{font-size:.75rem;opacity:.6}.form-error{color:#f87171;font-size:.85rem;margin:0}.modal-actions{display:flex;gap:12px;margin-top:8px}.modal-actions .menu-button{flex:1}.waiting-lobby{display:flex;flex-direction:column;gap:28px}.lobby-header{text-align:center}.lobby-room-name{font-family:Playfair Display,serif;font-size:1.5rem;color:#d4af37;margin:0 0 8px}.lobby-game-type{font-size:.9rem;color:#ffffff80}.lobby-teams{display:flex;align-items:stretch;gap:24px}.lobby-team{flex:1;background:#1e1e28cc;border:1px solid rgba(212,175,55,.2);border-radius:12px;padding:20px}.team-header{font-family:Playfair Display,serif;font-size:1.1rem;color:#fffc;text-align:center;margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.1)}.team-slots{display:flex;flex-direction:column;gap:12px}.player-slot{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#0000004d;border-radius:8px;min-height:48px}.player-slot.filled{border:1px solid rgba(255,255,255,.1)}.player-slot.filled.me{border-color:#d4af3766;background:#d4af370d}.player-slot.empty{border:1px dashed rgba(255,255,255,.1)}.player-info{display:flex;align-items:center;gap:8px}.player-slot-name{font-size:.95rem;color:#ffffffe6}.you-badge{font-size:.7rem;color:#d4af37;background:#d4af3733;padding:2px 8px;border-radius:10px}.ready-indicator{font-size:.8rem;padding:4px 10px;border-radius:12px}.ready-indicator.ready{color:#4ade80;background:#4ade8026}.ready-indicator.not-ready{color:#fff6;background:#ffffff0d}.waiting-text{font-size:.85rem;color:#ffffff4d;font-style:italic}.lobby-vs{display:flex;align-items:center;font-family:Playfair Display,serif;font-size:1.5rem;color:#ffffff4d;font-weight:700}.player-left-message{text-align:center;padding:12px 20px;background:#ef444426;border:1px solid rgba(239,68,68,.4);border-radius:8px;color:#f87171;font-family:Playfair Display,serif;font-size:1rem;animation:fadeIn .3s ease}.lobby-status{text-align:center}.status-message{font-size:1rem;margin:0;padding:12px 20px;border-radius:8px}.status-message.waiting{color:#fff9;background:#ffffff0d}.status-message.ready-check{color:#fbbf24;background:#fbbf241a}.status-message.starting{color:#4ade80;background:#4ade8026;animation:pulse 1s ease-in-out infinite}.lobby-actions{display:flex;justify-content:center;gap:16px}.settings-button{position:fixed;bottom:24px;left:24px;z-index:100;width:48px;height:48px;font-size:1.5rem;background:#14141ee6;border:1px solid rgba(212,175,55,.3);border-radius:50%;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.settings-button:hover{background:#d4af3733;border-color:#d4af37;box-shadow:0 0 20px #d4af374d;transform:scale(1.1)}@media (max-width: 768px){.connection-status{top:12px;right:12px}.status-indicator{padding:6px 10px;gap:6px}.status-text{font-size:.65rem}.leave-button{padding:3px 8px;font-size:.65rem;margin-left:6px}.settings-button{bottom:16px;left:16px;width:44px;height:44px;font-size:1.3rem}.action-panel{bottom:12px;gap:5px;max-width:92%}.action-group-title{font-size:.55rem;margin-bottom:-2px}.game-actions{padding:4px 6px;gap:4px}.game-action-button{padding:3px 7px;font-size:.58rem}.player-label{padding:4px 8px;font-size:.7rem}.player-label.position-0{bottom:12px}.player-label.position-2{top:22px}.player-label.position-1{right:20px}.player-label.position-3{left:20px}.signal-button{padding:3px 6px;font-size:1rem;margin-left:6px}.signal-count{width:14px;height:14px;font-size:.6rem}.signal-image img,.signal-image video{max-width:140px}.signal-label{font-size:.75rem;padding:4px 8px}.lottie-container{width:80px;height:80px}.emoji-fallback{font-size:2.5rem}.new-round-message{font-size:2rem;padding:20px 40px}}@media (max-width: 932px) and (orientation: landscape){.action-panel{left:auto;right:12px;bottom:12px;top:auto;transform:none;flex-direction:column;align-items:flex-end;gap:6px}.action-group{flex-direction:column;align-items:flex-end;gap:4px}.action-group-title{font-size:.6rem;text-align:right}.game-actions{flex-direction:column;padding:5px 7px;gap:3px}.game-action-button{padding:4px 8px;font-size:.6rem;white-space:nowrap}.settings-button{bottom:12px;left:12px}.player-label.position-0{bottom:8px}.player-label.position-2{top:18px}}@media (max-width: 375px){.action-panel{bottom:12px;gap:6px}.game-action-button{padding:5px 10px;font-size:.65rem}.player-label{padding:3px 6px;font-size:.65rem}.settings-button{width:40px;height:40px;font-size:1.2rem}}@media (min-width: 933px) and (orientation: landscape){.player-label.position-0{bottom:90px}}@media (max-width: 640px){.menu-content{padding:20px}.menu-title{font-size:1.8rem}.room-browser-header{flex-direction:column;align-items:stretch}.room-browser-actions{justify-content:center}.lobby-teams{flex-direction:column}.lobby-vs{justify-content:center;padding:8px 0}.modal-content{padding:20px;max-height:85vh}.game-type-options,.team-options,.lobby-actions{flex-direction:column}.lobby-actions .menu-button{width:100%}}@media (max-height: 500px) and (orientation: landscape){.modal-content{padding:16px;max-height:95vh;max-width:80%}.modal-header{margin-bottom:12px}.modal-title{font-size:1.2rem}.modal-close{width:28px;height:28px;font-size:1.4rem}.create-room-form{gap:12px}.form-group{gap:6px}.form-label{font-size:.75rem;margin-bottom:4px}.form-input{padding:8px 12px;font-size:.9rem}.game-type-options,.team-options,.points-options{gap:8px;flex-wrap:wrap}.option-btn{padding:10px 12px;font-size:.85rem;min-width:80px}.option-title{font-size:.9rem}.option-desc{font-size:.7rem}.modal-actions{margin-top:8px;gap:8px}.modal-actions .menu-button{padding:8px 16px;font-size:.85rem}.waiting-lobby{gap:16px}.lobby-room-name{font-size:1.2rem;margin-bottom:4px}.lobby-game-type{font-size:.8rem}.lobby-teams{flex-direction:row;gap:12px}.lobby-team{padding:12px}.team-header{font-size:.9rem;margin-bottom:8px;padding-bottom:6px}.team-slots{gap:8px}.player-slot{padding:8px 12px;min-height:36px}.player-slot-name{font-size:.8rem}.lobby-vs{font-size:1.2rem}.lobby-actions{gap:8px}.lobby-actions .menu-button{padding:8px 16px;font-size:.85rem}.menu-content{padding:16px;max-height:95vh}.menu-title{font-size:1.5rem;margin-bottom:16px}.room-browser{gap:16px}.room-browser-title{font-size:1rem}.room-browser-actions .menu-button{padding:8px 16px;font-size:.85rem}.room-list{gap:12px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.room-card{padding:12px}.room-card-name{font-size:.95rem}.room-card-type{font-size:.7rem;padding:3px 6px}.player-count,.player-name,.empty-slot{font-size:.75rem}.team-section{padding:8px}.team-label{font-size:.7rem;margin-bottom:6px}}.new-round-message{position:fixed;top:40%;left:50%;transform:translate(-50%,-50%);z-index:200;font-family:Playfair Display,serif;font-size:3rem;font-weight:700;color:#d4af37;background:#000000e6;padding:32px 60px;border-radius:16px;border:2px solid #d4af37;box-shadow:0 0 40px #d4af3799;letter-spacing:.1em;text-transform:uppercase;text-shadow:0 2px 20px rgba(212,175,55,.8);animation:newRoundFadeIn .5s ease-in-out}@media (max-width: 768px){.new-round-message{top:35%;font-size:2rem;padding:20px 40px}}@media (max-height: 500px) and (orientation: landscape){.new-round-message{top:20%;font-size:1.3rem;padding:10px 24px;border-radius:10px;border-width:1px}}@keyframes newRoundFadeIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.game-over-backdrop{background:#000000eb;z-index:150}.game-over-modal{background:#1e1e28fa;border-radius:24px;padding:48px 40px;max-width:500px;width:90%;animation:gameOverAppear .5s cubic-bezier(.34,1.56,.64,1);box-shadow:0 20px 60px #00000080}.game-over-modal.winner{border:2px solid #4ade80;box-shadow:0 20px 60px #4ade804d,0 0 40px #4ade8033}.game-over-modal.loser{border:2px solid #ef4444;box-shadow:0 20px 60px #ef44444d,0 0 40px #ef444433}@keyframes gameOverAppear{0%{opacity:0;transform:scale(.8) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.game-over-content{text-align:center}.game-over-title{font-family:Playfair Display,serif;font-size:3.5rem;font-weight:700;margin:0 0 32px;letter-spacing:.05em;text-transform:uppercase;animation:titlePulse 1s ease-in-out}.game-over-modal.winner .game-over-title{color:#4ade80;text-shadow:0 0 30px rgba(74,222,128,.6)}.game-over-modal.loser .game-over-title{color:#ef4444;text-shadow:0 0 30px rgba(239,68,68,.6)}@keyframes titlePulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.game-over-winner{margin-bottom:32px;padding:20px;background:#0000004d;border-radius:12px}.winner-label{font-size:.9rem;color:#fff9;text-transform:uppercase;letter-spacing:.1em;margin:0 0 8px}.winner-name{font-family:Playfair Display,serif;font-size:1.8rem;color:#d4af37;margin:0;font-weight:600}.game-over-scores{display:flex;justify-content:center;align-items:center;gap:24px;margin-bottom:24px;padding:20px;background:#0003;border-radius:12px}.score-item{display:flex;flex-direction:column;gap:8px}.score-label{font-size:.9rem;color:#fff9;text-transform:uppercase;letter-spacing:.05em}.score-value{font-family:Playfair Display,serif;font-size:2rem;color:#d4af37;font-weight:700}.score-separator{font-size:2rem;color:#ffffff4d;font-weight:700}.game-over-rounds{font-size:.95rem;color:#ffffff80;margin:0 0 32px;font-style:italic}.game-over-actions{display:flex;gap:16px;justify-content:center}.game-over-actions .menu-button{flex:1;max-width:180px}@media (max-width: 768px){.game-over-modal{padding:28px 20px;max-height:90vh;max-height:90dvh;overflow-y:auto;width:92%}.game-over-title{font-size:2.2rem;margin-bottom:20px}.game-over-winner{margin-bottom:20px;padding:14px}.winner-label{font-size:.8rem}.winner-name{font-size:1.3rem}.game-over-scores{gap:16px;margin-bottom:16px;padding:14px}.score-value,.score-separator{font-size:1.5rem}.game-over-rounds{margin-bottom:20px}.game-over-actions{flex-direction:column}.game-over-actions .menu-button{max-width:100%;width:100%}.game-over-countdown{padding:20px 16px}.countdown-number{font-size:3.5rem}}@media (max-width: 400px){.game-over-modal{padding:20px 16px;border-radius:16px}.game-over-title{font-size:1.8rem;margin-bottom:16px}.game-over-winner{margin-bottom:14px;padding:10px}.winner-name{font-size:1.1rem}.game-over-scores{gap:12px;margin-bottom:12px;padding:10px}.score-label{font-size:.75rem}.score-value,.score-separator{font-size:1.3rem}.game-over-rounds{font-size:.85rem;margin-bottom:14px}.game-over-countdown{padding:14px 12px}.countdown-message{font-size:.9rem}.countdown-number{font-size:2.8rem}.countdown-hint{font-size:.8rem}}@media (max-height: 600px) and (orientation: portrait){.game-over-modal{padding:16px 14px;max-height:88vh;max-height:88dvh}.game-over-title{font-size:1.6rem;margin-bottom:10px}.game-over-winner{margin-bottom:10px;padding:8px}.winner-label{font-size:.7rem;margin-bottom:2px}.winner-name{font-size:1rem}.game-over-scores{gap:10px;margin-bottom:10px;padding:8px}.score-label{font-size:.7rem}.score-value,.score-separator{font-size:1.2rem}.game-over-rounds{font-size:.75rem;margin-bottom:10px}.game-over-countdown{padding:10px 8px}.countdown-message{font-size:.8rem}.countdown-number{font-size:2rem}.countdown-hint{font-size:.7rem}}@media (max-height: 500px) and (orientation: landscape){.game-over-modal{padding:6px 12px;max-height:90vh;max-height:90dvh;overflow-y:auto}.game-over-title{font-size:1.1rem;margin:0 0 4px}.game-over-winner{margin-bottom:4px;padding:4px 6px}.winner-label{font-size:.55rem;margin-bottom:1px}.winner-name{font-size:.85rem}.game-over-scores{gap:8px;margin-bottom:4px;padding:4px 6px}.score-label{font-size:.55rem}.score-value,.score-separator{font-size:1rem}.game-over-rounds{font-size:.6rem;margin:0 0 4px}.game-over-actions{flex-direction:row;gap:6px}.game-over-actions .menu-button{padding:4px 10px;font-size:.65rem}.game-over-countdown{padding:4px;margin-bottom:4px;background:#0003;border-radius:6px}.countdown-message{font-size:.65rem;margin:0 0 2px}.countdown-number{font-size:1.3rem;margin:0}.countdown-hint{font-size:.6rem;margin:2px 0 0}}.game-over-countdown{text-align:center;padding:32px 20px;background:#0000004d;border-radius:12px;margin-bottom:16px}.countdown-message{font-size:1.1rem;color:#fffc;margin:0 0 8px;text-transform:uppercase;letter-spacing:.1em}.countdown-number{font-family:Playfair Display,serif;font-size:5rem;font-weight:700;color:#d4af37;margin:0;text-shadow:0 0 30px rgba(212,175,55,.6);animation:countdownPulse 1s ease-in-out infinite}@keyframes countdownPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.countdown-hint{font-size:.95rem;color:#fff9;margin:8px 0 0;font-style:italic}.pantalla-carga{position:fixed;top:0;left:0;width:100%;height:100%;z-index:150;display:flex;align-items:center;justify-content:center;background:#000000d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:fadeInCarga .3s ease}@keyframes fadeInCarga{0%{opacity:0}to{opacity:1}}.carga-contenido{display:flex;flex-direction:column;align-items:center;gap:24px}.carga-spinner{width:60px;height:60px;border:3px solid rgba(212,175,55,.2);border-top-color:#d4af37;border-radius:50%;animation:spinCarga 1s linear infinite}@keyframes spinCarga{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.carga-mensaje{font-family:Playfair Display,serif;font-size:1.3rem;color:#d4af37;text-shadow:0 2px 10px rgba(212,175,55,.3);letter-spacing:.05em;margin:0;animation:pulseCarga 1.5s ease-in-out infinite}@keyframes pulseCarga{0%,to{opacity:.7}50%{opacity:1}}
