:root{--ink:#f4f7fa;--ink-2:#f4f7fab8;--ink-3:#f4f7fa80;--glass:#0c141e61;--glass-2:#0c141e99;--line:#ffffff29;--accent:#9fd8e8;--radius:14px;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);color:var(--ink);-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,PingFang TC,Noto Sans TC,Microsoft JhengHei,Segoe UI,sans-serif}html,body{overscroll-behavior:none;background:#05080d;height:100%;margin:0;overflow:hidden}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}#scene{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#ui{pointer-events:none;z-index:1;position:fixed;inset:0}#ui button{font:inherit;color:inherit;cursor:pointer;appearance:none;background:0 0;border:0}#ui button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.fade{opacity:0;pointer-events:none;background:#05080d;transition:opacity .45s;position:absolute;inset:0}.fade.on{opacity:1}.btn{letter-spacing:.04em;border-radius:999px;padding:14px 20px;font-size:16px;transition:transform .15s,background .2s}.btn:active{transform:scale(.98)}.btn.primary{font-weight:600;color:#0b1622!important;background:#f4f7faeb!important}.btn.small{align-self:center;margin-top:14px;padding:10px 18px;font-size:15px}.hud{transition:opacity .8s;position:absolute;inset:0}.hud.hidden{display:none}.hud.idle{opacity:0}.hud.idle .tabs,.hud.idle .corner{pointer-events:none}.tabs{top:calc(12px + var(--safe-t));pointer-events:auto;white-space:nowrap;background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:999px;gap:2px;width:max-content;padding:4px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.tab{letter-spacing:.06em;border-radius:999px;padding:8px 16px;font-size:14px;transition:background .25s,color .25s;color:var(--ink-2)!important}.tab.on{font-weight:600;color:#0b1622!important;background:#ffffffe6!important}.corner{bottom:calc(14px + var(--safe-b));pointer-events:auto;align-items:flex-end;gap:10px;display:flex;position:absolute}.corner.left{left:calc(14px + var(--safe-l));flex-direction:column;align-items:flex-start;right:120px}.corner.right{right:calc(14px + var(--safe-r))}.clock{border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);text-align:left;flex-direction:column;align-items:flex-start;gap:2px;max-width:100%;padding:8px 14px;display:flex;background:var(--glass)!important;border:1px solid var(--line)!important}.clock-time{letter-spacing:.04em;font-variant-numeric:tabular-nums;font-size:22px;font-weight:300}.clock-sub{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;max-width:62vw;font-size:11px;overflow:hidden}.time-panel{border-radius:var(--radius);width:min(420px, calc(100vw - 28px - var(--safe-l) - var(--safe-r)));box-sizing:border-box;background:var(--glass-2);border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-items:center;gap:10px;padding:10px 12px;display:none}.time-panel.open{display:flex}.slider{accent-color:#e9f3f7;touch-action:pan-x;flex:1;min-width:0;height:28px}.chip{white-space:nowrap;border-radius:999px;padding:7px 12px;font-size:13px;border:1px solid var(--line)!important;background:#ffffff1f!important}.chip.on{background:#9fd8e847!important;border-color:#9fd8e899!important}.icon-btn{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:50%;place-items:center;width:46px;height:46px;display:grid;background:var(--glass)!important;border:1px solid var(--line)!important}.icon-btn svg{fill:currentColor;width:22px;height:22px}.hint{left:50%;top:calc(70px + var(--safe-t));opacity:0;box-sizing:border-box;border-radius:var(--radius);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:max-content;max-width:calc(100vw - 32px);color:var(--ink);text-align:center;white-space:pre-line;padding:10px 16px;font-size:13px;line-height:1.6;transition:opacity .6s,transform .6s;position:absolute;transform:translate(-50%,-6px)}.hint.show{opacity:1;transform:translate(-50%)}.fps{top:calc(64px + var(--safe-t));right:calc(14px + var(--safe-r));color:var(--ink-2);font:11px ui-monospace,Menlo,Consolas,monospace;display:none;position:absolute}.sheet{visibility:hidden;pointer-events:none;background:0 0;place-items:end center;transition:background .3s,visibility .3s;display:grid;position:absolute;inset:0}.sheet.open{visibility:visible;pointer-events:auto;background:#00000059}.sheet-panel{box-sizing:border-box;width:min(460px,100vw);max-height:86vh;padding:20px 18px calc(20px + var(--safe-b));border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0e1620db;border-radius:22px 22px 0 0;flex-direction:column;gap:4px;transition:transform .35s cubic-bezier(.2,.8,.2,1);display:flex;overflow:auto;transform:translateY(100%)}.sheet.open .sheet-panel{transform:translateY(0)}.sheet-panel h2{letter-spacing:.04em;margin:0 0 8px;font-size:17px;font-weight:600}.row{border-top:1px solid #ffffff14;justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 0;display:flex}.row-label{color:var(--ink-2);flex-shrink:0;padding-top:7px;font-size:14px}.seg{background:#ffffff0f;border-radius:12px;flex-wrap:wrap;justify-content:flex-end;gap:4px;padding:3px;display:flex}.seg button{border-radius:9px;padding:6px 11px;font-size:13px;color:var(--ink-2)!important}.seg button.on{font-weight:600;color:#0b1622!important;background:#ffffffe0!important}.loc-box{text-align:right;flex-direction:column;align-items:flex-end;gap:8px;min-width:0;display:flex}.loc-status{color:var(--ink-2);overflow-wrap:anywhere;font-size:12px}.note{color:var(--ink-3);margin:6px 0 0;font-size:11.5px;line-height:1.55}.fatal{text-align:center;color:var(--ink-2);background:#0b1622;place-items:center;padding:24px;line-height:1.7;display:grid;position:fixed;inset:0}@media (prefers-reduced-motion:reduce){.hud,.hint,.sheet-panel,.fade{transition:none}}@media (min-width:900px){.tab{padding:9px 20px;font-size:15px}.clock-sub{max-width:40vw}}
