:root{--ink:#04080b;--ink2:#071118;--panel:#050d13bd;--panel2:#08141cdb;--gold:#3fe4ff;--gold2:#aef5ff;--amber:#ffb547;--red:#ff5d6c;--green:#5dffb0;--cream:#e7f6fb;--mist:#c8e8f294;--line:#3fe4ff42;--line2:#3fe4ff1f;--sans:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;--serif:var(--sans);--mono:"JetBrains Mono","Cascadia Mono","Consolas","SFMono-Regular",ui-monospace,monospace;--side:296px}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--ink);height:100%;color:var(--cream);font-family:var(--sans);-webkit-font-smoothing:antialiased;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}a{color:var(--gold2);text-decoration:none}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:.04em}.hidden{display:none!important}#loader{z-index:100;background:radial-gradient(at 50% 45%,#0a1c26 0%,#020507 72%);place-items:center;transition:opacity 1.2s,visibility 1.2s;display:grid;position:fixed;inset:0}#loader:before{content:"";background:linear-gradient(var(--line2) 1px,transparent 1px) 0 0/100% 48px,linear-gradient(90deg,var(--line2) 1px,transparent 1px) 0 0/48px 100%;opacity:.6;position:absolute;inset:0;-webkit-mask:radial-gradient(#000 20%,#0000 70%);mask:radial-gradient(#000 20%,#0000 70%)}#loader.done{opacity:0;visibility:hidden}.loader-inner{text-align:center;width:min(440px,82vw);position:relative}.seal{border:1px solid var(--gold);width:64px;height:64px;color:var(--gold);text-shadow:0 0 12px var(--gold);place-items:center;font-size:28px;display:inline-grid;position:relative;box-shadow:0 0 24px #3fe4ff59,inset 0 0 18px #3fe4ff2e}.seal:after{content:"";border:1px dashed #3fe4ff66;position:absolute;inset:4px}.seal.sm{width:42px;height:42px;font-size:19px}#loader h1{letter-spacing:.34em;margin:28px 0 10px;padding-left:.34em;font-size:24px;font-weight:500}#loader .en{font-family:var(--mono);letter-spacing:.38em;color:var(--mist);font-size:10px}.bar{background:#3fe4ff1f;height:2px;margin:36px 0 14px;position:relative;overflow:hidden}.bar i{background:linear-gradient(90deg,transparent,var(--gold));width:0;height:100%;box-shadow:0 0 12px var(--gold);transition:width .4s;display:block}#loader small{font-family:var(--mono);letter-spacing:.14em;color:var(--mist);font-size:11px}#side{width:var(--side);z-index:20;border-right:1px solid var(--line);background:linear-gradient(#040a0ef7,#03070afb);flex-direction:column;padding:30px 24px 22px;display:flex;position:fixed;top:0;bottom:0;left:0}#side:after{content:"";background:linear-gradient(transparent,var(--gold),transparent);width:1px;height:120px;animation:6s linear infinite sideScan;position:absolute;top:0;right:-1px}@keyframes sideScan{0%{top:-120px}to{top:100%}}.brand{color:var(--cream);align-items:center;gap:14px;display:flex}.brand-text b{letter-spacing:.26em;font-size:18px;font-weight:600;display:block}.brand-text small{font-family:var(--mono);letter-spacing:.22em;color:var(--mist);font-size:9.5px}.rule{background:linear-gradient(90deg,var(--gold),transparent);opacity:.7;height:1px;margin:24px 0 14px;position:relative}.rule:after{content:"SYS.NAV // 08";font-family:var(--mono);letter-spacing:.2em;color:#3fe4ff8c;background:#04090c;padding-left:6px;font-size:8.5px;position:absolute;top:-6px;right:0}#nav{scrollbar-width:none;flex-direction:column;flex:1;gap:2px;display:flex;overflow:auto}#nav button{text-align:left;color:#e7f6fbad;border:1px solid #0000;align-items:center;gap:14px;padding:11px 12px;transition:background .25s,color .25s;display:flex;position:relative}#nav button em{font-style:normal;font-family:var(--mono);letter-spacing:.06em;color:#3fe4ff8c;width:20px;font-size:10px}#nav button span{letter-spacing:.16em;flex-direction:column;gap:3px;font-size:14.5px;display:flex}#nav button small{font-family:var(--mono);letter-spacing:.24em;color:#c8e8f257;font-size:8.5px}#nav button:hover{color:var(--cream);background:#3fe4ff0d}#nav button.on{color:var(--gold2);background:linear-gradient(90deg,#3fe4ff29,#3fe4ff05);border-color:#3fe4ff38}#nav button.on:before{content:"";background:var(--gold);width:3px;box-shadow:0 0 10px var(--gold);position:absolute;top:-1px;bottom:-1px;left:-1px}#nav button.on:after{content:"▸";color:var(--gold);font-size:11px;position:absolute;right:12px}#nav button.on em{color:var(--gold)}.side-foot{border-top:1px solid var(--line2);flex-direction:column;gap:8px;padding-top:16px;display:flex}.side-foot a{border-bottom:1px dotted #aef5ff66;align-self:flex-start;padding-bottom:2px;font-size:12px}.side-foot small{font-family:var(--mono);color:#c8e8f266;letter-spacing:.06em;font-size:10px}.tod{gap:4px;margin-bottom:6px;display:flex}.tod button{border:1px solid var(--line);color:#e7f6fb99;flex:1;padding:6px 0;font-size:12.5px;transition:all .25s}.tod button.on{background:var(--gold);color:var(--ink);border-color:var(--gold);box-shadow:0 0 12px #3fe4ff80}#stage{left:var(--side);position:fixed;top:0;bottom:0;right:0;overflow:hidden}#gl,#gl canvas{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}#gl canvas{cursor:grab}#gl canvas:active{cursor:grabbing}.vignette{pointer-events:none;background:radial-gradient(at 50% 48%,#0000 55%,#01040699 100%);position:absolute;inset:0}.grain{pointer-events:none;opacity:.35;mix-blend-mode:multiply;background:repeating-linear-gradient(0deg,#0000002e 0 1px,#0000 1px 3px);position:absolute;inset:0}#stage:after{content:"";pointer-events:none;z-index:2;background:linear-gradient(var(--gold),var(--gold)) 0 0/22px 1px no-repeat,linear-gradient(var(--gold),var(--gold)) 0 0/1px 22px no-repeat, linear-gradient(var(--gold),var(--gold)) 100% 0/22px 1px no-repeat,linear-gradient(var(--gold),var(--gold)) 100% 0/1px 22px no-repeat, linear-gradient(var(--gold),var(--gold)) 0 100%/22px 1px no-repeat,linear-gradient(var(--gold),var(--gold)) 0 100%/1px 22px no-repeat, linear-gradient(var(--gold),var(--gold)) 100% 100%/22px 1px no-repeat,linear-gradient(var(--gold),var(--gold)) 100% 100%/1px 22px no-repeat;opacity:.55;position:absolute;inset:14px}#top{pointer-events:none;z-index:5;background:linear-gradient(#02060999,#0000);justify-content:space-between;align-items:center;padding:22px 32px;display:flex;position:absolute;top:0;left:0;right:0}#top>*{pointer-events:auto}.crumb{font-family:var(--mono);letter-spacing:.24em;color:var(--mist);align-items:center;gap:12px;font-size:11px;display:flex}.crumb i{background:var(--gold);width:44px;height:1px;box-shadow:0 0 6px var(--gold)}#crumb-no{color:var(--gold)}#crumb-name{font-family:var(--sans);color:var(--cream);letter-spacing:.26em;font-size:14px}.top-tools{align-items:center;gap:6px;display:flex}#fps{font-family:var(--mono);color:var(--green);letter-spacing:.08em;margin-right:8px;font-size:10px}.chip{border:1px solid var(--line);letter-spacing:.12em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--cream);background:#040c1199;padding:6px 13px;font-size:11.5px;transition:all .2s}.chip:hover{border-color:var(--gold);color:var(--gold2)}.chip.on{color:var(--gold2);border-color:var(--gold);background:#3fe4ff29;box-shadow:inset 0 0 12px #3fe4ff40}.card{z-index:6;background:var(--panel);-webkit-backdrop-filter:blur(16px)saturate(1.3);border:1px solid var(--line);scrollbar-width:thin;scrollbar-color:var(--line) transparent;clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,18px 100%,0 calc(100% - 18px));width:400px;max-height:calc(100% - 160px);padding:26px 26px 22px;transition:opacity .45s,transform .45s;position:absolute;top:80px;right:30px;overflow:auto}.card:before{content:"";background:var(--gold);width:60px;height:2px;box-shadow:0 0 10px var(--gold);position:absolute;top:0;left:0}.card.out{opacity:0;pointer-events:none;transform:translate(14px)}.card .kicker{font-family:var(--mono);letter-spacing:.28em;color:var(--gold);font-size:9.5px}.card .kicker:before{content:"■ ";vertical-align:2px;font-size:7px}.card h2{letter-spacing:.12em;margin:10px 0 14px;font-size:25px;font-weight:500;line-height:1.4}.card p{color:#e7f6fbc7;letter-spacing:.03em;font-size:13px;line-height:1.9}.card .lead{color:var(--cream);font-size:14px}.card hr{background:linear-gradient(90deg,var(--line),transparent);border:0;height:1px;margin:16px 0}.stats{grid-template-columns:1fr 1fr;gap:6px;margin:16px 0 6px;display:grid}.stats div{border:1px solid var(--line2);background:#3fe4ff0d;padding:11px 12px;position:relative}.stats div:after{content:"";border-top:1px solid var(--gold);border-right:1px solid var(--gold);width:5px;height:5px;position:absolute;top:4px;right:4px}.stats b{font-family:var(--mono);color:var(--gold2);letter-spacing:0;text-shadow:0 0 12px #3fe4ff66;font-size:21px;font-weight:500;display:block}.stats b sup{color:var(--mist);margin-left:3px;font-size:10px}.stats span{letter-spacing:.12em;color:#e7f6fb80;font-size:10.5px}.list{flex-direction:column;gap:3px;margin-top:10px;display:flex}.list button{text-align:left;border:1px solid var(--line2);letter-spacing:.04em;background:#3fe4ff05;border-left:2px solid #0000;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:13px;transition:all .2s;display:flex}.list button:hover{background:#3fe4ff14}.list button.on{border-left-color:var(--gold);color:var(--gold2);background:#3fe4ff1f}.list button small{font-family:var(--mono);color:#e7f6fb73;white-space:nowrap;font-size:10.5px}.cta{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.btn{border:1px solid var(--gold);letter-spacing:.16em;color:var(--gold2);background:#3fe4ff0a;align-items:center;gap:8px;padding:10px 16px;font-size:12px;transition:all .25s;display:inline-flex}.btn:hover{background:#3fe4ff29;box-shadow:0 0 14px #3fe4ff4d}.btn.solid{background:var(--gold);color:var(--ink);font-weight:600}.btn.solid:hover{background:var(--gold2)}.btn.amber{border-color:var(--amber);color:var(--amber)}.tbl{border-collapse:collapse;width:100%;margin-top:8px;font-size:12.5px}.tbl th,.tbl td{border-bottom:1px solid var(--line2);text-align:left;padding:8px 6px;font-weight:400}.tbl th{font-family:var(--mono);letter-spacing:.14em;color:var(--gold);font-size:9.5px}.tbl td.r,.tbl th.r{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}.tbl tr.sum td{color:var(--gold2);border-bottom:0}.tbl tr[data-parcel],.tbl tr[data-pt]{cursor:pointer}.tbl tr[data-parcel]:hover td,.tbl tr[data-pt]:hover td{background:#3fe4ff12}.tbl tr.on td{color:var(--amber);background:#ffb5471f}.tbl.pts{font-size:11px}.tbl.pts td{font-family:var(--mono);padding:6px 4px}.fine{color:#e7f6fb75!important;font-size:11px!important;line-height:1.75!important}.toggles{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.tag{font-family:var(--mono);letter-spacing:.08em;border:1px solid;padding:2px 6px;font-size:9.5px;display:inline-block}.tag.c{color:var(--gold)}.tag.a{color:var(--amber)}.tag.w{color:var(--cream)}.tag.g{color:var(--green)}.legend{flex-direction:column;gap:7px;margin-top:10px;font-size:12px;display:flex}.legend i{vertical-align:middle;width:26px;height:3px;margin-right:10px;display:inline-block;box-shadow:0 0 6px}#labels{pointer-events:none;z-index:3;position:absolute;inset:0}.lbl{will-change:transform;flex-direction:column;align-items:center;transition:opacity .3s;display:flex;position:absolute;top:0;left:0;transform:translate(-50%,-100%)}.lbl .t{letter-spacing:.12em;white-space:nowrap;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#030a0ec7;border:1px solid #3fe4ff73;padding:4px 10px;font-size:12px;box-shadow:0 0 12px #3fe4ff26}.lbl .t small{font-family:var(--mono);letter-spacing:.14em;color:var(--gold);margin-top:1px;font-size:8.5px;display:block}.lbl .s{background:linear-gradient(var(--gold),transparent);width:1px;height:24px}.lbl .d{background:var(--gold);width:7px;height:7px;box-shadow:0 0 0 4px #3fe4ff2e,0 0 14px var(--gold);border-radius:50%}.lbl.parcel .t{color:var(--amber);border-color:var(--amber);background:#ffb54729;font-weight:600}.lbl.parcel .t small{color:var(--amber)}.lbl.parcel .s{background:linear-gradient(var(--amber),transparent)}.lbl.parcel .d{background:var(--amber);box-shadow:0 0 0 4px #ffb54733,0 0 14px var(--amber)}.lbl.pt .t{font-family:var(--mono);letter-spacing:.04em;border-color:var(--amber);color:var(--amber);padding:2px 6px;font-size:10px}.lbl.pt .s{background:var(--amber);height:10px}.lbl.pt .d{background:var(--amber);width:5px;height:5px;box-shadow:0 0 10px var(--amber)}.lbl.minor .t{opacity:.85;font-size:11px}.lbl.pick{pointer-events:auto;cursor:pointer}.lbl.pick:hover .t{border-color:var(--gold2);color:var(--gold2)}#compass{border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:4;background:#040c118c;border-radius:50%;width:60px;height:60px;position:absolute;bottom:56px;left:30px;box-shadow:inset 0 0 14px #3fe4ff26}#compass:before{content:"";border:1px dashed #3fe4ff40;border-radius:50%;position:absolute;inset:6px}#compass .needle{justify-items:center;display:grid;position:absolute;inset:0}#compass .needle b{font-family:var(--mono);color:var(--amber);margin-top:3px;font-size:11px;font-weight:600}#compass .needle:after{content:"";background:linear-gradient(var(--amber),transparent);width:2px;height:18px;margin-left:-1px;position:absolute;top:18px;left:50%}#note{font-family:var(--mono);letter-spacing:.04em;color:#e7f6fb57;z-index:4;font-size:9.5px;line-height:1.6;position:absolute;bottom:20px;left:104px;right:450px}#toast{opacity:0;background:var(--panel2);border:1px solid var(--line);z-index:30;pointer-events:none;padding:10px 18px;font-size:12.5px;transition:all .35s;position:absolute;bottom:90px;left:50%;transform:translate(-50%)translateY(10px)}#toast.on{opacity:1;transform:translate(-50%)}.osd{z-index:6;font-family:var(--mono);color:var(--gold2);background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);min-width:220px;padding:12px 16px;font-size:11px;position:absolute;top:80px;left:104px}.osd b{color:var(--gold);letter-spacing:.2em;margin-bottom:8px;font-size:10px;font-weight:500;display:block}.osd div{justify-content:space-between;gap:16px;line-height:1.85;display:flex}.osd div span:first-child{color:var(--mist)}.osd .big{color:var(--cream);font-size:20px}#pano-title{z-index:6;position:absolute;top:80px;left:32px}#pano-title b{letter-spacing:.14em;text-shadow:0 2px 18px #0009;font-size:28px;font-weight:500;display:block}#pano-title small{font-family:var(--mono);letter-spacing:.2em;color:var(--gold);font-size:10.5px}#pano-strip{z-index:6;scrollbar-width:none;gap:6px;padding:6px 2px;display:flex;position:absolute;bottom:44px;left:104px;right:450px;overflow-x:auto}#pano-strip button{opacity:.62;background-position:50%;background-size:cover;border:1px solid #e7f6fb26;flex:0 0 96px;height:58px;transition:all .25s;position:relative}#pano-strip button:hover{opacity:1}#pano-strip button.on{opacity:1;border-color:var(--gold);box-shadow:0 0 0 1px var(--gold),0 0 14px #3fe4ff80}#pano-strip button span{text-align:left;white-space:nowrap;text-overflow:ellipsis;background:linear-gradient(#0000,#000000d9);padding:3px 5px;font-size:9.5px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}#pano-mini{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:6;width:300px;height:200px;position:absolute;bottom:44px;right:30px}#pano-mini canvas{cursor:pointer;width:100%;height:100%}#hotspots{pointer-events:none;z-index:4;position:absolute;inset:0}.hs{pointer-events:auto;opacity:.9;flex-direction:column;align-items:center;gap:6px;transition:opacity .25s;display:flex;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.hs i{border:1.5px solid var(--gold);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#040c1166;border-radius:50%;place-items:center;width:46px;height:46px;transition:all .2s;display:grid;box-shadow:0 0 16px #3fe4ff73}.hs i:after{content:"";border-top:2px solid var(--gold2);border-left:2px solid var(--gold2);width:10px;height:10px;transform:rotate(45deg)translate(2px,2px)}.hs span{background:var(--panel2);white-space:nowrap;opacity:0;padding:3px 9px;font-size:11px;transition:all .2s}.hs:hover i{background:var(--gold)}.hs:hover i:after{border-color:var(--ink)}.hs:hover span{opacity:1}#walk-ui .walk-head{z-index:7;flex-wrap:wrap;align-items:center;gap:8px;max-width:calc(100% - 64px);display:flex;position:absolute;top:80px;left:32px}#walk-ui .walk-head b{letter-spacing:.14em;margin-right:6px;font-size:20px;font-weight:500}#walk-dist{font-family:var(--mono);color:var(--gold2);min-width:70px;font-size:12px}#walk-ui select{background:var(--panel2);color:var(--cream);border:1px solid var(--line);font:inherit;padding:6px 10px;font-size:12px}.walk-pad{z-index:7;grid-template-rows:repeat(2,54px);grid-template-columns:repeat(3,54px);gap:6px;display:grid;position:absolute;bottom:56px;right:40px}.walk-pad button{border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--gold2);-webkit-user-select:none;user-select:none;touch-action:none;background:#040c1199;font-size:16px}.walk-pad button:active{background:var(--gold);color:var(--ink)}.walk-pad [data-k=KeyW]{grid-area:1/2}.walk-pad [data-k=KeyA]{grid-area:2/1}.walk-pad [data-k=KeyS]{grid-area:2/2}.walk-pad [data-k=KeyD]{grid-area:2/3}.walk-tip{font-family:var(--mono);letter-spacing:.12em;color:#e7f6fb8c;z-index:7;white-space:nowrap;font-size:10.5px;position:absolute;bottom:26px;left:50%;transform:translate(-50%)}#walk-mini{border:1px solid var(--line);background:var(--panel);z-index:7;width:260px;height:190px;position:absolute;top:80px;right:30px}#walk-mini canvas{cursor:crosshair;width:100%;height:100%}.reticle{z-index:5;pointer-events:none;border:1px solid #aef5ff99;border-radius:50%;width:18px;height:18px;margin:-9px 0 0 -9px;position:absolute;top:50%;left:50%}.reticle:after{content:"";background:var(--gold2);width:2px;height:2px;margin:-1px;position:absolute;top:50%;left:50%}#flight-ui{z-index:6;background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-items:center;gap:12px;padding:10px 16px;display:flex;position:absolute;bottom:50px;left:104px;right:460px}#flight-ui input{accent-color:var(--gold);flex:1}#flight-clock{font-family:var(--mono);color:var(--gold2);font-size:12px}#menu-btn{display:none}@media (width>=861px) and (height<=800px){#side{padding:22px 20px 16px}.rule{margin:16px 0 8px}#nav button{padding:7px 12px}#nav button span{font-size:13.5px}.side-foot{gap:6px;padding-top:10px}}@media (width<=860px){:root{--side:0px}#side{width:min(84vw,320px);transition:transform .4s cubic-bezier(.2,.8,.2,1);transform:translate(-102%);box-shadow:20px 0 60px #0009}body.menu #side{transform:none}#menu-btn{z-index:25;border:1px solid var(--gold);background:var(--panel2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);letter-spacing:.14em;color:var(--gold2);padding:8px 13px;font-size:12px;display:block;position:fixed;top:14px;left:14px}body.menu #menu-btn{left:calc(min(84vw,320px) + 10px)}#top{padding:16px 14px 16px 120px}.crumb i,#fps,#btn-full,#crumb-no{display:none}#crumb-name{white-space:nowrap;font-size:12.5px}#stage:after{inset:6px}.card{width:auto;max-height:44%;padding:18px 16px;inset:auto 10px 10px}.card h2{font-size:20px}#compass{width:44px;height:44px;inset:62px 14px auto auto}#compass .needle:after{height:12px;top:14px}#note{display:none}#pano-title{top:66px;left:16px}#pano-title b{font-size:21px}#pano-strip{bottom:12px;left:10px;right:10px}#pano-mini,#walk-mini{display:none}#flight-ui{inset:62px 10px auto}.osd{min-width:0;padding:8px 10px;font-size:10px;top:110px;left:10px}.walk-pad{grid-template-rows:repeat(2,48px);grid-template-columns:repeat(3,48px);bottom:28px;right:14px}#walk-ui .walk-head{top:60px;left:14px}.walk-tip{display:none}}
