*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;background:#0b1220;font-family:Segoe UI,system-ui,-apple-system,sans-serif;user-select:none;-webkit-user-select:none}canvas{display:block}#hud{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;color:#eef4fb;font-weight:600}#panel-top{position:absolute;top:16px;left:16px;display:flex;align-items:center;gap:8px;padding:10px 16px;background:#0a101c8c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.12);border-radius:12px;font-size:15px;letter-spacing:.3px}#panel-bottom{position:absolute;bottom:16px;left:16px;display:flex;align-items:center;gap:8px;padding:10px 16px;background:#0a101c8c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.12);border-radius:12px;font-size:14px;letter-spacing:.3px}.sep{opacity:.4}#speed-panel{position:absolute;right:20px;bottom:20px;text-align:right;padding:14px 22px;background:#0a101c8c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.12);border-radius:14px;min-width:168px}#speed-value{font-size:52px;line-height:1;font-weight:800;font-variant-numeric:tabular-nums;color:#ffd76a}#speed-unit{margin-top:6px;font-size:14px;opacity:.7;letter-spacing:1px}#controls-hint{position:absolute;bottom:16px;left:50%;transform:translate(-50%);font-size:13px;opacity:.75;padding:8px 16px;background:#0a101c66;border-radius:999px;white-space:nowrap}#center-message{position:absolute;top:38%;left:50%;transform:translate(-50%,-50%);font-size:72px;font-weight:900;letter-spacing:6px;color:#ffd76a;text-shadow:0 4px 24px rgba(0,0,0,.6);opacity:0;transition:opacity .18s ease}#center-message.show{opacity:1}#modal{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#070a12a6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:opacity .35s ease;z-index:10}#modal.hidden{opacity:0;pointer-events:none}#modal-card{text-align:center;padding:40px 56px;background:#0c1220d9;border:1px solid rgba(255,255,255,.14);border-radius:20px;box-shadow:0 20px 80px #00000080}#modal-card h1{font-size:34px;margin-bottom:12px;color:#ffd76a}#modal-card p{font-size:16px;color:#c8d6ea;line-height:1.6}#modal-hint{margin-top:14px;font-size:14px;opacity:.8;animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.45}50%{opacity:.95}}
