*{margin:0;padding:0;box-sizing:border-box}body{overflow:hidden;background:#000;font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:#eee;-webkit-user-select:none;user-select:none}#app{width:100vw;height:100vh;position:relative}#loading{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#000;z-index:1000;transition:opacity .5s ease}#loading.hidden{opacity:0;pointer-events:none}.loader{width:48px;height:48px;border:3px solid rgba(255,200,50,.2);border-top-color:#fc3;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{to{transform:rotate(360deg)}}#loading p{color:#999;font-size:14px}#info-panel{position:fixed;top:20px;right:20px;width:280px;background:#0a0a1ed9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:16px 20px;z-index:100;display:none;box-shadow:0 4px 24px #0009}#info-panel.visible{display:block}#info-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.1)}#info-title{font-size:18px;font-weight:600;color:#fff;margin:0}#info-close{background:none;border:none;color:#888;font-size:22px;cursor:pointer;padding:0 4px;line-height:1;transition:color .2s}#info-close:hover{color:#fff}#info-content{font-size:13px;line-height:1.8}#info-content .info-row{display:flex;justify-content:space-between;padding:2px 0}#info-content .info-label{color:#999}#info-content .info-value{color:#ddd;text-align:right}#info-content .info-divider{border:none;border-top:1px solid rgba(255,255,255,.06);margin:6px 0}#controls{position:fixed;bottom:30px;left:50%;transform:translate(-50%);z-index:100;display:flex;flex-direction:column;align-items:center;gap:8px}#speed-controls{display:flex;align-items:center;gap:8px;background:#0a0a1ebf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);border-radius:24px;padding:8px 16px}#speed-controls button{background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:#ddd;padding:6px 14px;border-radius:16px;cursor:pointer;font-size:13px;font-family:inherit;transition:all .2s}#speed-controls button:hover{background:#ffffff2e;color:#fff}#speed-controls button:active{transform:scale(.95)}#speed-display{min-width:48px;text-align:center;font-size:14px;font-weight:600;color:#fc3}#status-bar{font-size:12px;color:#666}canvas{display:block}.clickable{cursor:pointer}
