:root{--bg:#0a0e13;--panel:#0d1218eb;--panel-2:#141b24f0;--line:#d8b45a38;--line-soft:#ffffff14;--gold:#d8b45a;--gold-dim:#9d8340;--ink:#ece6da;--ink-dim:#9aa6b2;--accent:#6fb2d2;--shadow:0 18px 48px #0000008c;--radius:14px;--sans:"PingFang TC", "Microsoft JhengHei", "Noto Sans TC", "Microsoft YaHei", "Hiragino Sans GB", system-ui, -apple-system, "Segoe UI", sans-serif;--serif:"Songti TC", "Noto Serif TC", "Source Han Serif TC", "PMingLiU", "MingLiU", "SimSun", Georgia, serif}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;overflow:hidden}#map{background:#0a0e13;position:fixed;inset:0}.maplibregl-canvas{outline:none}.maplibregl-ctrl-attrib,.maplibregl-ctrl-bottom-right{display:none!important}canvas:focus{outline:none}#boot{z-index:90;background:radial-gradient(120% 90% at 50% 20%,#16202c 0%,#070a0e 70%);place-items:center;transition:opacity .6s,visibility .6s;display:grid;position:fixed;inset:0}#boot.gone{opacity:0;visibility:hidden}.boot-card{text-align:center;padding:40px 46px}.boot-mark{color:var(--gold);margin-bottom:10px}.boot-card h1{font-family:var(--serif);letter-spacing:.16em;margin:6px 0 4px;font-size:30px;font-weight:600}.boot-sub{color:var(--ink-dim);letter-spacing:.08em;margin:0 0 22px;font-size:13px}.boot-bar{background:#ffffff1a;border-radius:2px;width:240px;height:2px;margin:0 auto;overflow:hidden}.boot-bar i{background:linear-gradient(90deg, var(--gold-dim), var(--gold));width:0%;height:100%;transition:width .3s;display:block}.boot-status{color:var(--ink-dim);letter-spacing:.04em;min-height:16px;margin-top:14px;font-size:12px}.topbar{z-index:30;pointer-events:none;justify-content:space-between;align-items:center;padding:12px 16px;display:flex;position:fixed;top:0;left:0;right:0}.topbar>*{pointer-events:auto}.topbar-identity{align-items:center;gap:10px;display:flex}.gaussian-entry{border:1px solid var(--gold);background:var(--panel);min-height:44px;color:var(--gold);white-space:nowrap;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow);border-radius:999px;justify-content:center;align-items:center;gap:7px;padding:9px 13px;font-size:14px;font-weight:600;text-decoration:none;transition:background .2s,border-color .2s;display:inline-flex}.gaussian-entry:hover{background:var(--panel-2);border-color:var(--ink)}.gaussian-entry:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.brand{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:10px;padding:8px 14px 8px 12px;display:flex}.brand-mark{color:var(--gold);place-items:center;display:grid}.brand-text{flex-direction:column;line-height:1.15;display:flex}.brand-text strong{font-family:var(--serif);letter-spacing:.12em;font-size:15px;font-weight:600}.brand-text small{color:var(--ink-dim);letter-spacing:.16em;text-transform:uppercase;font-size:10px}.topbar-actions{gap:8px;display:flex}.icon-btn{background:var(--panel);border:1px solid var(--line);width:36px;height:36px;color:var(--ink);cursor:pointer;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow);font-size:13px;font-family:var(--sans);border-radius:50%;place-items:center;transition:border-color .2s,color .2s,transform .15s;display:grid}.icon-btn:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-1px)}.icon-btn.sm{width:28px;height:28px;box-shadow:none;background:0 0;border-color:#0000}.icon-btn.sm:hover{border-color:var(--line-soft)}.controls{z-index:25;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);width:186px;box-shadow:var(--shadow);padding:14px 14px 12px;display:none;position:fixed;top:62px;right:16px}.controls.open{display:block}.controls h4{letter-spacing:.18em;color:var(--gold);text-transform:uppercase;margin:0 0 10px;font-size:11px;font-weight:600}.sw{color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:5px 0;font-size:12.5px;display:flex}.sw input{appearance:none;cursor:pointer;background:#ffffff21;border-radius:999px;flex:none;width:30px;height:16px;transition:background .2s;position:relative}.sw input:after{content:"";background:#cfd6dd;border-radius:50%;width:12px;height:12px;transition:transform .2s,background .2s;position:absolute;top:2px;left:2px}.sw input:checked{background:#d8b45a57}.sw input:checked:after{background:var(--gold);transform:translate(14px)}.range-row{border-top:1px solid var(--line-soft);color:var(--ink-dim);align-items:center;gap:8px;margin-top:10px;padding-top:10px;font-size:11.5px;display:flex}.range-row input[type=range]{accent-color:var(--gold);flex:1;height:3px}.range-row output{text-align:right;width:34px;color:var(--ink);font-variant-numeric:tabular-nums}.ghost-btn{border:1px solid var(--line);width:100%;color:var(--gold);cursor:pointer;font-size:12px;font-family:var(--sans);letter-spacing:.06em;background:#d8b45a1a;border-radius:9px;margin-top:10px;padding:8px}.ghost-btn:hover{background:#d8b45a33}.sidebar{z-index:26;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);width:296px;box-shadow:var(--shadow);flex-direction:column;transition:transform .38s cubic-bezier(.22,.9,.24,1);display:flex;position:fixed;top:62px;bottom:74px;left:16px;overflow:hidden;transform:translate(-116%)}.sidebar.open{transform:none}.sidebar-head{align-items:center;gap:6px;padding:12px 10px 8px 12px;display:flex}#search{border:1px solid var(--line-soft);color:var(--ink);font-size:13px;font-family:var(--sans);background:#ffffff0f;border-radius:9px;outline:none;flex:1;padding:8px 10px}#search:focus{border-color:var(--gold)}#search::placeholder{color:#6f7c89}.chips{flex-wrap:wrap;gap:5px;padding:4px 12px 10px;display:flex}.chip{border:1px solid var(--line-soft);color:var(--ink-dim);cursor:pointer;font-size:11px;font-family:var(--sans);background:0 0;border-radius:999px;padding:4px 9px;transition:all .18s}.chip:hover{color:var(--ink);border-color:var(--line)}.chip.on{border-color:var(--gold);color:var(--gold);background:#d8b45a29}.list{scrollbar-width:thin;scrollbar-color:#ffffff2e transparent;flex:1;padding:2px 8px 12px;overflow-y:auto}.list::-webkit-scrollbar{width:8px}.list::-webkit-scrollbar-thumb{background:#ffffff29;border-radius:4px}.item{text-align:left;width:100%;color:inherit;cursor:pointer;font-family:var(--sans);background:0 0;border:1px solid #0000;border-radius:10px;align-items:flex-start;gap:10px;padding:9px 10px;transition:background .18s,border-color .18s;display:flex}.item:hover{border-color:var(--line-soft);background:#ffffff0d}.item.on{border-color:var(--line);background:#d8b45a1f}.item-dot{color:#0e1319;border-radius:7px;flex:none;place-items:center;width:22px;height:22px;margin-top:1px;display:grid}.item-dot svg{width:14px;height:14px}.item-main{min-width:0}.item-name{align-items:center;gap:6px;font-size:13.5px;display:flex}.item-name .tag3d{color:var(--accent);letter-spacing:.04em;background:#6fb2d233;border:1px solid #6fb2d259;border-radius:5px;flex:none;padding:1px 5px;font-size:9px}.item-brief{color:var(--ink-dim);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:3px;font-size:11.5px;line-height:1.45;display:-webkit-box;overflow:hidden}.sidebar-foot{border-top:1px solid var(--line-soft);color:var(--ink-dim);padding:9px 14px;font-size:10.5px;line-height:1.6}.detail{z-index:28;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);width:min(378px,100vw - 32px);box-shadow:var(--shadow);flex-direction:column;transition:transform .4s cubic-bezier(.22,.9,.24,1);display:flex;position:fixed;top:62px;bottom:74px;right:16px;overflow:hidden;transform:translate(116%)}.detail.open{transform:none}.detail-close{z-index:3;border:1px solid var(--line-soft);width:30px;height:30px;color:var(--ink);cursor:pointer;background:#00000073;border-radius:50%;place-items:center;display:grid;position:absolute;top:10px;right:10px}.detail-close:hover{color:var(--gold);border-color:var(--line)}.detail-body{scrollbar-width:thin;scrollbar-color:#ffffff2e transparent;padding:18px 20px 22px;overflow-y:auto}.detail-body::-webkit-scrollbar{width:8px}.detail-body::-webkit-scrollbar-thumb{background:#ffffff29;border-radius:4px}.d-hero{border-bottom:1px solid var(--line-soft);background:linear-gradient(140deg,#d8b45a38,#0a0e131a 60%);place-items:center;height:86px;margin:-18px -20px 14px;display:grid;position:relative}.d-hero svg{color:#d8b45ad9;width:44px;height:44px}.d-cat{letter-spacing:.14em;color:var(--gold);text-transform:uppercase;font-size:11px}.d-title{font-family:var(--serif);letter-spacing:.04em;margin:5px 0 3px;font-size:22px;font-weight:600;line-height:1.3}.d-sub{color:var(--ink-dim);letter-spacing:.02em;margin-bottom:12px;font-size:12px}.d-brief{color:#dfe6ed;border-left:2px solid var(--gold);background:#d8b45a12;border-radius:0 8px 8px 0;margin-bottom:14px;padding:11px 13px;font-size:13.5px;line-height:1.75}.d-detail{color:#c3ccd6;white-space:pre-line;font-size:13px;line-height:1.95}.d-detail p{margin:0 0 10px}.d-facts{margin:14px 0 0;padding:0;list-style:none}.d-facts li{color:var(--ink-dim);margin-bottom:5px;padding-left:15px;font-size:12px;line-height:1.7;position:relative}.d-facts li:before{content:"";background:var(--gold-dim);border-radius:50%;width:5px;height:5px;position:absolute;top:9px;left:0}.d-actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.btn{font-size:12.5px;font-family:var(--sans);cursor:pointer;border:1px solid var(--line);color:var(--gold);letter-spacing:.04em;background:#d8b45a1f;border-radius:9px;padding:9px 14px;transition:all .18s}.btn:hover{background:#d8b45a38}.btn.sec{color:var(--ink);border-color:var(--line-soft);background:#ffffff0d}.btn.sec:hover{border-color:var(--line);color:var(--gold)}.d-museum-note{color:#bcd4e4;background:#6fb2d214;border:1px solid #6fb2d238;border-radius:10px;margin-top:18px;padding:12px 13px;font-size:12px;line-height:1.7}.d-section{margin-top:20px}.o-section .o-row{border-top:1px solid var(--line-soft);grid-template-columns:64px 1fr;gap:8px;padding:7px 0;font-size:12.5px;line-height:1.6;display:grid}.o-section .o-label{color:var(--ink-dim);letter-spacing:.06em}.o-section .o-links{flex-direction:column;gap:2px;display:flex}.o-section .o-links a{color:var(--ink);border-bottom:1px solid #0000;width:-moz-fit-content;width:fit-content;text-decoration:none}.o-section .o-links a:hover{color:var(--gold);border-color:var(--gold)}.o-section .o-conflict{color:var(--gold);border-left:2px solid var(--gold);background:#d8b45a14;margin-top:8px;padding:8px 10px;font-size:12px;line-height:1.6}.o-section .o-foot{color:var(--ink-dim);margin:8px 0 0;font-size:11px}.d-section h3{letter-spacing:.16em;color:var(--gold);text-transform:uppercase;margin:0 0 10px;font-size:12px;font-weight:600}.artifact{border:1px solid var(--line-soft);cursor:pointer;background:#ffffff09;border-radius:11px;gap:12px;margin-bottom:9px;padding:11px;transition:all .18s;display:flex}.artifact:hover{border-color:var(--line);background:#d8b45a14;transform:translateY(-1px)}.artifact-ico{width:46px;height:46px;color:var(--gold);background:linear-gradient(150deg,#d8b45a38,#6fb2d21f);border-radius:9px;flex:none;place-items:center;display:grid}.artifact-ico svg{width:24px;height:24px}.artifact-main{min-width:0}.artifact-name{font-size:13.5px;line-height:1.4}.artifact-era{color:var(--gold-dim);margin-top:2px;font-size:11px}.artifact-brief{color:var(--ink-dim);margin-top:4px;font-size:11.5px;line-height:1.5}.pill{vertical-align:1px;border-radius:999px;margin-left:6px;padding:1px 6px;font-size:10px;display:inline-block}.pill.on{color:var(--accent);background:#6fb2d22e;border:1px solid #6fb2d259}.pill.off{color:var(--ink-dim);border:1px solid var(--line-soft);background:#ffffff0f}.poi-chips{border-top:1px solid var(--line-soft);flex-wrap:wrap;gap:4px;margin-top:7px;padding-top:8px;display:flex}.poi-chip{border:1px solid var(--line-soft);color:var(--ink-dim);cursor:pointer;font-size:10.5px;font-family:var(--sans);background:0 0;border-radius:999px;padding:3px 7px;transition:all .15s}.poi-chip:hover{border-color:var(--line);color:var(--ink)}.poi-chip.off{opacity:.38;text-decoration:line-through}.poi-dot{vertical-align:1px;border-radius:50%;width:6px;height:6px;margin-right:3px;display:inline-block}.marker{z-index:2;cursor:pointer;transform-origin:50% 100%;background:0 0;border:none;flex-direction:column;align-items:center;margin:0;padding:0;display:flex;position:absolute;top:0;left:0}.marker-pin{background:var(--c,#d8b45a);border:1.5px solid #080b0fb8;border-radius:50% 50% 50% 6px;place-items:center;width:26px;height:26px;transition:transform .2s;display:grid;transform:rotate(-45deg);box-shadow:0 5px 14px #0000008c}.marker-pin svg{color:#10151b;width:14px;height:14px;transform:rotate(45deg)}.marker:hover .marker-pin{transform:rotate(-45deg)scale(1.16)}.marker.on .marker-pin{box-shadow:0 0 0 3px #d8b45a8c,0 6px 18px #0009}.marker-label{color:#eee7db;white-space:nowrap;opacity:0;pointer-events:none;letter-spacing:.02em;background:#090d12db;border:1px solid #d8b45a38;border-radius:7px;margin-top:3px;padding:2px 7px;font-size:11px;transition:opacity .2s,transform .2s;transform:translateY(-3px)scale(.96)}.marker:hover .marker-label,.marker.on .marker-label{opacity:1;transform:none}.marker.show-label .marker-label{opacity:.92;transform:none}.marker-badge{background:var(--accent);color:#08111a;border:1.5px solid #080b0fb3;border-radius:50%;place-items:center;width:14px;height:14px;font-size:9px;font-weight:700;display:grid;position:absolute;top:-5px;right:-5px}.maplibregl-popup-content{border:1px solid var(--line);color:var(--ink);font-family:var(--sans);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0b0f14f0;border-radius:10px;padding:8px 12px;font-size:12px}.maplibregl-popup-tip{border-top-color:#0b0f14f0!important;border-bottom-color:#0b0f14f0!important}.hud{z-index:24;background:var(--panel);border:1px solid var(--line-soft);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:var(--ink-dim);min-width:156px;box-shadow:var(--shadow);border-radius:10px;gap:3px;padding:9px 12px;font-size:11px;display:grid;position:fixed;bottom:16px;right:16px}.hud-row{justify-content:space-between;gap:10px;display:flex}.hud-k{color:#6f7c89}.hud-v{color:var(--ink);font-variant-numeric:tabular-nums}.credits{z-index:24;max-width:min(560px,100vw - 200px);position:fixed;bottom:16px;left:16px}.credits-toggle{background:var(--panel);border:1px solid var(--line-soft);color:var(--ink-dim);cursor:pointer;font-size:10.5px;font-family:var(--sans);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:8px;padding:5px 10px}.credits-toggle:hover{color:var(--gold);border-color:var(--line)}.credits-body{background:var(--panel);border:1px solid var(--line-soft);color:var(--ink-dim);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow);border-radius:10px;margin-top:7px;padding:11px 13px;font-size:11px;line-height:1.85;display:none}.credits.open .credits-body{display:block}.credits-body a{color:var(--accent);text-decoration:none}.credits-body b{color:var(--ink);font-weight:500}.viewer{z-index:60;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#040609c7;place-items:center;display:none;position:fixed;inset:0}.viewer.open{display:grid}.viewer-panel{border:1px solid var(--line);background:linear-gradient(#10161d,#0a0e13);border-radius:18px;flex-direction:column;width:min(1080px,100vw - 36px);height:min(760px,100vh - 36px);display:flex;overflow:hidden;box-shadow:0 30px 80px #000000b3}.viewer-head{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:flex-start;gap:14px;padding:15px 18px 12px;display:flex}.viewer-title h2{font-family:var(--serif);letter-spacing:.05em;margin:0;font-size:19px;font-weight:600}.viewer-title p{color:var(--ink-dim);letter-spacing:.04em;margin:4px 0 0;font-size:11.5px}.viewer-main{flex:1;min-height:0;display:flex}.viewer-stage{background:radial-gradient(80% 70% at 50% 30%,#1a2430 0%,#0a0e13 72%);flex:auto;min-width:0;position:relative}.viewer-side{border-left:1px solid var(--line-soft);background:#0a0e13b8;flex:none;width:372px;display:flex;overflow:hidden}.viewer-side-inner{scrollbar-width:thin;scrollbar-color:#ffffff2e transparent;width:100%;padding:16px 18px 20px;overflow-y:auto}.viewer-side-inner::-webkit-scrollbar{width:8px}.viewer-side-inner::-webkit-scrollbar-thumb{background:#ffffff29;border-radius:4px}.viewer-side h3{letter-spacing:.16em;color:var(--gold);text-transform:uppercase;margin:18px 0 8px;font-size:11.5px;font-weight:600}.viewer-side h3:first-child{margin-top:0}.viewer-side .v-title{font-family:var(--serif);letter-spacing:.04em;margin:0 0 4px;font-size:19px;line-height:1.4}.viewer-side .v-sub{color:var(--ink-dim);margin-bottom:12px;font-size:11.5px}.viewer-side .desc{color:#c3ccd6;white-space:pre-line;margin-bottom:4px;font-size:13px;line-height:1.9}.viewer-side .fact-grid{gap:7px;display:grid}.viewer-side .fact{color:var(--ink-dim);font-size:12px;line-height:1.65}.viewer-side .fact b{color:var(--ink);font-weight:500}.viewer-side .fact-list{margin:0;padding:0;list-style:none}.viewer-side .fact-list li{color:var(--ink-dim);padding-left:15px;font-size:12px;line-height:1.75;position:relative}.viewer-side .fact-list li:before{content:"";background:var(--gold-dim);border-radius:50%;width:5px;height:5px;position:absolute;top:9px;left:0}@media (max-width:860px){.viewer-main{flex-direction:column}.viewer-side{border-left:none;border-top:1px solid var(--line-soft);width:auto;max-height:44%}}#viewer-canvas{touch-action:none;width:100%;height:100%;display:block}.viewer-tools{flex-direction:column;gap:8px;display:flex;position:absolute;bottom:14px;right:14px}.tool-btn{border:1px solid var(--line-soft);width:38px;height:38px;color:var(--ink-dim);cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0e1319d1;border-radius:11px;place-items:center;transition:all .18s;display:grid}.tool-btn:hover{color:var(--gold);border-color:var(--line)}.tool-btn.on{color:#0d1117;background:var(--gold);border-color:var(--gold)}.viewer-badge{color:var(--ink-dim);border:1px solid var(--line-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0e1319cc;border-radius:8px;padding:5px 10px;font-size:11px;line-height:1.5;position:absolute;top:14px;left:14px}.viewer-loading{text-align:center;background:#080b0fb8;place-content:center;justify-items:center;gap:12px;display:grid;position:absolute;inset:0}.viewer-loading.gone{display:none}.viewer-loading p{color:var(--ink-dim);letter-spacing:.05em;margin:0;font-size:12.5px}.viewer-loading .bar{background:#ffffff1a;border-radius:2px;width:210px;height:2px;overflow:hidden}.viewer-loading .bar i{background:var(--gold);width:0;height:100%;transition:width .25s;display:block}.ring{border:2px solid #d8b45a33;border-top-color:var(--gold);border-radius:50%;width:34px;height:34px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toast{z-index:80;border:1px solid var(--line);color:var(--ink);opacity:0;pointer-events:none;box-shadow:var(--shadow);background:#0c1117f2;border-radius:10px;padding:10px 16px;font-size:12.5px;transition:all .3s;position:fixed;bottom:34px;left:50%;transform:translate(-50%,20px)}.toast.on{opacity:1;transform:translate(-50%)}@media (max-width:760px){.topbar{flex-wrap:wrap;gap:8px}.topbar-identity{justify-content:space-between;gap:6px;width:100%}.topbar-actions{gap:6px;margin-left:auto}.topbar-actions .icon-btn{width:34px;height:34px}.gaussian-entry{padding:9px 10px}.sidebar{width:calc(100vw - 32px);top:112px;bottom:60px}.detail{width:calc(100vw - 32px);top:58px;bottom:60px}.credits{max-width:calc(100vw - 190px)}.hud{display:none}.controls{top:112px}}.marker.editable .marker-pin{cursor:grab;box-shadow:0 0 0 2px #6fb2d2bf,0 6px 18px #0009}.marker.moved .marker-pin{background:#6fb2d2!important}.marker.moved .marker-label:after{content:" · 已校正";color:#6fb2d2;font-size:10px}.editbar{z-index:40;border:1px solid var(--accent);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0d1218f5;border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;max-width:min(1080px,100vw - 32px);padding:10px 14px;display:none;position:fixed;top:74px;left:50%;transform:translate(-50%,-18px)}.editbar.on{display:flex;transform:translate(-50%)}.editbar-tip{color:var(--ink-dim);flex:320px;font-size:12px;line-height:1.6}.editbar-count{color:var(--accent);white-space:nowrap;font-size:12px}.editbar .btn{padding:7px 12px;font-size:12px}.gps{z-index:3;pointer-events:none;position:absolute;top:0;left:0}.gps-dot{background:#3d8bfd;border:2.5px solid #fff;border-radius:50%;width:16px;height:16px;position:relative;box-shadow:0 2px 8px #0000008c}.gps-halo{background:#3d8bfd2e;border:1px solid #3d8bfd73;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gps-heading{border-bottom:10px solid #3d8bfd;border-left:5px solid #0000;border-right:5px solid #0000;width:0;height:0;margin-left:-5px;display:none;position:absolute;top:-12px;left:50%}.icon-btn.on{color:#3d8bfd;border-color:#3d8bfd;box-shadow:0 0 0 2px #3d8bfd40}.icon-btn.following{color:#06121f;background:#3d8bfd;border-color:#3d8bfd}.dist-row{color:var(--accent);align-items:center;gap:6px;margin-top:6px;font-size:12px;display:flex}.dist-row .dist-dot{background:#3d8bfd;border-radius:50%;width:8px;height:8px}.near-chip{align-items:center;gap:4px;display:inline-flex}.item-dist{color:var(--accent);white-space:nowrap;margin-left:6px;font-size:10.5px}.recenter-fab{z-index:27;border:1px solid var(--gold);color:var(--gold);font-size:12.5px;font-family:var(--sans);letter-spacing:.06em;cursor:pointer;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow);opacity:0;background:#0d1218f0;border-radius:999px;align-items:center;gap:7px;padding:9px 15px;transition:opacity .25s,transform .25s;display:none;position:fixed;bottom:26px;left:50%;transform:translate(-50%,24px)}.recenter-fab.on{opacity:1;display:inline-flex;transform:translate(-50%)}.recenter-fab:hover{background:#d8b45a29}.icon-btn.active{border-color:var(--gold);color:var(--gold)}.navbar{z-index:32;border:1px solid var(--gold);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);width:min(700px,100vw - 32px);box-shadow:var(--shadow);opacity:0;background:#0b1016f2;border-radius:16px;transition:transform .4s cubic-bezier(.22,.9,.24,1),opacity .3s;position:fixed;bottom:20px;left:50%;transform:translate(-50%,130%)}.navbar.on{opacity:1;transform:translate(-50%)}.nav-head{align-items:center;gap:12px;padding:12px 14px;display:flex}.nav-pin{filter:drop-shadow(0 0 8px #ffd16699);font-size:20px}.nav-info{flex:1;min-width:0}.nav-dest{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.nav-eta{color:var(--gold);font-variant-numeric:tabular-nums;margin-top:2px;font-size:13px}.nav-modes{background:#ffffff0d;border-radius:10px;gap:4px;padding:3px;display:flex}.nav-mode{color:var(--ink-dim);cursor:pointer;font-size:12px;font-family:var(--sans);background:0 0;border:none;border-radius:8px;padding:6px 10px}.nav-mode.on{background:var(--gold);color:#14171c;font-weight:600}.nav-btn{padding:7px 12px;font-size:12px}.nav-steps{border-top:1px solid var(--line-soft);max-height:210px;padding:4px 14px 12px;display:none;overflow-y:auto}.nav-steps.on{display:block}.nav-step{color:var(--ink-dim);border-bottom:1px dashed #ffffff0f;align-items:center;gap:9px;padding:6px 0;font-size:12.5px;display:flex}.nav-step:last-child{border-bottom:none}.nav-step .st-ico{text-align:center;width:20px;font-size:14px}.nav-step .st-name{color:var(--ink);flex:1}.nav-step .st-len{font-variant-numeric:tabular-nums}.nav-step.hi{color:var(--gold)}@media (max-width:640px){.navbar{bottom:12px}.nav-head{flex-wrap:wrap}.nav-modes{order:3}}.ai-fab{z-index:34;cursor:pointer;font-family:var(--sans);letter-spacing:.04em;border:1px solid var(--gold);color:var(--gold);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow);background:linear-gradient(135deg,#6fb2d238,#d8b45a38);border-radius:999px;align-items:center;gap:7px;padding:10px 15px;font-size:13px;transition:transform .18s,box-shadow .18s;display:inline-flex;position:fixed;bottom:118px;right:16px}.ai-fab:hover{transform:translateY(-2px);box-shadow:0 14px 34px #00000080}.ai-fab-avatar{object-fit:cover;border:1px solid #d8b45ab3;border-radius:50%;width:26px;height:26px}.ai-head-avatar{object-fit:cover;border:1.5px solid var(--gold);border-radius:50%;flex:none;width:40px;height:40px;box-shadow:0 0 0 3px #d8b45a1f}.ai-hero{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:16px 6px 8px;display:flex}.ai-hero img{filter:drop-shadow(0 14px 28px #00000080);border-radius:12px;width:min(190px,58%);height:auto}.ai-hero-say{color:#dbe4ec;border:1px solid var(--line-soft);background:#ffffff0d;border-radius:14px 14px 14px 4px;max-width:94%;margin:0;padding:11px 14px;font-size:13px;line-height:1.8}.ai-hero-hint{color:var(--ink-dim);letter-spacing:.04em;margin:0;font-size:11px}.ai-msg-row{align-items:flex-end;gap:8px;max-width:100%;display:flex}.ai-msg-row.user{justify-content:flex-end}.ai-msg-avatar{object-fit:cover;border:1px solid var(--gold);border-radius:50%;flex:none;width:30px;height:30px}.ai-msg-row .ai-msg{max-width:calc(100% - 40px)}.ai-panel{z-index:45;border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);width:min(400px,100vw - 32px);height:min(600px,100vh - 120px);box-shadow:var(--shadow);background:#0b1016f7;border-radius:16px;flex-direction:column;display:none;position:fixed;bottom:16px;right:16px;overflow:hidden}.ai-panel.on{display:flex}.ai-head{border-bottom:1px solid var(--line-soft);align-items:center;gap:9px;padding:12px 12px 11px 14px;display:flex}.ai-dot{background:var(--accent);width:8px;height:8px;box-shadow:0 0 10px var(--accent);border-radius:50%;flex:none}.ai-title{flex:1;min-width:0;line-height:1.25}.ai-title strong{font-size:13.5px;font-family:var(--serif);letter-spacing:.06em}.ai-title small{color:var(--ink-dim);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:10.5px;display:block;overflow:hidden}.ai-msgs{scrollbar-width:thin;flex-direction:column;flex:1;gap:10px;padding:14px;display:flex;overflow-y:auto}.ai-msgs::-webkit-scrollbar{width:8px}.ai-msgs::-webkit-scrollbar-thumb{background:#ffffff24;border-radius:4px}.ai-msg{white-space:pre-wrap;word-break:break-word;border-radius:12px;max-width:88%;padding:9px 12px;font-size:13px;line-height:1.72}.ai-msg.user{color:#e6f2fa;background:#6fb2d22e;border:1px solid #6fb2d24d;align-self:flex-end}.ai-msg.ai{border:1px solid var(--line-soft);color:#dbe4ec;background:#ffffff0d;align-self:flex-start}.ai-msg.ai b{color:var(--gold)}.ai-msg .ai-cmd{color:var(--accent);border:1px solid #6fb2d266;border-radius:999px;margin-top:7px;padding:3px 9px;font-size:11.5px;display:inline-block}.ai-msg.typing:after{content:"▋";color:var(--accent);animation:1s steps(2,end) infinite blink}@keyframes blink{50%{opacity:0}}.ai-chips{flex-wrap:wrap;gap:6px;padding:0 12px 10px;display:flex}.ai-chip{border:1px solid var(--line-soft);color:var(--ink-dim);cursor:pointer;font-size:11.5px;font-family:var(--sans);background:#ffffff0d;border-radius:999px;padding:5px 10px}.ai-chip:hover{border-color:var(--gold);color:var(--gold)}.ai-input{border-top:1px solid var(--line-soft);align-items:flex-end;gap:8px;padding:10px 12px 12px;display:flex}.ai-input textarea{resize:none;border:1px solid var(--line-soft);max-height:108px;color:var(--ink);font-family:var(--sans);background:#ffffff0f;border-radius:10px;outline:none;flex:1;padding:9px 11px;font-size:13px;line-height:1.6}.ai-input textarea:focus{border-color:var(--gold)}.ai-send{border:1px solid var(--gold);width:38px;height:38px;color:var(--gold);cursor:pointer;background:#d8b45a29;border-radius:10px;flex:none;place-items:center;display:grid}.ai-send:disabled{opacity:.4;cursor:default}.ai-setup{background:#090d12f7;flex-direction:column;justify-content:center;gap:10px;padding:20px;display:none;position:absolute;inset:0}.ai-setup.on{display:flex}.ai-setup p{color:var(--ink-dim);margin:0;font-size:12.5px;line-height:1.7}.ai-setup input,.ai-setup select{border:1px solid var(--line-soft);color:var(--ink);font-size:13px;font-family:var(--sans);background:#ffffff0f;border-radius:9px;outline:none;padding:10px 11px}.ai-setup input:focus,.ai-setup select:focus{border-color:var(--gold)}.ai-setup-row{gap:8px;display:flex}.ai-setup-row select{flex:1}.ai-note{color:#7f8b98!important;font-size:11px!important}@media (max-width:640px){.ai-fab{bottom:92px}.ai-panel{height:calc(100vh - 90px)}}.ai-think-box{color:#8fa6b8;white-space:pre-wrap;background:#6fb2d212;border:1px dashed #6fb2d247;border-radius:9px;margin-bottom:8px;padding:8px 10px;font-size:11.5px;line-height:1.7}.ai-think-box b{color:#6fb2d2;letter-spacing:.06em;margin-bottom:3px;font-size:11px;font-weight:500;display:block}.ai-check{color:var(--ink-dim);cursor:pointer;align-items:center;gap:7px;font-size:12px;display:flex}.ai-check input{accent-color:var(--gold)}.ai-msg.ai .ai-answer{white-space:pre-wrap}.ai-speak.on,#ai-speak.on{color:var(--gold);border-color:var(--gold)}.photo-pop img{border-radius:8px;width:100%;display:block}.photo-pop-body{margin-top:8px}.photo-pop-cls{color:var(--c,var(--gold));letter-spacing:.04em;font-size:11.5px}.photo-pop p{color:#c9d3dd;white-space:pre-line;margin:5px 0 0;font-size:12px;line-height:1.65}.photo-pop p.dim{color:var(--ink-dim)}.photo-meta{color:#7f8b98;margin-top:6px;font-size:10.5px}.photo-tags{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.photo-tags span{border:1px solid var(--line-soft);color:var(--ink-dim);background:#ffffff12;border-radius:999px;padding:1px 7px;font-size:10.5px}.photo-more{width:100%;margin-top:8px;padding:6px 10px;font-size:11.5px}.d-photos{gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.d-photos img{object-fit:cover;border:1px solid var(--line-soft);cursor:pointer;border-radius:8px;flex:none;width:96px;height:72px;transition:border-color .2s,transform .2s}.d-photos img:hover{border-color:var(--gold);transform:translateY(-2px)}.lightbox{z-index:70;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#040609db;place-items:center;display:none;position:fixed;inset:0}.lightbox.on{display:grid}.lb-panel{border:1px solid var(--line);background:linear-gradient(#10161d,#0a0e13);border-radius:16px;width:min(1000px,100vw - 40px);max-height:calc(100vh - 60px);display:flex;overflow:hidden;box-shadow:0 30px 80px #000000b3}.lb-img{background:#07090c;flex:1;place-items:center;min-width:0;display:grid}.lb-img img{max-width:100%;max-height:calc(100vh - 60px);display:block}.lb-info{border-left:1px solid var(--line-soft);flex:none;width:320px;padding:18px;overflow-y:auto}.lb-info h3{font-family:var(--serif);margin:0 0 4px;font-size:17px}.lb-info .lb-cls{color:var(--gold);margin-bottom:10px;font-size:12px}.lb-info p{color:#c3ccd6;white-space:pre-line;font-size:12.5px;line-height:1.8}.lb-info dl{color:var(--ink-dim);margin:12px 0 0;font-size:11.5px;line-height:1.8}.lb-info dt{color:#7f8b98;float:left;clear:left;width:74px}.lb-info dd{color:#dbe4ec;margin:0 0 3px 80px}.lb-close{z-index:3;border:1px solid var(--line-soft);width:32px;height:32px;color:var(--ink);cursor:pointer;background:#00000080;border-radius:50%;position:absolute;top:14px;right:14px}.lb-close:hover{color:var(--gold)}@media (max-width:800px){.lb-panel{flex-direction:column}.lb-info{border-left:none;border-top:1px solid var(--line-soft);width:auto;max-height:40%}}.marker-photo{color:#06121f;background:#6fb2d2;border:1.5px solid #080b0fbf;border-radius:999px;place-items:center;min-width:20px;height:16px;padding:0 4px;font-size:9.5px;font-weight:700;display:grid;position:absolute;top:-7px;left:-8px;box-shadow:0 2px 6px #00000080}.place-pop img{border-radius:8px;width:100%;display:block}.place-pop-body{margin-top:8px}.place-pop-id{color:var(--gold);letter-spacing:.12em;font-size:10.5px}.place-pop-name{font-family:var(--serif);margin:2px 0 3px;font-size:14.5px}.place-pop-cls{color:var(--c,var(--ink-dim));font-size:11px}.place-pop p{color:#c2ccd6;margin:6px 0 0;font-size:11.5px;line-height:1.65}.place-more{width:100%;margin-top:8px;padding:6px 10px;font-size:11.5px}.place-warn{color:#e79aa2;background:#d9707a2e;border:1px solid #d9707a80;border-radius:999px;padding:1px 6px;font-size:9.5px}.lb-id{letter-spacing:.16em;color:var(--gold);margin-bottom:4px;font-size:11px}.lb-strip img{width:80px;height:60px}.lb-strip img.on{border-color:var(--gold);box-shadow:0 0 0 2px #d8b45a66}.lb-strip{gap:8px;padding:3px 2px 9px}.memory-shot{border:1px solid var(--line-soft);color:var(--ink-dim);cursor:pointer;background:#ffffff08;border-radius:8px;flex:0 0 92px;padding:4px}.lb-strip .memory-shot img{object-fit:cover;border:0;border-radius:5px;width:82px;height:64px;margin:0}.memory-shot span{white-space:nowrap;margin-top:5px;font-size:10px;display:block}.memory-shot.on,.memory-shot:hover,.memory-shot:focus-visible{border-color:var(--gold);color:var(--gold);outline-offset:2px}.memory-current{color:var(--ink-dim);margin-bottom:10px;font-size:11px}.lb-info dd a{color:var(--gold)}
