:root{--accent:#ff8ad8;--accent-2:#8ad7ff;--accent-3:#ffd78a;--panel-bg:#1012229e;--panel-border:#ffffff1f;--text:#eef0ff;--text-dim:#9aa1c4;--radius:16px}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;color:var(--text);-webkit-user-select:none;user-select:none;background:#080615;font-family:PingFang SC,Microsoft YaHei,Segoe UI,system-ui,-apple-system,sans-serif;overflow:hidden}#app{background:radial-gradient(120% 90% at 50% 32%,#1d1743 0%,#0e0b28 46%,#070514 100%);position:fixed;inset:0;overflow:hidden}.bg-glow{z-index:0;pointer-events:none;position:absolute;inset:0}.glow{filter:blur(64px);will-change:transform;border-radius:50%;position:absolute}.glow-1{background:radial-gradient(circle,#ff8ad826 0%,#ff8ad800 62%);width:62vmax;height:62vmax;animation:21s ease-in-out infinite alternate drift1;top:-20vmax;left:-18vmax}.glow-2{background:radial-gradient(circle,#8ad7ff1f 0%,#8ad7ff00 62%);width:56vmax;height:56vmax;animation:25s ease-in-out infinite alternate drift2;top:-10vmax;right:-16vmax}.glow-3{background:radial-gradient(circle,#a78bff1c 0%,#a78bff00 62%);width:60vmax;height:60vmax;animation:28s ease-in-out infinite alternate drift3;bottom:-24vmax;left:8vmax}.glow-4{background:radial-gradient(circle,#ffd78a14 0%,#ffd78a00 60%);width:42vmax;height:42vmax;animation:19s ease-in-out infinite alternate drift4;bottom:-12vmax;right:-6vmax}.glow-5{background:radial-gradient(circle,#ffffff0a 0%,#fff0 60%);width:36vmax;height:36vmax;animation:32s ease-in-out infinite alternate drift5;top:22vh;left:28vw}@keyframes drift1{0%{transform:translate(0,0)scale(1)}to{transform:translate(9vmax,6vmax)scale(1.16)}}@keyframes drift2{0%{transform:translate(0,0)scale(1)}to{transform:translate(-8vmax,5vmax)scale(1.12)}}@keyframes drift3{0%{transform:translate(0,0)scale(1.06)}to{transform:translate(7vmax,-7vmax)scale(.96)}}@keyframes drift4{0%{transform:translate(0,0)scale(1)}to{transform:translate(-5vmax,-4vmax)scale(1.18)}}@keyframes drift5{0%{transform:translate(0,0)scale(1)}to{transform:translate(4vmax,-6vmax)scale(1.22)}}#scene{z-index:1;width:100%;height:100%;display:block;position:absolute;inset:0}.controls{z-index:30;background:var(--panel-bg);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(18px)saturate(1.3);border-radius:999px;flex-wrap:wrap;justify-content:center;gap:10px;max-width:calc(100vw - 24px);padding:10px 14px;display:flex;position:fixed;bottom:26px;left:50%;transform:translate(-50%);box-shadow:0 12px 40px #00000073}.ctrl-slider{z-index:0;width:var(--slider-w,80px);height:var(--slider-h,36px);transform:translate3d(var(--slider-x,0px), var(--slider-y,0px), 0);opacity:0;pointer-events:none;background:linear-gradient(120deg,#ff8ad8e6,#8ad7ffe6);border-radius:999px;transition:transform .38s cubic-bezier(.22,.9,.32,1),width .38s cubic-bezier(.22,.9,.32,1),height .38s cubic-bezier(.22,.9,.32,1),opacity .25s;position:absolute;top:0;left:0;box-shadow:0 0 20px #ff8ad859}.ctrl-btn{z-index:1;appearance:none;color:var(--text);letter-spacing:1px;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:999px;padding:9px 18px;font-size:14px;transition:all .22s;position:relative}.ctrl-btn:hover{background:#ffffff14;transform:translateY(-1px)}.ctrl-btn.active{color:#101022}.ctrl-btn.active:hover{background:0 0;transform:none}.settings{z-index:30;position:fixed;top:22px;right:22px}.settings-toggle{border:1px solid var(--panel-border);background:var(--panel-bg);-webkit-backdrop-filter:blur(18px)saturate(1.3);width:42px;height:42px;color:var(--text);cursor:pointer;border-radius:50%;font-size:19px;transition:transform .3s;box-shadow:0 8px 24px #00000059}.settings-toggle:hover{transform:rotate(35deg)}.settings-body{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:var(--radius);-webkit-backdrop-filter:blur(18px)saturate(1.3);opacity:0;pointer-events:none;width:250px;padding:16px 18px;transition:opacity .25s,transform .25s;position:absolute;top:52px;right:0;transform:translateY(-8px)scale(.97);box-shadow:0 16px 50px #00000080}.settings.open .settings-body{opacity:1;pointer-events:auto;transform:none}.setting-row{margin-bottom:14px}.setting-row:last-child{margin-bottom:0}.setting-row label{color:var(--text-dim);letter-spacing:1px;margin-bottom:7px;font-size:12px;display:block}.setting-row label.checkbox-label{color:var(--text);cursor:pointer;align-items:center;gap:8px;margin-bottom:0;display:flex}.setting-row input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px}.setting-row input[type=range]{appearance:none;background:linear-gradient(90deg, var(--accent), var(--accent-2));cursor:pointer;border-radius:4px;outline:none;width:100%;height:4px}.setting-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:3px solid var(--accent);background:#fff;border-radius:50%;width:15px;height:15px;box-shadow:0 0 10px #ff8ad8b3}.setting-row input[type=range]::-moz-range-thumb{border:3px solid var(--accent);background:#fff;border-radius:50%;width:13px;height:13px}.value{float:right;color:var(--text);background:#ffffff14;border-radius:8px;margin-top:-24px;padding:2px 8px;font-size:12px}.stat-row{color:var(--text-dim);letter-spacing:.5px;border-top:1px solid #ffffff1a;justify-content:space-between;padding-top:12px;font-size:11px;display:flex}.loading{z-index:100;background:radial-gradient(100% 90% at 50% 40%,#1d1743 0%,#0e0b28 55%,#070514 100%);justify-content:center;align-items:center;transition:opacity .7s;display:flex;position:fixed;inset:0}.loading.hidden{opacity:0;pointer-events:none}.loading-inner{text-align:center}.loading-heart{color:var(--accent);text-shadow:0 0 30px #ff8ad8cc;font-size:42px;animation:2.4s ease-in-out infinite float}@keyframes float{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-10px)scale(1.12)}}.loading-title{letter-spacing:3px;margin-top:14px;font-size:18px}.loading-bar{background:#ffffff1a;border-radius:4px;width:260px;height:5px;margin:18px auto 10px;overflow:hidden}.loading-bar-fill{background:linear-gradient(90deg, var(--accent-3), var(--accent), var(--accent-2));border-radius:4px;width:0%;height:100%;transition:width .25s}.loading-text{color:var(--text-dim);letter-spacing:1px;font-size:12px}.hint{z-index:15;color:var(--text-dim);letter-spacing:1px;pointer-events:none;opacity:.85;background:#00000040;border-radius:999px;padding:6px 14px;font-size:12px;position:fixed;bottom:96px;left:50%;transform:translate(-50%)}@media (width<=720px){.settings{top:16px;right:16px}.controls{gap:7px;padding:8px 10px;bottom:14px}.ctrl-btn{padding:8px 13px;font-size:13px}.hint{bottom:84px}}
