.ndjo-menu{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:center;justify-content:center;font-family:system-ui,sans-serif;color:#fff;background:linear-gradient(180deg,rgba(5,3,12,.25),transparent 30%,transparent 70%,rgba(5,3,12,.3))}.ndjo-menu[hidden]{display:none}.menu-content{display:contents}.menu-top-right{position:absolute;top:1.2rem;right:1.2rem;z-index:10}.welcome-profile-btn{display:flex;align-items:center;gap:10px;padding:.58rem 1rem .58rem .85rem;border-radius:10px;border:1.5px solid rgba(156,96,255,.85);background:#441e78;color:#e2cbff;font:inherit;font-size:.95rem;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s;box-shadow:0 4px 22px #0000008c}.welcome-profile-btn:hover{background:#4a2276f5;border-color:#9c60ffe6}.welcome-profile-name{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-home{display:flex;flex-direction:column;align-items:center;gap:18px}.welcome-logo{width:clamp(230px,34vw,440px);object-fit:contain;filter:drop-shadow(0 0 40px rgba(156,96,255,.5)) brightness(1.15);mix-blend-mode:screen}.welcome-tagline{margin:-8px 0 0;color:#f6f1e873;font-size:.82rem;font-weight:700;letter-spacing:.08em;text-align:center;text-transform:uppercase}.welcome-buttons{display:flex;gap:20px;flex-wrap:wrap;justify-content:center}.welcome-btn{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:clamp(140px,18vw,200px);height:clamp(140px,18vw,200px);border-radius:16px;border:2px solid rgba(156,96,255,.4);background:#100b1cd1;color:#f6f1e8;cursor:pointer;font:inherit;font-size:1rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:border-color .16s ease,background .16s ease,transform .16s ease,box-shadow .16s ease}.welcome-btn:hover{border-color:#9c60ffe6;background:#9c60ff2e;transform:translateY(-4px);box-shadow:0 12px 40px #9c60ff4d}.welcome-btn-icon{font-size:2rem;line-height:1}.multi-btn{border-color:#2fe0a25c}.multi-btn:hover{border-color:#2fe0a2c7;background:#2fe0a21f}.menu-link{background:none;border:none;color:#f6f1e88c;font:inherit;font-size:.85rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.menu-link:hover{color:#fff}.menu-performance-note{margin:0;max-width:min(520px,calc(100vw - 40px));color:#f6f1e866;font-size:.75rem;text-align:center}.menu-panel{position:relative;display:grid;width:min(620px,calc(100vw - 32px));max-height:min(78vh,720px);overflow-y:auto;gap:12px;padding:20px 18px 18px;border:1px solid rgba(246,241,232,.14);border-radius:12px;background:#080610b8;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 18px 52px #00000042,0 0 30px #2fe0a21f}.menu-back{position:absolute;top:14px;left:14px;display:grid;width:42px;height:42px;place-items:center;border:1px solid rgba(246,241,232,.15);border-radius:8px;background:#0806106b;color:#d7d0c5;cursor:pointer}.menu-back:hover{border-color:#9c60ff80;background:#9c60ff24;color:#f6f1e8}.menu-panel-logo{width:clamp(130px,16vw,220px);justify-self:center;object-fit:contain;filter:drop-shadow(0 0 40px rgba(156,96,255,.5)) brightness(1.15);mix-blend-mode:screen}.menu-create-main{justify-self:center;min-height:46px;padding:0 28px;border:1px solid rgba(156,96,255,.78);border-radius:10px;background:#9c60ff47;color:#fff;cursor:pointer;font:inherit;font-size:.94rem;font-weight:900;text-transform:uppercase;box-shadow:0 0 28px #9c60ff3d}.menu-create-main:hover{background:#9c60ff61}.menu-server-status{text-align:center;color:#d7d0c5;font-size:.86rem;font-weight:800}.menu-map{display:flex;align-items:center;gap:14px;width:100%;padding:14px 16px;border:1px solid rgba(246,241,232,.16);border-radius:10px;background:#f6f1e80f;color:#f6f1e8;font:inherit;cursor:pointer;text-align:left}.menu-map:hover:not(:disabled){border-color:#9c60ffb3}.menu-map:disabled{opacity:.5;cursor:default}.menu-map-emoji{font-size:2rem}.menu-map-name{font-size:1rem;font-weight:800}.menu-map small{display:block;font-size:.78rem;font-weight:400;color:#c4b8d8}.menu-map .soon{margin-left:auto;font-size:.72rem;font-weight:800;letter-spacing:3px;color:#c9a8ff}.menu-rooms{display:grid;gap:8px}.menu-room{border:1px solid rgba(246,241,232,.16);border-radius:8px;background:#f6f1e80f;padding:12px 14px}.menu-room-main{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;background:none;border:none;color:#f6f1e8;font:inherit;cursor:pointer;padding:0}.menu-room-name{font-size:1rem;font-weight:800}.menu-room-count{font-size:.72rem;color:#7a6a9a;white-space:nowrap}.menu-room-players{display:flex;flex-wrap:wrap;gap:3px 6px;margin-top:6px}.menu-room-chip{font-size:.85rem;font-weight:700;color:#c4b8d8}.menu-room-pw{display:flex;gap:8px;margin-top:8px}.menu-room-pw input{flex:1;padding:8px 12px;border-radius:8px;border:1px solid rgba(246,241,232,.16);background:#f6f1e814;color:#f6f1e8;font:inherit;outline:none}.menu-room-pw button{padding:8px 16px;border-radius:8px;border:1px solid rgba(156,96,255,.78);background:#9c60ff47;color:#fff;font:inherit;font-weight:800;cursor:pointer}.menu-dialog-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;display:grid;place-items:center;padding:20px;border-radius:inherit;background:#080610c7;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.menu-dialog{position:relative;display:grid;width:min(480px,100%);gap:14px;padding:38px 16px 16px;border:1px solid rgba(156,96,255,.2);border-radius:10px;background:#100b1ce6}.menu-dialog label{display:grid;gap:7px;color:#d7d0c5;font-size:.78rem;font-weight:800;text-transform:uppercase}.menu-dialog input:not([type=range]){min-height:40px;padding:0 12px;border:1px solid rgba(246,241,232,.16);border-radius:8px;background:#f6f1e814;color:#f6f1e8;font:inherit;outline:none}.menu-toggle-row{display:flex;align-items:center;justify-content:space-between;font-size:.82rem;color:#8878a8}.toggle-btn{position:relative;width:38px;height:22px;border-radius:999px;border:none;background:#2a1d4a;cursor:pointer;transition:background .2s;flex-shrink:0;padding:0}.toggle-btn.toggle-on{background:#825ae1}.toggle-knob{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s}.toggle-btn.toggle-on .toggle-knob{transform:translate(16px)}.menu-dialog-hint{margin:0;font-size:.74rem;line-height:1.4;color:#8f849f}.menu-error{margin:0;font-size:.8rem;color:#ff6b6b;text-align:center}.menu-hint{margin:0;color:#8f849f;text-align:center;font-size:.9rem}.menu-dialog-close{position:absolute;top:8px;right:8px;display:grid;width:24px;height:24px;place-items:center;border:0;border-radius:6px;background:transparent;color:#9f95ad;cursor:pointer;font-size:1rem;line-height:1}.menu-dialog-close:hover{background:#9c60ff24;color:#f6f1e8}.menu-confirm{justify-self:end;min-height:40px;padding:0 18px;border:1px solid rgba(156,96,255,.78);border-radius:9px;background:#9c60ff47;color:#fff;cursor:pointer;font:inherit;font-size:.84rem;font-weight:900}.menu-title{margin:0;font-size:clamp(2rem,5vw,3rem);font-weight:900;letter-spacing:2px;text-shadow:0 4px 30px rgba(0,0,0,.55)}.menu-title span{color:#b795ff}.menu-action{background:none;border:none;padding:0;color:#fff;font:inherit;font-size:1.2rem;font-weight:900;letter-spacing:2px;cursor:pointer;text-shadow:0 4px 24px rgba(0,0,0,.55)}.menu-action:hover{color:#c9a8ff}.menu-settings-layout{display:flex;flex-direction:column;align-items:center;gap:14px}.menu-foot{margin:6px 0 0}.menu-setting{display:flex;align-items:center;justify-content:flex-end;gap:14px;font-size:clamp(1.2rem,3vw,1.8rem);font-weight:800;text-shadow:0 4px 24px rgba(0,0,0,.55)}.menu-setting button{background:none;border:none;color:#fff9;font:inherit;cursor:pointer;padding:0 6px}.menu-setting button.active{color:#c9a8ff;text-shadow:0 0 18px rgba(156,96,255,.9)}.menu-setting input[type=range]{width:160px;accent-color:#9c60ff}.ndjo-seg{display:flex;gap:6px}.ndjo-seg button,.menu-setting button[data-stab],.menu-setting button[data-preset],.menu-setting button[data-quality]{background:none;border:none;color:#ffffff8c;font:inherit;font-weight:800;cursor:pointer;padding:0 6px}.ndjo-seg button.active,.menu-setting button[data-stab].active,.menu-setting button[data-preset].active,.menu-setting button[data-quality].active{color:#c9a8ff;text-shadow:0 0 18px rgba(156,96,255,.9)}.game-hud{position:fixed;left:12px;bottom:12px;z-index:15;padding:6px 12px;border-radius:999px;background:#08061099;border:1px solid rgba(156,96,255,.35);color:#d7d0c5;font:12px/1.4 system-ui,sans-serif;pointer-events:none}.game-prompt{position:fixed;left:50%;bottom:64px;transform:translate(-50%);z-index:15;padding:8px 18px;border-radius:999px;background:#080610bf;border:1px solid rgba(156,96,255,.6);color:#fff;font:800 14px/1.4 system-ui,sans-serif;pointer-events:none}.game-prompt[hidden]{display:none}.game-midi{position:fixed;right:12px;bottom:12px;z-index:15;padding:6px 12px;border-radius:999px;background:#08061099;border:1px solid rgba(47,224,162,.4);color:#c4f5e2;font:12px/1.4 system-ui,sans-serif;pointer-events:none;max-width:40vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-midi[hidden]{display:none}.game-multi{position:fixed;right:12px;bottom:52px;z-index:15;padding:6px 12px;border-radius:999px;background:#08061099;border:1px solid rgba(156,96,255,.5);color:#d9c8ff;font:800 12px/1.4 system-ui,sans-serif;pointer-events:none;white-space:nowrap}.game-multi[hidden]{display:none}.settings-panel{width:min(340px,calc(100vw - 24px));max-height:min(520px,calc(100vh - 140px));overflow-y:auto;pointer-events:auto;padding:14px;border:1px solid rgba(156,96,255,.4);border-radius:12px;background:#0a0716f0;color:#f6f1e8;font:13px/1.5 system-ui,sans-serif}.settings-panel.docked{position:fixed;top:62px;left:12px;z-index:16}.settings-panel.centered{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:30;max-height:min(600px,calc(100vh - 60px));box-shadow:0 24px 80px #0009}.sp-tabs{display:flex;gap:4px;margin-bottom:12px;flex-wrap:wrap}.sp-tabs button{background:none;border:none;color:#ffffff8c;font:inherit;font-size:.72rem;font-weight:800;letter-spacing:1px;cursor:pointer;padding:4px 8px}.sp-tabs button.active{color:#c9a8ff;text-shadow:0 0 18px rgba(156,96,255,.9)}.sp-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0}.sp-row>span{font-size:.85rem;font-weight:700;color:#d7d0c5}.sp-row input[type=range]{flex:1;accent-color:#9c60ff}.sp-seg{display:flex;gap:6px}.sp-seg button{background:none;border:none;color:#ffffff8c;font:inherit;font-size:.8rem;font-weight:800;cursor:pointer;padding:0 6px}.sp-seg button.active{color:#c9a8ff;text-shadow:0 0 18px rgba(156,96,255,.9)}.sp-hint{font-size:.72rem;color:#b999ff;margin:2px 0 6px}.game-topbar{position:fixed;top:12px;left:12px;z-index:16;display:flex;gap:8px;pointer-events:auto}.game-topbar[hidden]{display:none}.tb-btn{width:42px;height:42px;display:grid;place-items:center;border:1px solid rgba(246,241,232,.2);border-radius:10px;background:#08061099;color:#f6f1e8;font-size:1.1rem;cursor:pointer}.tb-btn:hover{border-color:#9c60ffb3}.tb-btn.active{border-color:#9c60ff;background:#9c60ff40}.tb-btn[data-tb=chat]{position:relative}.tb-btn[data-tb=chat].has-unread:after{content:attr(data-unread);position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;display:grid;place-items:center;padding:0 5px;border-radius:999px;background:#ff4d72;color:#fff;font-size:.62rem;font-weight:900;line-height:1;box-shadow:0 0 12px #ff4d726b}.tb-panel{position:fixed;top:62px;left:12px;z-index:16;pointer-events:auto;width:min(320px,calc(100vw - 24px));max-height:min(480px,calc(100vh - 140px));overflow-y:auto;padding:14px;border:1px solid rgba(156,96,255,.4);border-radius:12px;background:#0a0716f0;color:#f6f1e8;font:13px/1.5 system-ui,sans-serif}.tb-panel[hidden]{display:none}.tb-panel h3{margin:0 0 10px;font-size:.85rem;letter-spacing:1px;color:#b795ff}.tb-field{display:grid;gap:4px;margin-bottom:10px}.tb-field label{font-size:.72rem;font-weight:800;color:#8f849f;text-transform:uppercase}.tb-field select{padding:7px 9px;border-radius:8px;border:1px solid rgba(246,241,232,.2);background:#f6f1e812;color:#f6f1e8;font:inherit;max-width:100%}.tb-empty{color:#8f849f;font-size:.8rem}.tb-keys{display:grid;gap:3px}.tb-key-row{display:flex;align-items:center;justify-content:space-between;padding:2px 0}.tb-note{font-weight:800;color:#d7d0c5;min-width:44px}.tb-key-btn{min-width:64px;padding:4px 10px;border-radius:7px;border:1px solid rgba(246,241,232,.2);background:#f6f1e812;color:#f6f1e8;font:inherit;font-size:.78rem;font-weight:800;cursor:pointer}.tb-key-btn:hover{border-color:#9c60ff}.tb-key-btn.capturing{border-color:#2fe0a2;color:#2fe0a2;animation:tb-blink 1s infinite}@keyframes tb-blink{50%{opacity:.5}}.tb-reset{width:100%;margin-top:10px;padding:7px;border-radius:8px;border:1px solid rgba(246,241,232,.2);background:transparent;color:#8f849f;font:inherit;font-size:.78rem;cursor:pointer}.tb-reset:hover{color:#f6f1e8;border-color:#9c60ff99}.auth-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;background:#05020ed9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-family:system-ui,sans-serif}.auth-modal{position:relative;width:min(380px,90vw);max-height:92vh;overflow-y:auto;padding:2rem;border-radius:16px;background:#0e0822;border:2px solid #825ae1;display:flex;flex-direction:column;gap:.85rem;box-shadow:0 0 40px #825ae140}.auth-logo{width:120px;object-fit:contain;filter:drop-shadow(0 0 20px rgba(156,96,255,.5)) brightness(1.15);mix-blend-mode:screen;align-self:center;margin-bottom:.25rem}.auth-close{position:absolute;top:.85rem;right:.85rem;background:none;border:none;color:#6b5a8a;font-size:1rem;cursor:pointer;transition:color .15s;display:flex;align-items:center;justify-content:center;padding:2px}.auth-close:hover{color:#f6f1e8}.auth-title{font-size:1.1rem;font-weight:700;color:#f6f1e8;margin:0;text-align:center}.auth-hint{font-size:.83rem;color:#8878a8;margin:0;text-align:center}.auth-hint strong{color:#c4b5e8}.auth-form{display:flex;flex-direction:column;gap:.65rem}.auth-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.82rem;color:#8878a8}.auth-form input{padding:.6rem .85rem;border-radius:8px;border:1px solid #3d2d6a;background:#170f30;color:#f6f1e8;font:inherit;font-size:.93rem;outline:none;transition:border-color .15s}.auth-form input:focus{border-color:#9c60ff}.auth-form input[inputmode=numeric]{font-size:1.4rem;letter-spacing:6px;text-align:center}.auth-submit{margin-top:.25rem;padding:.65rem;border-radius:8px;border:2px solid #825ae1;background:#9c60ff2e;color:#f6f1e8;font:inherit;font-weight:700;font-size:.95rem;cursor:pointer;transition:background .15s,box-shadow .15s}.auth-submit:hover:not(:disabled){background:#9c60ff59;box-shadow:0 0 18px #9c60ff4d}.auth-submit:disabled{opacity:.5;cursor:not-allowed}.auth-switch{background:none;border:none;color:#9c60ff;font:inherit;font-size:.95rem;cursor:pointer;text-align:center;transition:color .15s}.auth-switch:hover{color:#c4a0ff}.forgot-link{color:#a07fd4;font-size:.88rem}.forgot-link:hover{color:#c49fff}.google-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:.65rem;border-radius:8px;border:1px solid #3d2d6a;background:#170f30;color:#f6f1e8;font:inherit;font-size:.93rem;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s}.google-btn:hover{border-color:#825ae1;background:#1e1240}.auth-divider{display:flex;align-items:center;gap:.75rem;color:#3d2d6a;font-size:.78rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:#3d2d6a}.terms-row{display:flex;align-items:center;gap:.5rem}.terms-notice{flex:1;margin:0;font-size:.82rem;color:#a07fd4;text-align:left;line-height:1.4}.terms-lang-toggle{flex-shrink:0;display:flex;border:1px solid rgba(130,90,225,.3);border-radius:5px;overflow:hidden}.terms-lang-toggle button{padding:3px 8px;background:transparent;border:none;color:#ffffff59;font:inherit;font-size:.68rem;font-weight:700;cursor:pointer;transition:background .15s,color .15s}.terms-lang-toggle button:first-child{border-right:1px solid rgba(130,90,225,.3)}.terms-lang-toggle button.active{background:#825ae133;color:#c4a0ff}.auth-error{color:#ff6b6b;font-size:.82rem;margin:0;text-align:center}.midi-panel{position:fixed;top:62px;right:12px;z-index:16;width:min(300px,calc(100vw - 24px));max-height:min(480px,calc(100vh - 140px));overflow-y:auto;padding:14px;border:1px solid rgba(47,224,162,.45);border-radius:12px;background:#080e0cf2;color:#f6f1e8;font:13px/1.5 system-ui,sans-serif;pointer-events:auto}.midi-panel[hidden]{display:none}.midi-panel h3{margin:0 0 10px;font-size:.8rem;letter-spacing:1px;color:#2fe0a2}.mp-file{display:block;width:100%;margin:4px 0 8px;padding:8px;border-radius:8px;border:1px dashed rgba(246,241,232,.3);background:transparent;color:#d7d0c5;font:inherit;font-size:.8rem;cursor:pointer;text-align:center}.mp-file:hover{border-color:#2fe0a2}.mp-track{display:flex;align-items:center;gap:8px;margin:8px 0}.mp-track span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;color:#d7d0c5}.mp-play{padding:6px 14px;border-radius:8px;border:1px solid #2fe0a2;background:#2fe0a226;color:#fff;font:inherit;font-size:.8rem;font-weight:800;cursor:pointer;white-space:nowrap}.mp-play:hover{background:#2fe0a24d}.mp-close{width:100%;margin-top:10px;padding:7px;border-radius:8px;border:1px solid rgba(246,241,232,.2);background:transparent;color:#8f849f;font:inherit;font-size:.78rem;cursor:pointer}.mp-close:hover{color:#f6f1e8}.instr-panel{position:fixed;top:62px;left:12px;z-index:16;width:min(340px,calc(100vw - 24px));max-height:min(520px,calc(100vh - 140px));display:flex;flex-direction:column;padding:14px;border:1px solid rgba(156,96,255,.4);border-radius:12px;background:#0a0716f0;color:#f6f1e8;font:13px/1.5 system-ui,sans-serif;pointer-events:auto}.instr-panel[hidden]{display:none}.instr-panel h3{margin:0 0 10px;font-size:.8rem;letter-spacing:1px;color:#b795ff}.instr-tools{display:grid;gap:8px;margin-bottom:10px}.instr-tools input[type=search],.instr-tools select{padding:7px 9px;border-radius:8px;border:1px solid rgba(246,241,232,.2);background:#f6f1e812;color:#f6f1e8;font:inherit;width:100%;box-sizing:border-box;outline:none}.instr-tools select option{background:#0e0822;color:#f6f1e8}.instr-status{min-height:1.2em;font-size:.75rem;color:#8f849f;margin-bottom:6px}.instr-status.loading{color:#c9a8ff}.instr-status.error{color:#ff8a8a}.instr-list{overflow-y:auto;display:grid;gap:3px}.instr-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;border:1px solid transparent;background:transparent;color:#d7d0c5;font:inherit;text-align:left;cursor:pointer;width:100%;box-sizing:border-box}.instr-row:hover{border-color:#9c60ff80}.instr-row.active{border-color:#9c60ff;background:#9c60ff29;color:#fff}.instr-row:disabled{opacity:.5;cursor:wait}.instr-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem}.instr-size{font-size:.7rem;color:#8f849f;white-space:nowrap}.instr-fav{background:none;border:none;font-size:.9rem;cursor:pointer;padding:0 2px;opacity:.35}.instr-fav.on{opacity:1}.ward-panel{position:fixed;top:62px;left:12px;z-index:16;width:min(300px,calc(100vw - 24px));max-height:min(480px,calc(100vh - 140px));overflow-y:auto;padding:14px;border:1px solid rgba(255,180,120,.4);border-radius:12px;background:#0e0904f2;color:#f6f1e8;font:13px/1.5 system-ui,sans-serif;pointer-events:auto}.ward-panel[hidden]{display:none}.ward-panel h3{margin:0 0 10px;font-size:.8rem;letter-spacing:1px;color:#ffcf9e}.ward-section{margin-bottom:12px}.ward-section>span{display:block;font-size:.72rem;font-weight:800;color:#8f849f;text-transform:uppercase;margin-bottom:6px}.ward-swatches{display:flex;flex-wrap:wrap;gap:6px}.ward-swatch{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0}.ward-swatch:hover{transform:scale(1.12)}.ward-swatch.active{border-color:#fff;box-shadow:0 0 10px #ffffff80}.ward-hats{display:flex;gap:6px}.ward-hats button{flex:1;padding:7px 4px;border-radius:8px;border:1px solid rgba(246,241,232,.2);background:transparent;color:#d7d0c5;font:inherit;font-size:1.1rem;cursor:pointer}.ward-hats button.active{border-color:#ffb46b;background:#ffb46b26}.ward-hats button small{display:block;font-size:.62rem}.room-chat-stack{position:fixed;top:8px;right:8px;bottom:12px;z-index:16;display:flex;width:min(340px,calc(100vw - 16px));min-height:0;flex-direction:column;gap:6px;pointer-events:none;font:13px/1.5 system-ui,sans-serif}.room-chat-stack[hidden]{display:none}.room-chat-topline{position:relative;display:flex;justify-content:flex-start;align-items:start;gap:5px;pointer-events:none;padding:6px 6px 6px 32px}.room-chat-toggle-slot{display:flex;opacity:0;pointer-events:none}.room-chat-toggle-slot-open{opacity:1;pointer-events:auto}.room-chat-topline-collapsed{justify-content:flex-end}.room-chat-topline-collapsed .room-player-capsules{width:calc(100% - 62px);justify-content:flex-end}.room-chat-topline-collapsed .room-player-capsule{max-width:none;flex-basis:auto}.room-player-capsules{display:flex;width:100%;flex-wrap:wrap;justify-content:center;gap:5px;pointer-events:auto}.centered-player-capsules{justify-content:center}.centered-player-capsules .room-player-capsule{max-width:100%;flex-basis:auto}.room-chat-toggle{display:inline-flex;min-height:34px;flex:0 1 auto;align-items:center;justify-content:center;padding:0 12px;border:2px solid #5f3aa8;border-radius:8px;background:#0e0822;color:#f6f1e8;cursor:pointer;font:inherit;font-size:.74rem;font-weight:800;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease,background .12s ease;pointer-events:auto}.room-chat-toggle-badge{display:inline-flex;min-width:18px;height:18px;margin-left:6px;align-items:center;justify-content:center;padding:0 5px;border-radius:999px;background:#ff4d72;color:#fff;font-size:.62rem;font-weight:900;line-height:1;box-shadow:0 0 12px #ff4d726b}.room-chat-toggle-badge[hidden]{display:none}.room-chat-toggle:hover{border-color:#9b6ef0;background:#100a24;box-shadow:0 0 0 4px #825ae121,0 0 24px #825ae14d;transform:translateY(-2px)}.room-player-capsule{display:inline-flex;min-width:0;max-width:100%;flex:0 1 auto;min-height:34px;align-items:center;gap:5px;padding:0 10px;border:2px solid #825ae1;border-radius:8px;background:#0e0822;color:var(--player-name-color, #f6f1e8);font:inherit;font-size:.74rem;font-weight:800;white-space:nowrap;pointer-events:auto;text-shadow:none}.room-player-capsule span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-chat-topline-collapsed .room-player-capsule span:last-child{min-width:fit-content;overflow:visible;text-overflow:clip}.room-player-capsule:before{width:8px;height:8px;flex:0 0 auto;border-radius:999px;background:var(--player-color, #20b8ff);box-shadow:0 0 12px var(--player-color, #20b8ff);content:""}.room-chat{display:grid;flex:1 1 auto;min-height:150px;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border:1px solid rgba(246,241,232,.12);border-radius:8px;background:#0c0816bd;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 18px 46px #0000005c,0 0 28px #9c60ff21;pointer-events:auto}.room-chat-header{display:flex;flex-direction:column;gap:3px;padding:8px 12px;border-bottom:1px solid rgba(246,241,232,.08);color:#9f95ad;font-size:.74rem;font-weight:800;text-transform:uppercase}.room-chat-header-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.room-chat-collapse{order:-1}.room-chat-header-main{order:1;text-align:right}.room-chat-header-main{display:flex;min-width:0;align-items:center;gap:8px}.room-chat-collapse{display:inline-flex;width:28px;height:28px;flex:0 0 auto;align-items:center;justify-content:center;border:1px solid rgba(246,241,232,.12);border-radius:8px;background:#f6f1e80a;color:#f6f1e8;cursor:pointer;transition:background .12s ease,border-color .12s ease}.room-chat-collapse:hover{border-color:#9c60ff6b;background:#9c60ff1a}.room-chat-title{display:block;color:#f6f1e8;font-size:.88rem;font-weight:850;text-align:center;text-transform:none;word-break:break-word;line-height:1.2}.room-chat-player-count{font-size:.62rem;font-weight:800;color:#c4b8d8;white-space:nowrap;overflow:visible}.room-chat-messages{display:flex;min-height:0;flex-direction:column;gap:8px;overflow-y:auto;padding:11px 12px;scrollbar-width:thin;scrollbar-color:rgba(156,96,255,.42) transparent}.room-chat-message{display:grid;max-width:88%;align-self:flex-start;gap:3px;padding:5px 9px 8px;border:1px solid rgba(246,241,232,.09);border-radius:8px;background:#f6f1e812;color:#f6f1e8}.room-chat-messages>:first-child{margin-top:auto}.room-chat-new-messages{align-self:center;display:inline-flex;align-items:center;gap:7px;margin:-4px 0 6px;border:1px solid rgba(32,184,255,.35);border-radius:999px;background:#20b8ff29;color:#dff7ff;font:inherit;font-size:.74rem;font-weight:850;line-height:1;padding:7px 11px;box-shadow:0 8px 20px #00000038;cursor:pointer}.room-chat-new-messages[hidden]{display:none}.room-chat-new-messages:hover{background:#20b8ff40}.chat-gif{max-width:200px;max-height:180px;border-radius:8px;display:block;margin-top:3px}.chat-yt-preview{position:relative;display:inline-block;margin-top:3px;border-radius:8px;overflow:hidden;text-decoration:none}.chat-yt-thumb{display:block;width:200px;height:auto;border-radius:8px}.chat-yt-play{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:2rem;color:#fff;text-shadow:0 0 12px rgba(0,0,0,.8);background:#00000040;transition:background .15s}.chat-yt-preview:hover .chat-yt-play{background:#00000073}.room-chat-message.own-chat{align-self:flex-start;border-color:#9c60ff59;background:#9c60ff2e}.room-chat-message.system-chat{max-width:100%;align-self:center;padding:0;border:0;background:transparent;color:#f6f1e8;font-size:.86rem;font-weight:800;line-height:1.35}.room-chat-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#9f95ad;font-weight:800}.chat-username{font-size:.97rem;color:var(--player-name-color, #c4b8d8);font-weight:500;transform:translate(-1px)}.room-chat-player-button{display:inline-flex;min-width:0;align-items:center;gap:4px;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-size:.78rem;font-weight:850;pointer-events:auto}.room-chat-player-button span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-chat-meta time{color:#6f6480;font-size:.72rem;font-weight:400}.room-chat-message p{margin:0;overflow-wrap:anywhere;font-size:1.08rem;line-height:1.35}.room-chat-empty{margin:auto;color:#6f6480;font-size:.84rem;font-weight:700}.room-chat-form{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 34px 36px;gap:7px;padding:10px;border-top:1px solid rgba(246,241,232,.08)}.room-chat-tools{position:relative;display:grid;place-items:center}.room-chat-textarea{width:100%;min-width:0;min-height:36px;max-height:108px;padding:8px 10px;border:1px solid rgba(246,241,232,.13);border-radius:7px;background:#f6f1e814;color:#f6f1e8;font:inherit;font-size:.97rem;outline:none;resize:none;overflow-y:auto;line-height:1.4;scrollbar-width:thin;scrollbar-color:rgba(156,96,255,.6) transparent}.room-chat-textarea:focus{border-color:#9c60ff9e}.room-chat-textarea::placeholder{color:#6f6480}.room-chat-form button{display:grid;width:36px;height:36px;place-items:center;border:1px solid rgba(156,96,255,.48);border-radius:7px;background:#9c60ff2b;color:#fff;cursor:pointer}.room-chat-form .room-chat-emoji-button{display:grid;place-items:center;width:34px;border-color:transparent;background:transparent;font-size:1.1rem;line-height:1}.room-chat-form .room-chat-emoji-button span{display:grid;place-items:center;width:100%;height:100%;padding-bottom:1px;line-height:1}.room-chat-form .room-chat-emoji-button:hover{border-color:transparent;background:transparent}.room-chat-emoji-menu{position:absolute;right:-43px;bottom:43px;z-index:2;display:grid;grid-template-columns:repeat(8,32px);max-width:calc(100vw - 28px);max-height:300px;overflow-y:auto;gap:6px;padding:8px;border:1px solid rgba(156,96,255,.28);border-radius:8px;background:#0c0816eb;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 16px 40px #00000057,0 0 22px #9c60ff24;scrollbar-width:thin;scrollbar-color:rgba(156,96,255,.58) rgba(246,241,232,.05)}.room-chat-emoji-menu[hidden]{display:none}.room-chat-emoji-menu button{width:32px;height:32px;border:1px solid rgba(246,241,232,.12);border-radius:7px;background:#f6f1e812;font-size:1rem}.room-chat-emoji-menu button:hover{border-color:#9c60ff8a;background:#9c60ff29}.room-chat-form button:hover{border-color:#9c60ffc2;background:#9c60ff42}.creative-panel{position:fixed;top:62px;left:12px;z-index:16;pointer-events:auto;width:min(300px,calc(100vw - 24px));max-height:min(480px,calc(100vh - 140px));overflow-y:auto;padding:14px;border:1px solid rgba(156,96,255,.4);border-radius:12px;background:#0a0716f0;color:#f6f1e8;font:13px/1.5 system-ui,sans-serif}.creative-panel[hidden]{display:none}.creative-panel h3{margin:10px 0 8px;font-size:.72rem;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:#b795ff}.creative-panel h3:first-child{margin-top:0}.creative-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.creative-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;border:1px solid rgba(246,241,232,.2);background:#f6f1e812;color:#f6f1e8;font:inherit;font-size:.8rem;font-weight:700;cursor:pointer}.creative-item:hover{border-color:#9c60ff;background:#9c60ff2e}.creative-icon{font-size:1.2rem}
