*{margin:0;padding:0}html,body{background:#1a1a1a;overflow:hidden}.webgl{outline:none;position:fixed;top:0;left:0}.overlay{z-index:10;cursor:pointer;background:#1a1a1a;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.overlay-title{letter-spacing:8px;text-transform:uppercase;color:#fff;opacity:0;font-family:Courier New,monospace;font-size:72px;font-weight:700}.overlay-credits{color:gray;letter-spacing:3px;text-transform:uppercase;opacity:0;visibility:hidden;font-family:Courier New,monospace;font-size:14px;position:absolute;bottom:40px;left:50%;transform:translate(-50%)}.overlay-credits a{color:#fff;border-bottom:1px solid #ffffff4d;text-decoration:none;transition:border-color .2s}.overlay-credits a:hover{border-bottom-color:#fff}.overlay-percent{color:#fff;letter-spacing:4px;opacity:.8;font-family:Courier New,monospace;font-size:70px;font-weight:700;position:absolute;bottom:40px;left:40px}.overlay-controls{opacity:0;visibility:hidden;flex-direction:column;align-items:center;gap:100px;margin-top:80px;display:flex}.overlay-message{color:#888;letter-spacing:4px;text-transform:uppercase;font-family:Courier New,monospace;font-size:18px;animation:2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.overlay-keys{align-items:flex-start;gap:40px;display:flex}.key-group{flex-direction:column;align-items:center;gap:6px;display:flex}.key-row{gap:4px;display:flex}.key{color:#ccc;letter-spacing:1px;border:2px solid #555;border-radius:6px;justify-content:center;align-items:center;min-width:40px;height:40px;padding:0 10px;font-family:Courier New,monospace;font-size:14px;font-weight:700;display:inline-flex}.key.wide{min-width:60px}.key-label{color:#666;letter-spacing:2px;text-transform:uppercase;margin-top:4px;font-family:Courier New,monospace;font-size:12px}.menu-button{cursor:pointer;z-index:20;background:#0000004d;border:1px solid #ffffff4d;border-radius:5px;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;padding:0;transition:background .2s,border-color .2s;display:flex;position:fixed;top:24px;right:24px}.menu-button:hover{background:#0009;border-color:#fff6}.menu-button span{background:#fff;border-radius:1px;width:22px;height:3px;transition:transform .3s,opacity .3s;display:block}.menu-button.open span:first-child{transform:translateY(8px)rotate(45deg)}.menu-button.open span:nth-child(2){opacity:0}.menu-button.open span:nth-child(3){transform:translateY(-8px)rotate(-45deg)}.menu-panel{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:19;opacity:0;pointer-events:none;background:#14141499;border:1px solid #ffffff26;border-radius:10px;width:320px;max-height:calc(100vh - 100px);padding:24px;transition:opacity .25s,transform .25s;position:fixed;top:80px;right:24px;overflow-y:auto;transform:translateY(-10px)}.menu-panel.open{opacity:1;pointer-events:auto;transform:translateY(0)}.menu-section{margin-bottom:24px}.menu-section:last-child{margin-bottom:0}.menu-heading{color:#fff;letter-spacing:3px;text-transform:uppercase;border-bottom:1px solid #ffffff26;margin-bottom:12px;padding-bottom:8px;font-family:Courier New,monospace;font-size:14px;font-weight:700}.menu-keys{flex-direction:column;gap:8px;display:flex}.menu-key-row{justify-content:space-between;align-items:center;font-family:Courier New,monospace;font-size:13px;display:flex}.menu-key-name{color:#fff;letter-spacing:1px;border:1px solid #ffffff4d;border-radius:4px;padding:4px 10px;font-weight:700}.menu-key-desc{color:#999;letter-spacing:2px;text-transform:uppercase;font-size:11px}.menu-text{color:#bbb;margin-bottom:10px;font-family:Courier New,monospace;font-size:12px;line-height:1.6}.menu-text:last-child{margin-bottom:0}.menu-text a{color:#fff;border-bottom:1px solid #fff6;text-decoration:none;transition:border-color .2s}.menu-text a:hover{border-bottom-color:#fff}
