*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:#1a1a2e;color:#fff}.header-ui{position:fixed;top:10px;left:10px;z-index:100;display:flex;gap:10px;align-items:center}.status-badge{background:#000000b3;padding:8px 12px;border-radius:8px;font-size:14px;display:flex;align-items:center;gap:6px}.coordinates{background:#000000b3;padding:8px 12px;border-radius:8px;font-size:12px;font-family:monospace}.chat-panel{position:fixed;bottom:10px;left:50%;transform:translate(-50%);z-index:100;display:flex;flex-direction:column;align-items:center;width:500px;max-width:90vw}.chat-history{width:100%;background:#000000d9;border-radius:12px 12px 0 0;border:1px solid rgba(255,255,255,.15);border-bottom:none;max-height:200px;display:flex;flex-direction:column}.chat-messages{overflow-y:auto;padding:8px 12px;display:flex;flex-direction:column;gap:6px}.chat-bubble{display:flex;flex-direction:column;padding:8px 12px;border-radius:8px;font-size:14px;line-height:1.5;animation:fadeIn .2s ease;max-width:90%}.chat-bubble.user{background:#4a9eff33;align-self:flex-end}.chat-bubble.ai{background:#ffffff1a;align-self:flex-start}.chat-role-header{font-size:11px;font-weight:700;color:#fff9;margin-bottom:4px;letter-spacing:.5px}.chat-bubble.user .chat-role-header{color:#4a9effcc}.chat-bubble.ai .chat-role-header{color:#64dc8ccc}.chat-text{color:#eee;word-break:break-word}.chat-text.typing{color:#ffffff80;animation:blink 1s ease-in-out infinite}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.chat-input-row{display:flex;gap:10px;width:100%}.chat-input{background:#000c;border:1px solid rgba(255,255,255,.3);border-radius:8px;padding:12px 16px;color:#fff;font-size:16px;width:400px;outline:none}.chat-input:focus{border-color:#4a9eff}.send-button{background:#4a9eff;border:none;border-radius:8px;padding:12px 20px;color:#fff;font-size:16px;cursor:pointer;transition:background .2s}.send-button:hover{background:#3a8eef}.send-button:disabled{background:#666;cursor:not-allowed}.status-badge.clickable{cursor:pointer;transition:background .2s;-webkit-user-select:none;user-select:none}.status-badge.clickable:hover{background:#4a9eff66}.status-badge.audio-btn{animation:pulse-audio 2s ease-in-out infinite}@keyframes pulse-audio{0%,to{background:#000000b3}50%{background:#4a9eff4d}}.status-badge.audio-on{background:#28a74566}.status-badge.gamepad-on{background:#a064ff66}.controls-guide{position:fixed;bottom:70px;right:12px;z-index:100;background:#00000080;padding:6px 12px;border-radius:6px;font-size:12px;color:#fff9;pointer-events:none}.preset-chips{width:100%;background:#000000bf;border-radius:12px;padding:10px 14px 12px;margin-bottom:8px;border:1px solid rgba(255,255,255,.1)}.preset-label{font-size:12px;color:#ffffff80;margin-bottom:8px;text-align:center;letter-spacing:.5px}.preset-buttons{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.preset-chip{background:#4a9eff1f;border:1px solid rgba(74,158,255,.35);border-radius:20px;padding:8px 18px;color:#a8d0ff;font-size:14px;cursor:pointer;transition:all .2s ease;animation:chipFadeIn .35s ease forwards;opacity:0;white-space:nowrap}.preset-chip:hover{background:#4a9eff4d;border-color:#4a9effb3;color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #4a9eff33}.preset-chip:active{transform:translateY(0)}@keyframes chipFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-header{padding:8px 14px;font-size:13px;color:#ffffffb3;border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0;display:flex;justify-content:space-between;align-items:center}.pipeline-timing{font-size:11px;color:#ffc832d9;font-family:monospace;animation:timingPulse .4s ease}@keyframes timingPulse{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.loading-screen{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#1a1a2e;color:#fff;gap:16px}.loading-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.2);border-top-color:#4a9eff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.lobby-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);overflow-y:auto;padding:20px}.lobby-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:32px;width:100%;max-width:640px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.lobby-header{text-align:center;margin-bottom:24px}.lobby-header h1{font-size:24px;font-weight:700;margin-bottom:8px}.lobby-subtitle{font-size:14px;color:#ffffff80}.lobby-error{background:#ff505026;border:1px solid rgba(255,80,80,.4);border-radius:8px;padding:10px 14px;margin-bottom:16px;font-size:14px;color:#ff8080}.lobby-section{margin-bottom:20px}.lobby-label{display:block;font-size:13px;font-weight:600;color:#fff9;margin-bottom:8px;letter-spacing:.3px}.lobby-name-row{display:flex;gap:8px}.lobby-name-input{flex:1;background:#0006;border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:10px 14px;color:#fff;font-size:15px;outline:none;transition:border-color .2s}.lobby-name-input:focus{border-color:#4a9eff}.lobby-name-input:disabled{opacity:.6}.lobby-name-btn{background:#4a9eff;border:none;border-radius:8px;padding:10px 20px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s;white-space:nowrap}.lobby-name-btn:hover{background:#3a8eef}.lobby-name-btn:disabled{background:#555;cursor:not-allowed}.lobby-name-edit{background:#ffffff26}.lobby-name-edit:hover{background:#ffffff40}.lobby-avatars{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.lobby-avatar-card{background:#0000004d;border:2px solid rgba(255,255,255,.1);border-radius:10px;padding:14px 8px;text-align:center;cursor:pointer;transition:all .2s}.lobby-avatar-card:hover:not(.locked){background:#4a9eff1a;border-color:#4a9eff66}.lobby-avatar-card.selected{border-width:2px;background:#4a9eff26}.lobby-avatar-card.locked{opacity:.5;cursor:not-allowed}.lobby-avatar-icon{width:48px;height:48px;border-radius:50%;margin:0 auto 8px;display:flex;align-items:center;justify-content:center;font-size:22px}.lobby-avatar-thumb-wrap{position:relative;width:80px;height:80px;margin:0 auto 8px}.lobby-avatar-thumb{width:80px;height:80px;border-radius:10px;object-fit:cover}.lobby-avatar-lock-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000008c;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:28px}.lobby-avatar-name{font-size:13px;font-weight:500;margin-bottom:4px}.lobby-avatar-locker{font-size:11px;color:#fff6}.lobby-avatar-check{font-size:11px;color:#4ade80;font-weight:600}.lobby-players{background:#0000004d;border-radius:8px;padding:8px 12px}.lobby-player-row{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:14px}.lobby-player-row+.lobby-player-row{border-top:1px solid rgba(255,255,255,.06)}.lobby-player-name{font-weight:500}.lobby-player-avatar{font-size:12px;opacity:.6}.lobby-player-me{font-size:11px;color:#4a9eff;margin-left:auto}.lobby-player-ready{font-size:11px;color:#4ade80;margin-left:4px}.lobby-enter-btn{display:block;width:100%;background:linear-gradient(135deg,#4a9eff,#3a7bd5);border:none;border-radius:10px;padding:14px;color:#fff;font-size:18px;font-weight:700;cursor:pointer;transition:all .2s;margin-top:8px}.lobby-enter-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #4a9eff59}.lobby-enter-btn:disabled{background:#444;cursor:not-allowed;opacity:.6}.lobby-enter-hint{text-align:center;font-size:12px;color:#ffffff59;margin-top:8px}.gesture-panel{position:fixed;bottom:20px;right:20px;z-index:90;display:flex;gap:8px;background:#0000008c;padding:8px 12px;border-radius:12px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.gesture-btn{width:44px;height:44px;border:2px solid rgba(255,255,255,.25);border-radius:10px;background:#ffffff14;color:#fff;font-size:18px;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center;position:relative}.gesture-btn:hover:not(:disabled){background:#ffffff2e;border-color:#ffffff80;transform:translateY(-2px)}.gesture-btn.active{background:#4a9eff59;border-color:#4a9eff;box-shadow:0 0 12px #4a9eff66}.gesture-btn:disabled{opacity:.4;cursor:not-allowed}.gesture-btn .key-hint{position:absolute;top:-6px;right:-4px;font-size:10px;background:#4a9effb3;color:#fff;border-radius:4px;padding:0 4px;line-height:16px}.gesture-toast{position:fixed;bottom:80px;right:20px;z-index:95;background:#4a9effd9;color:#fff;padding:8px 18px;border-radius:8px;font-size:14px;font-weight:600;pointer-events:none;animation:gestureToastFade 1.5s ease forwards;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}@keyframes gestureToastFade{0%{opacity:0;transform:translateY(10px)}15%{opacity:1;transform:translateY(0)}70%{opacity:1}to{opacity:0;transform:translateY(-5px)}}.a11y-badge{position:fixed;top:10px;right:20px;z-index:100;background:#0009;padding:6px 14px;border-radius:8px;font-size:13px;color:#fff9;cursor:pointer;transition:all .2s ease;border:1px solid transparent;-webkit-user-select:none;user-select:none}.a11y-badge:hover{background:#000c;color:#fff}.a11y-badge.active{background:#008cff4d;color:#fff;border-color:#008cff99;box-shadow:0 0 8px #008cff4d}.a11y-events{position:fixed;top:50px;right:20px;z-index:95;display:flex;flex-direction:column;gap:4px;max-width:280px}.a11y-event-item{background:#000000bf;color:#fff;padding:6px 14px;border-radius:6px;font-size:13px;line-height:1.4;border-left:3px solid rgba(0,140,255,.7);animation:a11yEventSlide .3s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}@keyframes a11yEventSlide{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.voice-chat-panel{position:fixed;bottom:20px;right:20px;z-index:100;background:#000000bf;padding:10px 14px;border-radius:10px;color:#fff;font-size:13px;display:flex;flex-direction:column;gap:6px;min-width:140px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.1)}.voice-status{font-size:12px;opacity:.8}.voice-mic-btn{padding:5px 14px;border-radius:6px;border:none;cursor:pointer;font-size:13px;color:#fff;transition:background .2s}.voice-mic-btn.mic-off{background:#22c55e}.voice-mic-btn.mic-off:hover{background:#16a34a}.voice-mic-btn.mic-on{background:#ef4444}.voice-mic-btn.mic-on:hover{background:#dc2626}.voice-self-meter{height:4px;background:#ffffff26;border-radius:2px;overflow:hidden}.voice-self-meter-bar{height:100%;background:#22c55e;border-radius:2px;transition:width .05s linear}.voice-participants{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.voice-participants li{display:flex;align-items:center;gap:4px;font-size:12px;padding:2px 4px;border-radius:3px;opacity:.7}.voice-participants li.speaking{opacity:1;background:#22c55e26}.voice-participant-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100px}.voice-speaking-indicator{font-size:10px}.voice-error{font-size:11px;color:#fca5a5;padding:2px 0}
