:root{--bg:#07060d;--panel:#12101ec7;--line:#ffffff1a;--text:#ece9ff;--muted:#9a94b8;--accent:#ff4f8b;--accent-2:#4fd1ff;--self:#ffd84f;color:var(--text);background:var(--bg);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}:root{--gap:12px;--top:calc(var(--gap) + env(safe-area-inset-top));--right:calc(var(--gap) + env(safe-area-inset-right));--bottom:calc(var(--gap) + env(safe-area-inset-bottom));--left:calc(var(--gap) + env(safe-area-inset-left));--stick:132px}#scene{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}.panel{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:14px;position:fixed}.muted{color:var(--muted)}.error{color:var(--accent);min-height:1.2em;margin:0}[hidden]{display:none!important}button{font:inherit;color:#0b0a12;background:linear-gradient(90deg, var(--accent), var(--accent-2));cursor:pointer;touch-action:manipulation;border:0;border-radius:999px;padding:.55rem 1.1rem;font-weight:600}button:disabled{opacity:.5;cursor:progress}input{font:inherit;color:var(--text);border:1px solid var(--line);background:#00000059;border-radius:8px;width:100%;padding:.5rem .65rem}input:focus{outline:2px solid var(--accent-2);outline-offset:1px}#hud{top:var(--top);left:var(--left);right:var(--right);align-items:center;gap:1rem;padding:.5rem .9rem;font-size:.9rem;display:flex}#hud-region{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-weight:600;overflow:hidden}#hud-stats{color:var(--muted);font-variant-numeric:tabular-nums;margin-right:auto}#music-button{white-space:nowrap;flex-shrink:0;padding:.35rem .9rem}#volume{flex-shrink:0;align-items:center;gap:.4rem;display:flex}#volume[hidden]{display:none}#volume-slider{width:7rem;accent-color:var(--accent,#ff4f8b)}#login-event{margin:0;font-size:1.1rem;font-weight:600}#login-event.unknown{color:var(--muted,#aab);font-size:.9rem;font-weight:400}#login{gap:.75rem;width:min(360px,100vw - 24px);padding:1.5rem;display:grid;top:50%;left:50%;translate:-50% -50%}#login h1{letter-spacing:.02em;margin:0;font-size:1.4rem}#login p{margin:0}#login label{color:var(--muted);gap:.3rem;font-size:.85rem;display:grid}#chat{left:var(--left);bottom:var(--bottom);flex-direction:column;gap:.4rem;width:min(420px,100vw - 24px);max-height:45vh;padding:.6rem;display:flex}#chat-log{margin:0;padding:0 .2rem;font-size:.9rem;line-height:1.35;list-style:none;overflow-y:auto}#chat-log li{overflow-wrap:anywhere}#chat-log{padding-right:2rem}#chat-log .from{color:var(--accent-2);font-weight:600}#chat-log .self .from{color:var(--self)}#chat-log .system{color:var(--muted);font-style:italic}#chat-log .object .from{color:var(--muted)}.hint{margin:0;font-size:.75rem}.hint-touch,body.touch .hint-keys{display:none}body.touch .hint-touch{display:block}#chat-toggle{color:var(--text);background:#ffffff1f;padding:.1rem .55rem;font-size:.8rem;position:absolute;top:.35rem;right:.35rem}#chat.collapsed #chat-log,#chat.collapsed .hint{display:none}#chat.collapsed #chat-toggle{align-self:flex-end;position:static}#stick{right:var(--right);bottom:var(--bottom);width:var(--stick);height:var(--stick);background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:50%;display:none;position:fixed}body.touch #stick:not([hidden]){display:block}#stick-knob{background:linear-gradient(135deg, var(--accent), var(--accent-2));opacity:.85;pointer-events:none;border-radius:50%;width:56px;height:56px;margin:-28px 0 0 -28px;position:absolute;top:50%;left:50%}body.touch #chat{width:min(420px, calc(100vw - var(--stick) - var(--left) - var(--right) - var(--gap)));max-height:32vh}#dance-picker{align-items:center;gap:.4rem;font-size:.85rem;display:flex}#dance-select{flex:1}#banner{align-items:center;gap:.8rem;padding:.7rem 1rem;display:flex;top:64px;left:50%;translate:-50%}@media (max-height:500px){.hint{display:none!important}body.touch #chat{max-height:45vh}}@media (max-width:600px){#hud{gap:.5rem;font-size:.8rem}#chat{max-height:35vh}body:not(.stats) #hud-stats{display:none}#music-button,#volume{margin-left:auto}#volume-slider{width:4.5rem}#music-button{padding:.3rem .7rem;font-size:.8rem}}
