:root{--ink:#0b1512;--ink2:#10201b;--moss:#1b3329;--pine:#2c4a3d;--gold:#c9a96a;--gold2:#e6d2a3;--cream:#f3ede0;--mist:#f3ede09e;--line:#c9a96a47;--glass:#0c16139e;--serif:"Noto Serif TC","Songti TC",serif;--sans:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;--side:292px}*{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-variant-numeric:tabular-nums;letter-spacing:.06em}.hidden{display:none!important}#loader{z-index:100;background:radial-gradient(at 50% 40%,#16291f 0%,#08100d 70%);place-items:center;transition:opacity 1.4s,visibility 1.4s;display:grid;position:fixed;inset:0}#loader.done{opacity:0;visibility:hidden}.loader-inner{text-align:center;width:min(420px,80vw)}.seal{border:1px solid var(--gold);width:64px;height:64px;color:var(--gold);font-family:var(--serif);letter-spacing:0;place-items:center;font-size:30px;display:inline-grid;position:relative}.seal:after{content:"";border:1px solid #c9a96a59;position:absolute;inset:4px}.seal.sm{width:42px;height:42px;font-size:20px}#loader h1{font-family:var(--serif);letter-spacing:.32em;margin:28px 0 10px;padding-left:.32em;font-size:26px;font-weight:500}#loader .en{letter-spacing:.42em;color:var(--mist);font-size:10px}.bar{background:#f3ede01f;height:1px;margin:36px 0 14px;overflow:hidden}.bar i{background:linear-gradient(90deg,transparent,var(--gold2),var(--gold));width:0;height:100%;transition:width .4s;display:block}#loader small{letter-spacing:.2em;color:var(--mist);font-size:11px}#side{width:var(--side);z-index:20;border-right:1px solid var(--line);background:linear-gradient(#0b1512f7,#09110efb);flex-direction:column;padding:34px 26px 24px;display:flex;position:fixed;top:0;bottom:0;left:0}.brand{color:var(--cream);align-items:center;gap:14px;display:flex}.brand-text b{font-family:var(--serif);letter-spacing:.24em;font-size:19px;font-weight:600;display:block}.brand-text small{letter-spacing:.3em;color:var(--mist);font-size:10.5px}.rule{background:linear-gradient(90deg,var(--gold),transparent);opacity:.6;height:1px;margin:28px 0 18px}#nav{flex-direction:column;flex:1;gap:2px;display:flex;overflow:auto}#nav button{text-align:left;color:#f3ede0b8;border-radius:2px;align-items:center;gap:16px;padding:13px 12px;transition:background .3s,color .3s;display:flex;position:relative}#nav button em{letter-spacing:.12em;color:#c9a96a99;width:18px;font-size:10px;font-style:normal}#nav button span{font-family:var(--serif);letter-spacing:.2em;flex-direction:column;gap:3px;font-size:15.5px;display:flex}#nav button small{font-family:var(--sans);letter-spacing:.34em;color:#f3ede05c;font-size:9px}#nav button:hover{color:var(--cream);background:#c9a96a0f}#nav button.on{color:var(--gold2);background:linear-gradient(90deg,#c9a96a29,#c9a96a00)}#nav button.on:before{content:"";background:var(--gold);width:2px;position:absolute;top:10px;bottom:10px;left:0}#nav button.on em{color:var(--gold)}.side-foot{border-top:1px solid #c9a96a29;flex-direction:column;gap:9px;padding-top:18px;display:flex}.side-foot a{letter-spacing:.06em;border-bottom:1px dotted #e6d2a366;align-self:flex-start;padding-bottom:2px;font-size:12px}.side-foot small{color:#f3ede06b;letter-spacing:.1em;font-size:10.5px}.tod{gap:6px;margin-bottom:6px;display:flex}.tod button{font-family:var(--serif);color:#f3ede099;border:1px solid #c9a96a40;flex:1;padding:7px 0;font-size:13px;transition:all .3s}.tod button.on{background:var(--gold);color:var(--ink);border-color:var(--gold)}#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 52% 48%,#0000 52%,#050a088c 100%);position:absolute;inset:0}.grain{pointer-events:none;opacity:.07;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");animation:1.2s steps(6,end) infinite grain;position:absolute;inset:-50%}@keyframes grain{0%{transform:translate(0)}33%{transform:translate(-3%,2%)}66%{transform:translate(2%,-3%)}to{transform:translate(0)}}#top{pointer-events:none;z-index:5;background:linear-gradient(#060c0a8c,#0000);justify-content:space-between;align-items:center;padding:22px 30px;display:flex;position:absolute;top:0;left:0;right:0}#top>*{pointer-events:auto}.crumb{letter-spacing:.34em;color:var(--mist);align-items:center;gap:12px;font-size:11px;display:flex}.crumb i{background:var(--gold);opacity:.7;width:44px;height:1px}#crumb-no{color:var(--gold)}#crumb-name{font-family:var(--serif);color:var(--cream);letter-spacing:.3em;font-size:14px}.top-tools{align-items:center;gap:8px;display:flex}#fps{color:#f3ede061;margin-right:6px;font-size:10px}.chip{letter-spacing:.16em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a141080;border:1px solid #c9a96a59;padding:7px 14px;font-size:11.5px;transition:all .25s}.chip:hover{border-color:var(--gold)}.chip.on{color:var(--ink);border-color:var(--gold);background:#c9a96ae6}.card{z-index:6;background:var(--glass);-webkit-backdrop-filter:blur(18px)saturate(1.2);scrollbar-width:thin;border:1px solid #c9a96a38;width:380px;max-height:calc(100% - 170px);padding:28px 28px 24px;transition:opacity .6s,transform .6s;position:absolute;top:84px;right:28px;overflow:auto}.card.out{opacity:0;pointer-events:none;transform:translate(16px)}.card .kicker{letter-spacing:.42em;color:var(--gold);font-size:9.5px}.card h2{font-family:var(--serif);letter-spacing:.14em;margin:10px 0 14px;font-size:27px;font-weight:500;line-height:1.35}.card p{color:#f3ede0c7;letter-spacing:.04em;font-size:13px;line-height:1.95}.card .lead{font-family:var(--serif);color:var(--cream);font-size:14.5px}.card hr{background:linear-gradient(90deg,var(--line),transparent);border:0;height:1px;margin:18px 0}.stats{background:#c9a96a2e;border:1px solid #c9a96a2e;grid-template-columns:1fr 1fr;gap:1px;margin:18px 0 6px;display:grid}.stats div{background:#0a1310db;padding:13px 14px}.stats b{font-family:var(--serif);color:var(--gold2);letter-spacing:.02em;font-size:22px;font-weight:500;display:block}.stats b sup{color:var(--mist);margin-left:2px;font-size:11px}.stats span{letter-spacing:.18em;color:#f3ede080;font-size:10.5px}.list{flex-direction:column;gap:2px;margin-top:10px;display:flex}.list button{text-align:left;letter-spacing:.06em;background:#ffffff05;border-left:2px solid #0000;justify-content:space-between;align-items:center;gap:10px;padding:11px 12px;font-size:13px;transition:all .25s;display:flex}.list button:hover{background:#c9a96a14}.list button.on{border-left-color:var(--gold);color:var(--gold2);background:#c9a96a1f}.list button small{color:#f3ede073;white-space:nowrap;font-size:10.5px}.cta{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.btn{border:1px solid var(--gold);letter-spacing:.24em;color:var(--gold2);align-items:center;gap:8px;padding:11px 18px;font-size:12px;transition:all .3s;display:inline-flex}.btn:hover{background:#c9a96a24}.btn.solid{background:var(--gold);color:var(--ink)}.btn.solid:hover{background:var(--gold2)}.tbl{border-collapse:collapse;width:100%;margin-top:8px;font-size:12.5px}.tbl th,.tbl td{text-align:left;border-bottom:1px solid #c9a96a24;padding:9px 6px;font-weight:400}.tbl th{letter-spacing:.2em;color:var(--gold);font-size:10px}.tbl td.r,.tbl th.r{text-align:right;font-variant-numeric:tabular-nums}.tbl tr.sum td{color:var(--gold2);font-family:var(--serif);border-bottom:0}.tbl tr[data-parcel]{cursor:pointer}.tbl tr[data-parcel]:hover td{background:#c9a96a12}.fine{color:#f3ede075!important;font-size:11px!important;line-height:1.8!important}.toggles{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}#labels{pointer-events:none;z-index:3;position:absolute;inset:0}.lbl{will-change:transform;flex-direction:column;align-items:center;transition:opacity .35s;display:flex;position:absolute;top:0;left:0;transform:translate(-50%,-100%)}.lbl .t{font-family:var(--serif);letter-spacing:.16em;white-space:nowrap;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#09110eb8;border:1px solid #c9a96a66;padding:5px 11px;font-size:12.5px}.lbl .t small{font-family:var(--sans);letter-spacing:.2em;color:var(--gold);margin-top:1px;font-size:9px;display:block}.lbl .s{background:linear-gradient(var(--gold),transparent);width:1px;height:26px}.lbl .d{background:var(--gold);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #c9a96a38,0 0 14px #e6d2a3cc}.lbl.parcel .t{color:var(--ink);border-color:var(--gold2);background:#c9a96aeb;font-weight:600}.lbl.parcel .t small{color:var(--ink2)}.lbl.minor .t{opacity:.82;font-size:11px}.lbl.pick{pointer-events:auto;cursor:pointer}.lbl.pick:hover .t{border-color:var(--gold2);color:var(--gold2)}#compass{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:4;background:#0a131080;border:1px solid #c9a96a66;border-radius:50%;width:58px;height:58px;position:absolute;bottom:60px;left:28px}#compass .needle{justify-items:center;display:grid;position:absolute;inset:0}#compass .needle b{font-family:var(--serif);color:var(--gold);margin-top:3px;font-size:12px;font-weight:500}#compass .needle:after{content:"";background:linear-gradient(var(--gold),transparent);width:2px;height:18px;margin-left:-1px;position:absolute;top:18px;left:50%}#note{letter-spacing:.08em;color:#f3ede05c;z-index:4;font-size:10px;line-height:1.6;position:absolute;bottom:20px;left:100px;right:430px}#toast{opacity:0;border:1px solid var(--line);letter-spacing:.08em;z-index:30;pointer-events:none;background:#0a1310e6;padding:10px 18px;font-size:12.5px;transition:all .4s;position:absolute;bottom:90px;left:50%;transform:translate(-50%)translateY(10px)}#toast.on{opacity:1;transform:translate(-50%)}#pano-title{z-index:6;position:absolute;top:84px;left:30px}#pano-title b{font-family:var(--serif);letter-spacing:.16em;text-shadow:0 2px 18px #00000080;font-size:30px;font-weight:500;display:block}#pano-title small{letter-spacing:.3em;color:var(--gold2);font-size:11px}#pano-strip{z-index:6;scrollbar-width:none;gap:6px;padding:6px 2px;display:flex;position:absolute;bottom:46px;left:100px;right:430px;overflow-x:auto}#pano-strip button{opacity:.66;background-position:50%;background-size:cover;border:1px solid #f3ede026;flex:0 0 96px;height:58px;transition:all .3s;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)}#pano-strip button span{letter-spacing:.08em;text-align:left;white-space:nowrap;text-overflow:ellipsis;background:linear-gradient(#0000,#000c);padding:3px 5px;font-size:9.5px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}#pano-mini{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:6;background:#0a1310b8;border:1px solid #c9a96a4d;width:300px;height:200px;position:absolute;bottom:46px;right:28px}#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 .3s;display:flex;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.hs i{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a131059;border:1.5px solid #f3ede0e6;border-radius:50%;place-items:center;width:46px;height:46px;transition:all .25s;display:grid;box-shadow:0 4px 20px #00000059}.hs i:after{content:"";border-top:2px solid var(--cream);border-left:2px solid var(--cream);width:10px;height:10px;transform:rotate(45deg)translate(2px,2px)}.hs span{letter-spacing:.12em;white-space:nowrap;opacity:0;background:#0a1310bf;padding:3px 9px;font-size:11px;transition:all .25s}.hs:hover i{background:var(--gold);border-color:var(--gold)}.hs:hover span{opacity:1}#walk-ui .walk-head{z-index:7;flex-wrap:wrap;align-items:center;gap:10px;display:flex;position:absolute;top:84px;left:30px}#walk-ui .walk-head b{font-family:var(--serif);letter-spacing:.16em;margin-right:6px;font-size:22px;font-weight:500}#walk-dist{color:var(--gold2);letter-spacing:.1em;min-width:62px;font-size:12px}#walk-ui select{color:var(--cream);font:inherit;background:#0a1310b3;border:1px solid #c9a96a59;padding:7px 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:60px;right:40px}.walk-pad button{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--gold2);-webkit-user-select:none;user-select:none;touch-action:none;background:#0a131099;border:1px solid #c9a96a66;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{letter-spacing:.18em;color:#f3ede08c;z-index:7;font-size:11px;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}#flight-ui{z-index:6;background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid #c9a96a38;align-items:center;gap:14px;padding:10px 16px;display:flex;position:absolute;bottom:52px;left:100px;right:440px}#flight-ui input{accent-color:var(--gold);flex:1}#flight-clock{color:var(--gold2);font-size:12px}.legend{flex-direction:column;gap:8px;margin-top:12px;font-size:12.5px;display:flex}.legend i{vertical-align:middle;border-radius:2px;width:28px;height:3px;margin-right:10px;display:inline-block}#menu-btn{display:none}@media (width<=860px){:root{--side:0px}#side{width:min(84vw,320px);transition:transform .45s cubic-bezier(.2,.8,.2,1);transform:translate(-102%);box-shadow:20px 0 60px #00000080}body.menu #side{transform:none}#menu-btn{z-index:25;border:1px solid var(--gold);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);letter-spacing:.18em;color:var(--gold2);background:#0a1310cc;padding:9px 14px;font-size:12px;display:block;position:fixed;top:14px;left:14px}#top{padding:16px 14px 16px 120px}.crumb i,#fps,#btn-full,#crumb-no{display:none}body.menu #menu-btn{left:calc(min(84vw,320px) + 10px)}#crumb-name{white-space:nowrap;font-size:12.5px}.card{width:auto;max-height:44%;padding:20px 18px;inset:auto 12px 12px}.card h2{font-size:21px}#compass{width:44px;height:44px;inset:66px 14px auto auto}#compass .needle:after{height:12px;top:14px}#note{display:none}#pano-title{top:70px;left:16px}#pano-title b{font-size:22px}#pano-strip{bottom:14px;left:12px;right:12px}#pano-mini{display:none}#flight-ui{inset:66px 12px auto}.walk-pad{grid-template-rows:repeat(2,48px);grid-template-columns:repeat(3,48px);bottom:30px;right:16px}#walk-ui .walk-head{top:62px;left:14px}.walk-tip{display:none}}@media (width>=861px) and (height<=800px){#side{padding:24px 22px 18px}.rule{margin:18px 0 10px}#nav button{padding:8px 12px}#nav button span{font-size:14.5px}.side-foot{gap:6px;padding-top:12px}}
