:root{--ink:#eef2f7;--ink-dim:rgba(238,242,247,.55);--glass:rgba(14,18,26,.4);--glass-border:rgba(255,255,255,.09)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;overflow:hidden;background:#04060a}body{font-family:Songti SC,"Noto Serif SC",Georgia,PingFang SC,Microsoft YaHei,serif;color:var(--ink);-webkit-user-select:none;user-select:none}canvas#world,canvas#glworld{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;display:block}#veil{position:fixed;top:0;right:0;bottom:0;left:0;background:#04060a;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;transition:opacity 2.6s ease}#veil.gone{opacity:0;pointer-events:none}#veil h1{font-weight:400;font-size:clamp(42px,8vw,84px);letter-spacing:.35em;text-indent:.35em;opacity:0;animation:rise 2.6s ease .3s forwards}#veil p{font-size:13px;letter-spacing:.55em;text-indent:.55em;color:var(--ink-dim);opacity:0;animation:rise 2.6s ease 1.1s forwards}#enter{margin-top:16px;padding:13px 46px;border-radius:999px;cursor:pointer;background:transparent;border:1px solid rgba(255,255,255,.2);color:var(--ink);font-family:inherit;font-size:15px;letter-spacing:.4em;text-indent:.4em;opacity:0;animation:rise 2.6s ease 1.9s forwards;transition:background 1s ease,border-color 1s ease}#enter:hover{background:#ffffff0f;border-color:#ffffff61}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}#dock{position:fixed;left:50%;bottom:max(26px,env(safe-area-inset-bottom));transform:translate(-50%);display:flex;align-items:center;gap:4px;padding:8px 12px;border-radius:999px;background:var(--glass);border:1px solid var(--glass-border);backdrop-filter:blur(24px) saturate(1.3);-webkit-backdrop-filter:blur(24px) saturate(1.3);box-shadow:0 10px 40px #00000073;opacity:0;transition:opacity 1.8s ease;z-index:30}body.awake #dock{opacity:1}body.idle #dock{opacity:0;pointer-events:none}.scene-btn,.icon-btn{width:44px;height:44px;border-radius:50%;border:none;cursor:pointer;background:transparent;color:#eef2f773;display:flex;align-items:center;justify-content:center;transition:background .6s ease,color .6s ease,transform .6s ease}.scene-btn:hover,.icon-btn:hover{color:var(--ink)}.scene-btn.on{background:#ffffff1c;color:var(--ink);transform:scale(1.05)}.icon-btn.on{color:var(--ink)}.scene-btn svg,.icon-btn svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.divider{width:1px;height:22px;background:#ffffff1c;margin:0 5px}#mixer,#sleeper{position:fixed;left:50%;bottom:calc(max(26px,env(safe-area-inset-bottom)) + 72px);transform:translate(-50%) translateY(12px);width:min(320px,86vw);padding:22px 24px 18px;border-radius:24px;background:var(--glass);border:1px solid var(--glass-border);backdrop-filter:blur(28px) saturate(1.3);-webkit-backdrop-filter:blur(28px) saturate(1.3);box-shadow:0 16px 60px #00000080;opacity:0;pointer-events:none;transition:opacity .9s ease,transform .9s cubic-bezier(.2,.8,.2,1);z-index:29}#mixer.open,#sleeper.open{opacity:1;pointer-events:auto;transform:translate(-50%) translateY(0)}#mixer h3,#sleeper h3{font-weight:400;font-size:12px;letter-spacing:.45em;text-indent:.45em;color:var(--ink-dim);margin-bottom:18px;text-align:center}.sleep-opts{display:flex;gap:8px}.sleep-opt{flex:1;padding:9px 0;border-radius:12px;cursor:pointer;background:#ffffff0d;border:1px solid transparent;color:var(--ink-dim);font-family:inherit;font-size:13px;letter-spacing:.05em;transition:background .5s ease,color .5s ease}.sleep-opt:hover{color:var(--ink)}.sleep-opt.on{background:#ffffff24;color:var(--ink)}#sleepStatus{margin-top:14px;text-align:center;font-size:12px;letter-spacing:.2em;color:var(--ink-dim);min-height:1em}.track{display:flex;align-items:center;gap:14px;margin-bottom:14px}.track:last-child{margin-bottom:2px}.track label{width:3.4em;font-size:13px;letter-spacing:.1em;color:var(--ink-dim);flex-shrink:0}.track input[type=range]{flex:1;-moz-appearance:none;appearance:none;-webkit-appearance:none;height:22px;background:transparent;cursor:pointer}.track input[type=range]::-webkit-slider-runnable-track{height:2px;border-radius:2px;background:linear-gradient(to right,rgba(255,255,255,.5) var(--fill,50%),rgba(255,255,255,.13) var(--fill,50%))}.track input[type=range]::-webkit-slider-thumb{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--ink);margin-top:-6px;box-shadow:0 2px 8px #00000080;transition:transform .3s ease}.track input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.25)}.track input[type=range]::-moz-range-track{height:2px;border-radius:2px;background:#ffffff21}.track input[type=range]::-moz-range-progress{height:2px;border-radius:2px;background:#ffffff80}.track input[type=range]::-moz-range-thumb{width:14px;height:14px;border:none;border-radius:50%;background:var(--ink)}#scene-name{position:fixed;top:max(34px,env(safe-area-inset-top));left:50%;transform:translate(-50%);font-size:13px;letter-spacing:.7em;text-indent:.7em;color:#eef2f761;opacity:0;transition:opacity 2.5s ease;z-index:20;pointer-events:none}body.awake #scene-name{opacity:1}body.idle #scene-name{opacity:0}#hint{position:fixed;bottom:calc(max(26px,env(safe-area-inset-bottom)) + 72px);left:50%;transform:translate(-50%);font-size:12px;letter-spacing:.3em;color:#eef2f752;opacity:0;transition:opacity 2s ease;pointer-events:none;z-index:20;white-space:nowrap}#hint.show{opacity:1}@media (prefers-reduced-motion:reduce){#veil h1,#veil p,#enter{animation-duration:.01s;animation-delay:0s}}
