*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#0a0a0f;color:#e0e0e0;overflow:hidden;width:100vw;height:100vh}#app{width:100%;height:100%;position:relative}#render-canvas{width:100%;height:100%;display:block}#loading-screen{position:fixed;inset:0;z-index:1000;background:#0a0a0f;display:flex;align-items:center;justify-content:center;transition:opacity .5s ease}#loading-screen.hidden{opacity:0;pointer-events:none}.loader-content{text-align:center;max-width:400px;padding:24px}.loader-content h2{font-size:1.8em;margin-bottom:12px;color:#818cf8}.progress-bar{width:100%;height:6px;background:#1e293b;border-radius:3px;margin:16px 0;overflow:hidden}.progress-fill{width:0%;height:100%;background:linear-gradient(90deg,#818cf8,#6366f1);border-radius:3px;transition:width .3s ease}.loading-status{font-size:.88em;color:#94a3b8}#hud{position:absolute;inset:0;pointer-events:none;padding:16px;display:flex;flex-direction:column;justify-content:space-between}#hud>*{pointer-events:auto}.hud-top-left{position:absolute;top:16px;left:16px}.hud-top-left h3{font-size:1.1em;font-weight:600;color:#e2e8f0;text-shadow:0 1px 4px rgba(0,0,0,.8)}.hud-back{display:inline-block;color:#818cf8;text-decoration:none;font-size:.88em;margin-bottom:4px}.hud-back:hover{color:#a5b4fc}.hud-top-right{position:absolute;top:16px;right:16px;text-align:right}.fps-counter,.sim-time{font-family:ui-monospace,monospace;font-size:.85em;color:#94a3b8;text-shadow:0 1px 4px rgba(0,0,0,.8)}.policy-status{position:absolute;top:16px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;background:#0f1119d9;backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:999px;padding:7px 16px;font-size:.85em;color:#cbd5e1;z-index:5;transition:border-color .2s,color .2s}.policy-dot{width:9px;height:9px;border-radius:50%;background:#22c55e;box-shadow:0 0 8px #22c55ecc;transition:background .2s,box-shadow .2s}.policy-status.tracking{border-color:#818cf8;color:#c7d2fe}.policy-status.tracking .policy-dot{background:#818cf8;box-shadow:0 0 10px #818cf8e6}.hud-bottom.hidden{display:none}.cmd-display{display:flex;align-items:center;gap:12px;font-size:.9em;color:#94a3b8}.cmd-label{font-weight:500;color:#cbd5e1}.cmd-val{font-family:ui-monospace,monospace;background:#1e293b;padding:4px 10px;border-radius:6px;border:1px solid #334155}.cmd-val b{color:#818cf8;font-weight:600}.hud-bottom{position:absolute;bottom:16px;left:16px;right:16px;display:flex;flex-direction:column;align-items:stretch;gap:12px;background:#0f1119d9;backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:12px 18px;max-height:46vh;overflow-y:auto}.motion-buttons{display:flex;flex-wrap:wrap;gap:14px}.motion-group{display:flex;flex-direction:column;gap:5px}.motion-group-label{font-size:.7em;text-transform:uppercase;letter-spacing:.06em;color:#64748b;font-weight:600}.motion-group-btns{display:flex;flex-wrap:wrap;gap:6px}.motion-btn{position:relative;overflow:hidden;background:#1e293b;color:#e2e8f0;border:1px solid #334155;border-radius:8px;padding:7px 13px;font-size:.84em;cursor:pointer;transition:all .15s;white-space:nowrap}.motion-btn:hover:not(:disabled){border-color:#818cf8;background:#2a3548;transform:translateY(-1px)}.motion-btn.active{border-color:#818cf8;color:#fff;box-shadow:0 0 12px #4f46e599}.motion-btn:disabled{opacity:.45;cursor:not-allowed}.motion-btn-fill{position:absolute;left:0;top:0;bottom:0;width:0%;background:#4f46e5;z-index:0;transition:width .08s linear;pointer-events:none}.motion-btn-label{position:relative;z-index:1}.controls-row{display:flex;gap:6px}.ctrl-btn-sm{width:auto;height:auto;padding:5px 12px;font-size:.82em}.ctrl-btn{width:36px;height:36px;border:1px solid #334155;border-radius:8px;background:#1e293b;color:#e2e8f0;font-size:1em;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.ctrl-btn:hover{border-color:#818cf8;background:#2a3548}.ctrl-btn.active{border-color:#818cf8;background:#312e81}.controls-tips{display:flex;gap:12px;font-size:.78em;color:#64748b}.controls-tips kbd{background:#334155;border:1px solid #475569;border-radius:3px;padding:1px 5px;font-family:ui-monospace,monospace;font-size:.9em}.terrain-panel{margin-top:12px;width:220px;background:#0f1119d9;backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:10px 12px;text-align:left}.terrain-panel-title{font-size:.82em;font-weight:600;color:#cbd5e1;margin-bottom:8px}.terrain-row{display:flex;align-items:center;gap:8px;font-size:.78em;color:#94a3b8;margin-bottom:8px}.terrain-row>span{width:56px;flex-shrink:0}.terrain-row input[type=range]{flex:1;accent-color:#818cf8}.terrain-row b{color:#818cf8;font-family:ui-monospace,monospace;min-width:30px;text-align:right}.terrain-seed-input{flex:1;min-width:0;background:#1e293b;color:#e2e8f0;border:1px solid #334155;border-radius:4px;padding:3px 6px;font-size:.95em;font-family:ui-monospace,monospace}.terrain-seed-input:focus{outline:none;border-color:#818cf8}.terrain-gen-btn{width:100%;margin-top:2px;background:#4f46e5;color:#fff;border:none;border-radius:8px;padding:8px 12px;font-size:.85em;font-weight:600;cursor:pointer;transition:background .15s,transform .1s}.terrain-gen-btn:hover{background:#4338ca;transform:translateY(-1px)}.terrain-gen-btn:active{transform:translateY(0)}.terrain-overlay{position:absolute;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#080a128c;backdrop-filter:blur(2px)}.terrain-overlay.hidden{display:none}.terrain-overlay-box{background:#0f1119eb;border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:26px 34px;text-align:center;color:#e2e8f0}.terrain-overlay-box p{margin:14px 0 0;font-size:.95em}.spinner{width:38px;height:38px;margin:0 auto;border:3px solid rgba(129,140,248,.25);border-top-color:#818cf8;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:768px){.hud-bottom{flex-direction:column;align-items:flex-start}.controls-tips{display:none}.terrain-panel{width:180px}}
