:root{--bg: #05070f;--panel: rgba(10, 16, 32, .72);--line: rgba(90, 140, 255, .22);--text: #cfe0ff}*{box-sizing:border-box}body{margin:0;overflow:hidden;touch-action:manipulation;background:var(--bg);font-family:Microsoft YaHei,PingFang SC,Segoe UI,sans-serif;color:var(--text)}#app canvas{display:block}.panel{position:fixed;z-index:10;background:var(--panel);border:1px solid var(--line);border-radius:10px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}#title{top:16px;left:16px;padding:10px 18px}#title h1{margin:0;font-size:17px;letter-spacing:4px;color:#eaf2ff;text-shadow:0 0 12px rgba(90,140,255,.6)}#title small{font-size:11px;opacity:.55;letter-spacing:1px}#legend{top:16px;right:16px;padding:12px 14px;width:208px;max-height:calc(100vh - 32px);overflow-y:auto;max-height:calc(100dvh - 32px)}#legend .lg-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}#legend .lg-toggle{flex:none;font:inherit;font-size:11px;line-height:1;padding:3px 7px;border-radius:6px;cursor:pointer;background:#3c64c82e;color:inherit;border:1px solid var(--line)}#legend .lg-toggle:hover{background:#5a8cff52}#legend.collapsed .lg-body{display:none}#legend.collapsed{width:auto;padding-bottom:10px}#legend .lg-title{font-size:11px;letter-spacing:2px;opacity:.6;margin-bottom:8px}#legend .lg-group{display:flex;align-items:center;justify-content:space-between;width:100%;font:inherit;font-size:10px;letter-spacing:1px;margin:7px 0 2px;padding:1px 4px;text-align:left;color:inherit;opacity:.5;background:transparent;border:1px solid transparent;border-radius:6px;cursor:pointer}#legend .lg-group i{font-style:normal;font-size:9px;opacity:.7}#legend .lg-group:hover{opacity:.9;background:#5a8cff24}#legend .lg-group.part{opacity:.75;border-color:var(--line)}#legend .lg-group.off{opacity:.32}#legend .lg-group.off i{transform:rotate(180deg)}#legend .lg-item{display:flex;align-items:center;gap:8px;font-size:12px;margin:5px 0}#legend button.lg-item{width:100%;font:inherit;color:inherit;text-align:left;background:transparent;border:1px solid transparent;border-radius:6px;padding:1px 4px;cursor:pointer}#legend .lg-cat b,#legend .lg-imp b{margin-left:auto;font-weight:400;font-size:10px;opacity:.5;font-variant-numeric:tabular-nums}#legend .lg-cat:hover,#legend .lg-imp:hover{background:#5a8cff24}#legend .lg-imp.on{opacity:1;border-color:#39cbd099;background:#39cbd024}#legend .lg-cat.off{opacity:.38}#legend .lg-cat.off span:not(.lg-dot){text-decoration:line-through}#legend .lg-cat.off .lg-dot{box-shadow:none}#legend .lg-reset{width:100%;margin-top:6px;font:inherit;font-size:11px;letter-spacing:1px;padding:3px 0;border-radius:6px;cursor:pointer;background:#3c64c82e;color:inherit;border:1px solid var(--line)}#legend .lg-reset:hover{background:#5a8cff52}#legend .lg-reset.idle{opacity:.35;pointer-events:none}#legend .lg-dot{width:10px;height:10px;border-radius:3px;box-shadow:0 0 8px currentColor}#legend .lg-sep{height:1px;background:var(--line);margin:10px 0}#legend .lg-limit{display:flex;align-items:center;gap:8px;font-size:12px}#legend .lg-limit input[type=range]{width:104px;accent-color:#5a8cff;cursor:pointer}#legend .lg-limit span{min-width:32px;text-align:right;font-variant-numeric:tabular-nums}#legend .lg-hint{font-size:10px;opacity:.45;margin-top:5px}#legend .lg-kinds{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}#legend .lg-kind{font:inherit;font-size:10px;letter-spacing:1px;padding:2px 6px;border-radius:9px;cursor:pointer;background:transparent;color:inherit;opacity:.6;border:1px solid var(--line)}#legend .lg-kind b{font-weight:400;opacity:.55;margin-left:3px;font-variant-numeric:tabular-nums}#legend .lg-kind:hover{opacity:.9}#legend .lg-kind.on{opacity:1;border-color:currentColor;background:#39cbd024}#toolbar{bottom:18px;left:50%;transform:translate(-50%);display:flex;gap:8px;padding:8px 10px}#toolbar button{background:#3c64c82e;border:1px solid var(--line);color:var(--text);font-size:13px;padding:7px 16px;border-radius:7px;cursor:pointer;letter-spacing:1px;transition:all .15s;font-family:inherit;white-space:nowrap}#toolbar button:hover{background:#5a8cff52;box-shadow:0 0 14px #5a8cff59}#toolbar button.active{background:#5a8cff73;color:#fff}#hint{position:fixed;bottom:20px;left:18px;z-index:10;font-size:12px;line-height:1.6;opacity:.5;letter-spacing:1px;max-width:calc(50vw - 150px)}#hint .hint-touch{display:none}@media (pointer: coarse){#hint .hint-mouse{display:none}#hint .hint-touch{display:inline}}#eraCaption{position:fixed;bottom:16%;left:50%;transform:translate(-50%);z-index:11;font-size:38px;font-weight:700;letter-spacing:10px;color:#eaf2ff;text-shadow:0 0 24px rgba(90,140,255,.9),0 0 60px rgba(90,140,255,.4);opacity:0;transition:opacity .8s;pointer-events:none;white-space:nowrap}#eraCaption.show{opacity:1}#eraCaption .sub{display:block;text-align:center;font-size:15px;font-weight:400;letter-spacing:4px;opacity:.7;margin-top:6px}#tooltip{position:fixed;z-index:20;pointer-events:none;background:#080c1ae6;border:1px solid rgba(90,140,255,.4);border-radius:7px;padding:8px 12px;font-size:12px;line-height:1.7;color:#dfe9ff;opacity:0;transition:opacity .12s;white-space:nowrap;box-shadow:0 4px 24px #00000080}#tooltip.show{opacity:1}#tooltip .tt-name{font-size:14px;font-weight:700;color:#fff}#tooltip .tt-dim{opacity:.65}#tooltip .tt-desc{max-width:300px;white-space:normal;margin-top:4px;padding-top:4px;border-top:1px solid rgba(90,140,255,.25);opacity:.85}#tooltip .tt-src{max-width:300px;white-space:normal;margin-top:3px;font-size:11px;opacity:.6}#tooltip.docked{left:50%;top:auto;bottom:78px;transform:translate(-50%);width:min(420px,calc(100vw - 20px));white-space:normal;pointer-events:auto}#tooltip.docked .tt-desc,#tooltip.docked .tt-src{max-width:none}#credit{position:fixed;right:16px;bottom:14px;z-index:10;max-width:360px;text-align:right;font-size:10px;line-height:1.65;letter-spacing:.3px;color:#96aacd99}#credit a{color:inherit;text-decoration:underline;text-underline-offset:2px}#credit a:hover{color:#cfe0ff}#tooltip a{color:#8fb6ff}#tooltip a:hover{color:#dfe9ff}#fatal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;background:#05070ff0}#fatal .ft-box{max-width:420px;text-align:center}#fatal .ft-title{font-size:17px;letter-spacing:2px;color:#eaf2ff}#fatal .ft-detail{margin:10px 0 18px;font-size:12px;line-height:1.7;opacity:.65;white-space:pre-line;overflow-wrap:anywhere}#fatal button{font:inherit;font-size:13px;letter-spacing:1px;padding:8px 20px;border-radius:7px;cursor:pointer;color:var(--text);background:#3c64c82e;border:1px solid var(--line)}#title,#legend,#hint,#toolbar,#credit{transition:opacity .5s}body.touring #title,body.touring #legend,body.touring #hint,body.touring #toolbar,body.touring #credit{opacity:0;pointer-events:none}body.touring #tooltip{display:none}@media (max-width: 640px){#title{top:10px;left:10px;padding:7px 12px;white-space:nowrap}#title h1{font-size:15px;letter-spacing:3px}#title small{font-size:10px;letter-spacing:0}#legend{top:78px;left:10px;right:auto;padding:9px 12px;width:min(240px,calc(100vw - 20px));max-height:calc(100vh - 234px);max-height:calc(100dvh - 234px)}#legend.collapsed{padding-bottom:3px}#legend .lg-item{margin:2px 0}#legend button.lg-item,#legend .lg-group{padding:5px 4px}#hint{left:10px;right:10px;bottom:114px;max-width:none;text-align:center;font-size:11px;letter-spacing:0}#credit{left:10px;right:10px;bottom:8px;max-width:none;text-align:center;font-size:9px;line-height:1.5;letter-spacing:0}#toolbar{bottom:56px}#tooltip.docked{bottom:116px}#eraCaption{font-size:24px;letter-spacing:5px;bottom:22%}#eraCaption .sub{font-size:12px;letter-spacing:2px}}
