*{box-sizing:border-box;margin:0;padding:0}body{color:#eee;background:#1a1a2e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;overflow:hidden}#app{width:100vw;height:100vh}canvas{background:#0f0f1e;display:block}.ui-overlay{pointer-events:none;width:100%;height:100%;position:fixed;top:0;left:0}.ui-overlay>*{pointer-events:auto}.login-screen{background:#1e1e32f2;border-radius:12px;min-width:300px;padding:2rem;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 8px 32px #0006}.login-screen h1{text-align:center;color:#fff;margin-bottom:1.5rem}.form-group{margin-bottom:1rem}.form-group label{color:#ccc;margin-bottom:.5rem;font-size:.9rem;display:block}.form-group input{color:#fff;background:#222;border:2px solid #444;border-radius:6px;width:100%;padding:.75rem;font-size:1rem}.form-group input:focus{border-color:#667eea;outline:none}.color-picker{flex-wrap:wrap;gap:.5rem;display:flex}.color-option{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:3px solid #0000;border-radius:50%;outline:none;width:40px;height:40px;margin:0;padding:0;transition:transform .2s,border-color .2s}.color-option:hover{transform:scale(1.1)}.color-option.selected{border-color:#fff;transform:scale(1.15)}.shape-picker{flex-wrap:wrap;gap:.5rem;display:flex}.shape-option{color:#fff;cursor:pointer;text-align:center;background:#222;border:2px solid #444;border-radius:6px;flex:1;min-width:80px;padding:.75rem;font-size:.9rem;transition:all .2s}.shape-option:hover{background:#2a2a3a;border-color:#667eea;transform:translateY(-2px)}.shape-option.selected{background:#667eea33;border-color:#667eea;box-shadow:0 0 12px #667eea66}.btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:6px;width:100%;padding:.75rem;font-size:1rem;font-weight:700;transition:transform .2s,box-shadow .2s}.btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.error-message{color:#ff6b6b;text-align:center;margin-top:.5rem;font-size:.85rem}.start-buttons{flex-direction:column;gap:1rem;margin-top:1rem;display:flex}.primary-button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:8px;width:100%;padding:1rem;font-size:1rem;font-weight:600;transition:all .2s;box-shadow:0 4px 12px #667eea4d}.primary-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea80}.primary-button:active{transform:translateY(0)}.secondary-button{color:#667eea;cursor:pointer;background:#667eea1a;border:2px solid #667eea;border-radius:8px;width:100%;padding:1rem;font-size:1rem;font-weight:600;transition:all .2s}.secondary-button:hover{color:#764ba2;background:#667eea33;border-color:#764ba2;transform:translateY(-2px)}.secondary-button:active{transform:translateY(0)}.tertiary-button{color:#aaa;cursor:pointer;background:#ffffff0d;border:2px solid #444;border-radius:8px;width:100%;padding:1rem;font-size:1rem;font-weight:600;transition:all .2s}.tertiary-button:hover{color:#ddd;background:#ffffff1a;border-color:#666;transform:translateY(-2px)}.tertiary-button:active{transform:translateY(0)}.form-actions{flex-direction:column;gap:.75rem;margin-top:1.5rem;display:flex}.color-grid{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.shape-grid{flex-wrap:wrap;gap:.75rem;display:flex}.connection-status{border-radius:20px;padding:.5rem 1rem;font-size:.85rem;font-weight:500;position:fixed;top:1rem;right:1rem}.connection-status.connected{color:#2ed573;background:#2ed57333;border:1px solid #2ed573}.connection-status.disconnected{color:#ff6b6b;background:#ff6b6b33;border:1px solid #ff6b6b}.connection-status.connecting{color:#ffa801;background:#ffa80133;border:1px solid #ffa801}.chat-input{z-index:1500;width:400px;max-width:90%;position:fixed;bottom:2rem;left:50%;transform:translate(-50%)}.chat-input input{color:#fff;background:#1e1e32f2;border:2px solid #444;border-radius:25px;width:100%;padding:.75rem 1rem;font-size:.95rem}.chat-input input:focus{border-color:#667eea;outline:none}.instructions{color:#ccc;background:#1e1e32cc;border-radius:8px;padding:1rem;font-size:.85rem;position:fixed;bottom:1rem;left:1rem}.instructions p{margin:.25rem 0}.coordinate-jump{background:#1e1e32f2;border-radius:12px;min-width:350px;padding:1.5rem;position:fixed;bottom:2rem;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #0006}.coordinate-jump h3{color:#fff;text-align:center;margin:0 0 1rem;font-size:1.1rem}.coordinate-inputs{gap:1rem;margin-bottom:1rem;display:flex}.coordinate-input-group{flex-direction:column;flex:1;gap:.5rem;display:flex}.coordinate-input-group label{color:#ccc;font-size:.9rem;font-weight:500}.coordinate-input-group input{color:#fff;background:#222;border:2px solid #444;border-radius:6px;padding:.75rem;font-family:monospace;font-size:1rem}.coordinate-input-group input:focus{border-color:#667eea;outline:none}.coordinate-buttons{gap:.75rem;display:flex}.coordinate-buttons .btn{flex:1}.btn-secondary{background:#646478cc!important}.btn-secondary:hover{background:#78788ce6!important}.coordinate-hint{text-align:center;color:#999;margin:.75rem 0 0;font-size:.85rem}@media (width<=768px){.login-screen{width:90%;min-width:auto;max-width:400px;padding:1.5rem}.login-screen h1{margin-bottom:1rem;font-size:1.5rem}.form-group input{font-size:16px}.color-option{width:48px;height:48px}.btn{padding:1rem;font-size:1.1rem}.connection-status{padding:.4rem .8rem;font-size:.75rem;top:.5rem;right:.5rem}.chat-input{width:90%;bottom:1rem}.chat-input input{padding:.85rem 1rem;font-size:16px}.instructions{max-width:200px;padding:.75rem;font-size:.75rem;bottom:.5rem;left:.5rem}.instructions p{margin:.2rem 0}}@media (width<=480px){.login-screen{width:95%;padding:1rem}.login-screen h1{font-size:1.3rem}.form-group label{font-size:.85rem}.color-picker{justify-content:center;gap:.75rem}.color-option{width:52px;height:52px}.connection-status{padding:.3rem .6rem;font-size:.7rem}.instructions{display:none}.chat-input{bottom:.5rem}}@media (height<=500px) and (orientation:landscape){.login-screen{max-height:90vh;padding:1rem;overflow-y:auto}.login-screen h1{margin-bottom:.75rem;font-size:1.2rem}.form-group{margin-bottom:.75rem}.instructions{display:none}.chat-input{bottom:.5rem}}@media (hover:none) and (pointer:coarse){body{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.form-group input,.chat-input input{-webkit-user-select:text;user-select:text}}.virtual-joystick{z-index:1000;width:120px;height:120px;display:none;position:fixed;bottom:2rem;left:2rem}.joystick-base{touch-action:none;background:#ffffff1a;border:2px solid #ffffff4d;border-radius:50%;width:100%;height:100%;position:relative}.joystick-knob{background:#667eeacc;border:2px solid #ffffff80;border-radius:50%;width:50px;height:50px;transition:background .1s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px 8px #0000004d}.joystick-knob.active{background:#667eea;box-shadow:0 4px 12px #667eea99}@media (hover:none) and (pointer:coarse){.virtual-joystick{display:block}}@media (width<=480px){.virtual-joystick{width:100px;height:100px;bottom:1rem;left:1rem}.joystick-knob{width:40px;height:40px}}@media (height<=400px) and (orientation:landscape){.virtual-joystick{width:80px;height:80px;bottom:.5rem;left:.5rem}.joystick-knob{width:32px;height:32px}}.mobile-controls{display:none}@media (hover:none) and (pointer:coarse){.mobile-controls{display:block!important}}@media (width<=768px){.mobile-controls{display:block!important}}body.is-mobile-device .mobile-controls{display:block!important}@media (hover:none) and (pointer:coarse),(width<=768px){.mobile-controls button{transition:transform .1s,background .1s}.mobile-controls button:active,.mobile-emote-picker button:active{transform:scale(.9);background:#667eea!important}@media (width<=480px){.mobile-controls button{width:44px;height:44px;font-size:18px}.mobile-emote-picker{gap:6px!important;padding:8px!important}.mobile-emote-picker button{width:44px!important;height:44px!important;font-size:20px!important}}@media (height<=500px){.mobile-emote-picker{max-height:60vh;overflow-y:auto;bottom:200px!important}}}
/*# sourceMappingURL=frontend.51b6df85.css.map */
