:root{--bg: #16181d;--panel: rgba(28, 31, 38, .86);--panel-brd: rgba(255, 255, 255, .08);--txt: #e7e9ee;--muted: #9aa0ac;--accent: #6ea8fe;--danger: #e0685f;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;width:100%;overflow:hidden;background:var(--bg);color:var(--txt)}.scene{position:fixed;inset:0;width:100%;height:100%;display:block;outline:none;touch-action:none}.ui{position:fixed;inset:0;pointer-events:none;user-select:none}.brand{position:absolute;top:16px;left:16px;font-weight:700;font-size:16px;text-shadow:0 1px 6px rgba(0,0,0,.6)}.brand span{font-weight:400;color:var(--muted);margin-left:6px;font-size:12px}.pill{position:absolute;top:14px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--panel);border:1px solid var(--panel-brd);border-radius:999px;backdrop-filter:blur(10px);box-shadow:0 8px 30px #00000059}.pill-label{font-size:12px;color:var(--muted)}.pill-value{font-size:18px;font-weight:700;color:var(--accent);min-width:62px;text-align:center}.panel{position:absolute;top:52px;left:16px;width:250px;padding:14px;background:var(--panel);border:1px solid var(--panel-brd);border-radius:14px;backdrop-filter:blur(10px);box-shadow:0 12px 40px #0006;pointer-events:auto}.status{font-size:13px;line-height:1.5;color:var(--txt);margin-bottom:12px}.status b{color:var(--accent)}.row{display:flex;gap:6px;margin-bottom:6px}.btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 10px;font-size:13px;color:var(--txt);background:#ffffff0d;border:1px solid var(--panel-brd);border-radius:9px;cursor:pointer;transition:background .12s,border-color .12s,transform .05s}.btn:hover{background:#ffffff1a}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:default}.btn.active{background:#6ea8fe38;border-color:var(--accent)}.btn.sq{flex:0 0 auto;width:30px;padding:6px 0;font-size:17px;line-height:1}.btn.danger:hover{border-color:var(--danger);background:#e0685f29}kbd{font-family:ui-monospace,monospace;font-size:10px;color:var(--muted);background:#ffffff12;border:1px solid var(--panel-brd);border-radius:4px;padding:1px 4px}.counter{margin-top:8px;font-size:12px;color:var(--muted)}.fab{position:absolute;bottom:20px;left:50%;transform:translate(-50%);display:inline-flex;align-items:center;gap:8px;padding:12px 20px;font-size:14px;font-weight:600;color:#fff;background:linear-gradient(180deg,#6ea8fe,#4f86e6);border:none;border-radius:999px;cursor:pointer;pointer-events:auto;box-shadow:0 10px 30px #4f86e673}.fab:hover{filter:brightness(1.08)}.fab kbd{color:#ffffffd9;background:#ffffff2e;border-color:transparent}.help{position:absolute;bottom:18px;right:16px;max-width:340px;text-align:right;font-size:12px;line-height:1.6;color:var(--muted);text-shadow:0 1px 4px rgba(0,0,0,.6)}.help b{color:var(--txt)}.selbox{position:fixed;border:1px solid var(--accent);background:#6ea8fe26;pointer-events:none;z-index:5}.hud{position:fixed;inset:0;pointer-events:none}.crosshair{position:absolute;top:50%;left:50%;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#ffffffd9;box-shadow:0 0 0 2px #0006}.hud-hint{position:absolute;bottom:22px;left:50%;transform:translate(-50%);font-size:13px;color:var(--muted);background:#00000059;padding:6px 14px;border-radius:999px}.hud-hint b{color:var(--txt)}.exp-link{position:absolute;top:16px;left:210px;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:600;color:var(--txt);text-decoration:none;background:var(--panel);border:1px solid var(--panel-brd);border-radius:999px;backdrop-filter:blur(10px);pointer-events:auto}.exp-link:hover{border-color:var(--accent);background:#6ea8fe29}.exp-back{position:absolute;top:16px;left:16px;padding:6px 12px;font-size:13px;color:var(--muted);text-decoration:none;background:var(--panel);border:1px solid var(--panel-brd);border-radius:999px;backdrop-filter:blur(10px);pointer-events:auto}.exp-back:hover{color:var(--txt);border-color:var(--accent)}.ui .brand{top:52px}.exp-panel{top:92px;width:292px;max-height:calc(100vh - 108px);overflow-y:auto;scrollbar-width:thin}.exp-panel::-webkit-scrollbar{width:8px}.exp-panel::-webkit-scrollbar-thumb{background:#ffffff24;border-radius:8px}.exp-title{font-size:15px;font-weight:700;margin-bottom:8px}.exp-title2{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:14px 0 6px}.exp-metrics{display:flex;gap:10px;margin:10px 0 6px}.exp-metric{flex:1;padding:8px 10px;background:#ffffff0a;border:1px solid var(--panel-brd);border-radius:9px}.exp-metric-label{display:block;font-size:11px;color:var(--muted)}.exp-metric-val{display:block;font-size:18px;font-weight:700;color:var(--accent)}.exp-bar{position:relative;height:8px;margin:4px 0 12px;background:#ffffff0f;border-radius:999px;overflow:hidden}.exp-bar-fill{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#4f86e6,#ff8a7a);border-radius:999px;transition:width .2s ease}.exp-bar-threshold{position:absolute;top:-2px;bottom:-2px;width:2px;background:#fff;opacity:.7}.exp-slider{display:block;font-size:12px;color:var(--txt);margin:10px 0}.exp-slider span b{color:var(--accent)}.exp-slider input[type=range]{width:100%;margin-top:6px;accent-color:var(--accent)}.exp-check{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--txt);margin:8px 0 2px;cursor:pointer}.exp-check input{accent-color:var(--accent)}.exp-launch{width:100%;margin:4px 0 10px;padding:12px;font-size:15px;font-weight:700;color:#fff;background:linear-gradient(180deg,#ff8a5b,#f2643a);border:none;border-radius:10px;cursor:pointer;box-shadow:0 8px 22px #f2643a66}.exp-launch:hover{filter:brightness(1.08)}.exp-launch:active{transform:translateY(1px)}.exp-launch kbd{color:#ffffffe6;background:#fff3;border-color:transparent;margin-left:6px}.exp-error{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);padding:16px 22px;background:#e0685f26;border:1px solid var(--danger);border-radius:12px;color:var(--txt);font-size:14px;max-width:80%}.exp-loading{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:15px}.exp-shaders{position:absolute;top:52px;right:16px;width:190px;padding:12px;background:var(--panel);border:1px solid var(--panel-brd);border-radius:14px;backdrop-filter:blur(10px);box-shadow:0 12px 40px #0006;pointer-events:auto;display:flex;flex-direction:column;gap:8px}.exp-shaders-title{font-size:13px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.exp-shader{padding:10px 12px;font-size:14px;font-weight:600;color:var(--txt);text-align:left;background:#ffffff0d;border:1px solid var(--panel-brd);border-radius:10px;cursor:pointer;transition:background .12s,border-color .12s}.exp-shader:hover{background:#ffffff1a}.exp-shader.active{background:#6ea8fe38;border-color:var(--accent)}.exp-shaders-hint{font-size:11px;line-height:1.4;color:var(--muted);margin-top:4px}.exp-color{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:var(--txt);margin:8px 0}.exp-color input[type=color]{width:44px;height:26px;padding:0;border:1px solid var(--panel-brd);border-radius:6px;background:none;cursor:pointer}.exp-back2{left:auto;right:16px}.exp-nav{position:fixed;top:16px;right:16px;z-index:20;pointer-events:auto}.exp-nav-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font:inherit;font-size:13px;color:var(--txt);background:var(--panel);border:1px solid var(--panel-brd);border-radius:999px;backdrop-filter:blur(10px);cursor:pointer}.exp-nav-btn:hover{border-color:var(--accent)}.exp-nav-caret{font-size:10px;opacity:.7}.exp-nav-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:190px;display:flex;flex-direction:column;padding:6px;background:var(--panel);border:1px solid var(--panel-brd);border-radius:12px;backdrop-filter:blur(12px);box-shadow:0 12px 40px #00000073}.exp-nav-item{padding:8px 12px;font-size:13px;color:var(--muted);text-decoration:none;border-radius:8px}.exp-nav-item:hover{color:var(--txt);background:#ffffff0f}.exp-nav-item.is-current{color:var(--accent)}.exp-nav-sep{margin-top:4px;padding-top:10px;border-top:1px solid var(--panel-brd)}.xcross{position:fixed;top:50%;left:50%;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:#ffffffd9;box-shadow:0 0 0 2px #00000073;pointer-events:none}.xenter{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#0405088c;backdrop-filter:blur(2px);pointer-events:none}.xenter-card{pointer-events:auto;max-width:440px;padding:26px 30px;text-align:center;background:var(--panel);border:1px solid var(--panel-brd);border-radius:18px;box-shadow:0 20px 60px #00000080}.xenter-title{font-size:20px;font-weight:700;margin-bottom:10px}.xenter-card p{font-size:13px;line-height:1.5;color:var(--muted);margin:8px 0}.xenter-sub{font-size:12px!important}.xenter-card .exp-launch{margin-top:14px}.xpanel{pointer-events:auto}.xbulbs{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.xbulb{display:flex;align-items:center;gap:10px;padding:6px 8px;background:#ffffff0a;border:1px solid var(--panel-brd);border-radius:8px;font-size:13px}.xbulb-dot{width:12px;height:12px;border-radius:50%;flex:none;transition:box-shadow .2s,opacity .2s}.xbulb-name{flex:1}.xbulb-state{color:var(--muted);font-variant-numeric:tabular-nums}.xenter-hint{position:fixed;top:14px;left:50%;transform:translate(-50%);padding:7px 16px;font-size:13px;color:var(--txt);background:#0a0b0ebf;border:1px solid var(--panel-brd);border-radius:999px;pointer-events:none}.xhint{position:fixed;bottom:44px;left:50%;transform:translate(-50%);padding:6px 14px;font-size:13px;color:var(--txt);background:#0a0b0eb3;border:1px solid var(--panel-brd);border-radius:999px;pointer-events:none;white-space:nowrap}.xtabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.xtab{padding:5px 8px;font-size:12px;color:var(--muted);background:#ffffff0d;border:1px solid var(--panel-brd);border-radius:8px;cursor:pointer}.xtab:hover{color:var(--txt)}.xtab.active{color:var(--txt);background:#6ea8fe38;border-color:var(--accent)}
