:root{--bg-deep: #070910;--bg-base: #0b0f1d;--bg-high: #151c33;--text: #e8edf7;--text-muted: #9aa4bb;--accent-a: #22d3ee;--accent-b: #7c5cff;--accent-grad: linear-gradient(135deg, #22d3ee, #7c5cff);--glass-bg: rgba(16, 20, 33, .55);--glass-border: rgba(255, 255, 255, .1);--radius-dock: 18px;--radius-btn: 12px;--ease: cubic-bezier(.22, .61, .36, 1)}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background:radial-gradient(120% 90% at 50% 6%,var(--bg-high) 0%,var(--bg-base) 55%,var(--bg-deep) 100%);color:var(--text);-webkit-font-smoothing:antialiased}#bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.blob{position:absolute;border-radius:50%;will-change:transform;animation:drift 16s var(--ease) infinite alternate}.blob-1{width:52vmax;height:52vmax;top:-18vmax;left:-10vmax;background:radial-gradient(circle,rgba(31,111,255,.2),transparent 62%)}.blob-2{width:46vmax;height:46vmax;bottom:-16vmax;right:-8vmax;background:radial-gradient(circle,rgba(124,92,255,.18),transparent 62%);animation-duration:20s;animation-direction:alternate-reverse}.blob-3{width:30vmax;height:30vmax;top:28%;right:14%;background:radial-gradient(circle,rgba(34,211,238,.12),transparent 60%);animation-duration:24s}@keyframes drift{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(3vmax,2vmax,0) scale(1.08)}}.vignette{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(120% 120% at 50% 50%,transparent 52%,rgba(0,0,0,.4) 100%)}#stage{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1}#stage canvas{display:block;touch-action:none}.glass{background:var(--glass-bg);border:1px solid var(--glass-border);backdrop-filter:blur(20px) saturate(150%);-webkit-backdrop-filter:blur(20px) saturate(150%);box-shadow:0 18px 50px #00000073}.chip{position:fixed;top:18px;left:18px;z-index:5;display:flex;align-items:center;gap:12px;padding:10px 16px;border-radius:16px;max-width:min(460px,calc(100vw - 36px))}.chip-type{flex:none;width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:var(--accent-grad);color:#fff;font-weight:800;font-size:19px;box-shadow:0 6px 18px #5a5aff66}.chip-name{font-size:15px;font-weight:700;letter-spacing:.2px;color:#f2f5fb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip-alg{margin-top:2px;font-size:12px;color:var(--text-muted);letter-spacing:.4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dock{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:5}.dock-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;width:min(720px,calc(100vw - 28px));padding:12px 14px;border-radius:var(--radius-dock)}.seg{display:flex;gap:8px;padding:5px;border-radius:14px;background:#ffffff0d;border:1px solid rgba(255,255,255,.07)}.seg-btn{width:48px;height:44px;border:0;border-radius:10px;background:transparent;color:var(--text-muted);font:inherit;font-size:16px;font-weight:700;cursor:pointer;transition:background .18s var(--ease),color .18s var(--ease),box-shadow .18s var(--ease),transform .18s var(--ease)}.seg-btn:hover:not(:disabled):not(.active){background:#ffffff14;color:#fff}.seg-btn:active:not(:disabled){transform:scale(.94)}.seg-btn.active{background:var(--accent-grad);color:#fff;box-shadow:0 6px 18px #407cff73,inset 0 0 0 1px #ffffff2e}.seg-btn:disabled{opacity:.3;cursor:not-allowed}.dock-actions{display:flex;gap:10px}.opt-group{display:flex;align-items:center;gap:16px;flex:none}.opt{display:flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none;flex:none}.opt-label{font-size:13px;font-weight:600;letter-spacing:.3px;color:var(--text-muted)}.switch{position:relative;display:inline-block;width:44px;height:26px;flex:none}.switch input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.track{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;background:#ffffff1f;border:1px solid rgba(255,255,255,.14);transition:background .2s var(--ease),border-color .2s var(--ease)}.thumb{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#c9d2e4;transition:transform .2s var(--ease),background .2s var(--ease)}.switch input:checked+.track{background:var(--accent-grad);border-color:transparent}.switch input:checked+.track .thumb{transform:translate(20px);background:#fff}.switch input:focus-visible+.track{outline:2px solid var(--accent-a);outline-offset:2px}.btn{height:44px;padding:0 22px;border:0;border-radius:var(--radius-btn);font:inherit;font-size:15px;font-weight:700;letter-spacing:.5px;cursor:pointer;transition:transform .18s var(--ease),box-shadow .18s var(--ease),background .18s var(--ease),border-color .18s var(--ease)}.btn-primary{background:var(--accent-grad);color:#fff;box-shadow:0 8px 22px #5a5aff59}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 12px 28px #5a5aff73}.btn-ghost{background:#ffffff0f;color:#dbe2f0;border:1px solid rgba(255,255,255,.16)}.btn-ghost:hover{background:#ffffff1f}.btn:active{transform:translateY(0) scale(.97)}.btn:focus-visible,.seg-btn:focus-visible{outline:2px solid var(--accent-a);outline-offset:2px}@media (max-width: 640px){.chip{top:12px;left:12px;padding:8px 12px;border-radius:14px;gap:10px}.chip-type{width:36px;height:36px;font-size:16px;border-radius:10px}.chip-name{font-size:14px}.chip-alg{max-width:40vw}.dock{bottom:calc(10px + env(safe-area-inset-bottom));width:calc(100vw - 20px)}.dock-inner{width:100%;flex-direction:column;align-items:stretch;gap:12px;padding:14px}.seg,.opt,.opt-group{justify-content:center}.seg-btn{width:56px;height:46px}.dock-actions{gap:10px}.btn{flex:1;height:46px}}@media (prefers-reduced-motion: reduce){.blob{animation:none}}
