*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;background:#0a0a0f}canvas{display:block;background:#0a0a0f}#auth-overlay{position:fixed;inset:0;z-index:10;display:flex;align-items:flex-end;justify-content:flex-end;padding:0 16px 60px 0}#auth-overlay.hidden{display:none}#auth-panel{background:#0a0a0feb;border:1px solid #1a2a3a;border-radius:4px;padding:32px 28px 24px;width:300px;font-family:Courier New,monospace;color:#93d2ff}#auth-panel h2{font-size:14px;text-transform:uppercase;letter-spacing:2px;color:#93d2ff;margin-bottom:20px;text-align:center}#auth-panel input{display:block;width:100%;padding:8px 10px;margin-bottom:12px;background:#ffffff0d;border:1px solid #1a2a3a;border-radius:3px;color:#c5e4ff;font-family:inherit;font-size:13px;outline:none}#auth-panel input:focus{border-color:#93d2ff}#auth-panel button{display:block;width:100%;padding:9px;background:#1a2a3a;border:1px solid #93d2ff;border-radius:3px;color:#93d2ff;font-family:inherit;font-size:13px;cursor:pointer;text-transform:uppercase;letter-spacing:1px}#auth-panel button:hover{background:#2a3a4a}#auth-divider{display:flex;align-items:center;gap:10px;margin:16px 0;color:#3a5a7a;font-size:11px;text-transform:uppercase;letter-spacing:1px}#auth-divider:before,#auth-divider:after{content:"";flex:1;height:1px;background:#1a2a3a}#auth-google{display:block;width:100%;padding:9px;margin-bottom:4px;background:#ffffff0d;border:1px solid #1a2a3a;border-radius:3px;color:#c5e4ff;font-family:inherit;font-size:13px;cursor:pointer;letter-spacing:.5px}#auth-google:hover{border-color:#93d2ff;background:#ffffff14}#auth-toggle{margin-top:14px;text-align:center;font-size:12px;color:#5a7a9a}#auth-toggle a{color:#93d2ff;cursor:pointer;text-decoration:none}#auth-toggle a:hover{text-decoration:underline}#auth-error{color:#f66;font-size:11px;margin-bottom:10px;min-height:16px}#auth-btns{position:fixed;bottom:12px;right:16px;z-index:10;font-family:Courier New,monospace;font-size:28px;letter-spacing:2px;color:#93d2ff}#auth-btns span{cursor:pointer;transition:color .2s}#auth-btns span:hover{color:#b8e2ff}#auth-btns .sep{cursor:default;margin:0 4px;opacity:.5}#auth-btns .sep:hover{color:#93d2ff}#brand{position:fixed;bottom:12px;left:16px;z-index:10;font-family:Courier New,monospace;font-size:28px;letter-spacing:2px;color:#93d2ff}#brand .sep{margin:0 -2px;opacity:.5}#scene-btn{cursor:pointer;transition:color .2s}#scene-btn:hover{color:#b8e2ff}#char-overlay{position:fixed;inset:0;z-index:11;display:flex;align-items:center;justify-content:center}#char-overlay.hidden{display:none}#char-panel{pointer-events:auto;background:#0a0a0feb;border:1px solid #1a2a3a;border-radius:4px;padding:32px 28px 24px;font-family:Courier New,monospace;color:#93d2ff;text-align:center}#char-panel h2{font-size:14px;text-transform:uppercase;letter-spacing:2px;color:#93d2ff;margin-bottom:20px}#char-grid{display:flex;gap:12px;margin-bottom:20px}.char-option{cursor:pointer;border:2px solid #1a2a3a;border-radius:4px;padding:8px;background:#ffffff08;transition:border-color .2s}.char-option:hover{border-color:#93d2ff}.char-option.selected{border-color:#93d2ff;background:#93d2ff14}.char-option img{width:80px;height:80px;image-rendering:pixelated;display:block}.char-option .char-name{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:#93d2ff;margin-top:6px}#char-panel button{display:block;width:100%;padding:9px;background:#1a2a3a;border:1px solid #93d2ff;border-radius:3px;color:#93d2ff;font-family:inherit;font-size:13px;cursor:pointer;text-transform:uppercase;letter-spacing:1px}#char-panel button:hover{background:#2a3a4a}
