:root{--purple:#50305e;--deep:#392340;--warm:#f7f5ef;--ink:#342c36;--muted:#827986;--line:rgba(70,48,79,.12);--shadow:0 8px 36px rgba(31,27,36,.10);font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:var(--ink);font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#cbd6dd}button,input,summary{font:inherit}button{color:inherit;cursor:pointer;border:0;background:none}button:disabled{opacity:.45;cursor:wait}button:focus-visible,summary:focus-visible,input:focus-visible,#viewport:focus-visible,a:focus-visible{outline:3px solid #ac8dbb;outline-offset:3px}button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}a{color:var(--purple)}[hidden]{display:none!important}#experience,#viewport{position:fixed;inset:0}#viewport{touch-action:none;outline:none}#viewport canvas{display:block;width:100%;height:100%}.glass{background:rgba(250,248,243,.94);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.62);box-shadow:var(--shadow)}.masthead{position:absolute;top:24px;left:24px;right:24px;min-height:76px;border-radius:14px;display:flex;align-items:center;padding:14px 20px;gap:20px}.identity{display:flex;align-items:center;gap:13px}.crest{width:44px;height:44px;display:grid;place-items:center;border-radius:11px;background:var(--purple);color:#fbf7ed}.crest svg{width:34px;stroke:currentColor;stroke-width:1.25;fill:none}h1{font-family:"Songti SC","SimSun",serif;font-size:23px;letter-spacing:3px;margin:0;font-weight:600}h1 span{font-family:system-ui,sans-serif;font-size:13px;letter-spacing:2px;font-weight:400;padding-left:16px;margin-left:13px;border-left:1px solid var(--line)}.identity p{font-size:9px;letter-spacing:2.9px;color:var(--muted);margin:6px 0 0}.live-label{display:flex;align-items:center;gap:8px;margin-left:auto;font-size:11px;letter-spacing:1.5px;color:var(--muted)}.live-label i,.tiny-dot{width:5px;height:5px;background:#7b956e;display:inline-block;border-radius:50%}.icon-button{height:30px;width:30px;border:1px solid var(--line);border-radius:50%;font-family:Georgia,serif;font-size:18px;color:var(--purple)}.icon-button:hover{background:#eee7ef}.places{position:absolute;top:119px;left:24px;width:258px;border-radius:14px;overflow:hidden;max-height:calc(100dvh - 220px)}.places-heading{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;padding:21px 20px 15px}.eyebrow{display:block;font-size:8px;letter-spacing:2.1px;font-weight:600;color:#9a809e}.places-heading strong{display:block;font-family:"Songti SC",serif;letter-spacing:1.6px;font-size:19px;font-weight:500;margin-top:9px}.collapse-symbol{font-size:22px;font-weight:300;color:var(--muted)}#placesBody{padding:0 12px 12px}.overview-button{width:100%;display:flex;text-align:left;align-items:center;gap:12px;padding:13px 12px;border-radius:9px;font-size:13px}.overview-button.selected{background:var(--purple);color:#fff}.place-icon{font-size:28px;font-weight:300}.overview-button small{font-size:10px;opacity:.65;display:block;margin-top:4px;letter-spacing:1px}.arrow{margin-left:auto}.section-label{font-size:10px;color:var(--muted);padding:21px 10px 11px;letter-spacing:1px;display:flex;justify-content:space-between}.section-label span{font-variant-numeric:tabular-nums;color:#b2a9b6}#landmarkList{max-height:min(390px,calc(100dvh - 450px));min-height:70px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#d9cddc transparent}.landmark-button{display:flex;width:100%;align-items:center;gap:13px;text-align:left;padding:11px 12px;border-radius:7px;margin:1px 0;font-size:12px;transition:background .15s,color .15s}.landmark-button:hover{background:#eee8ee}.landmark-button.selected{color:var(--purple);background:#e8deeb;font-weight:600}.landmark-button .number{font-size:9px;color:#aa9bac;letter-spacing:1px;font-variant-numeric:tabular-nums}.landmark-button .place-arrow{margin-left:auto;opacity:0;color:var(--purple)}.landmark-button:hover .place-arrow,.landmark-button.selected .place-arrow{opacity:1}.places-foot{display:flex;align-items:center;justify-content:center;gap:7px;font-size:9px;letter-spacing:.5px;color:#958b97;padding:13px 4px 1px;margin-top:9px;border-top:1px solid var(--line)}.placeholder-text{font-size:12px;color:var(--muted);padding:10px}.location-badge{position:absolute;top:119px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;padding:10px 15px;border-radius:30px;font-size:11px;white-space:nowrap}.location-dot{width:5px;height:5px;background:var(--purple);border-radius:50%}#modeLabel{border-left:1px solid var(--line);padding-left:10px;margin-left:3px;color:var(--muted);font-size:10px}.toolbar{position:absolute;bottom:35px;left:50%;transform:translateX(-50%);border-radius:13px;display:flex;align-items:center;padding:7px;gap:3px}.mode-switch{display:flex;gap:3px}.mode-switch button,.tool-button{display:flex;align-items:center;justify-content:center;gap:7px;border-radius:8px;height:39px;padding:0 14px;font-size:12px;white-space:nowrap}.mode-switch button.active{color:white;background:var(--purple)}.mode-switch button:hover:not(.active),.tool-button:hover{background:#eae3ec}.divider{height:21px;width:1px;background:var(--line);margin:0 6px}.compact-help{display:none}.compass{position:absolute;right:34px;top:127px;width:42px;color:var(--purple);text-align:center;pointer-events:none}.compass span{font-size:10px;letter-spacing:1px}.compass svg{width:42px;transform-origin:50% 50%;display:block}.hint{position:absolute;bottom:103px;left:50%;transform:translateX(-50%);padding:7px 13px;border-radius:25px;background:rgba(247,245,240,.74);font-size:10px;letter-spacing:.7px;color:#5d5262;white-space:nowrap;pointer-events:none}.walk-settings{position:absolute;right:24px;bottom:110px;border-radius:11px;padding:15px;width:205px}.walk-settings label{font-size:11px;display:flex;justify-content:space-between}.walk-settings output{color:var(--purple);font-size:10px}.walk-settings input{width:100%;accent-color:var(--purple);margin:14px 0 7px}.walk-settings>span{color:var(--muted);font-size:9px}.credits{position:absolute;bottom:24px;left:24px;max-width:280px;border-radius:9px;font-size:10px}.credits summary{padding:10px 12px;cursor:pointer;list-style:none;color:#756879;display:flex;gap:17px;justify-content:space-between}.credits summary::-webkit-details-marker{display:none}.credits[open]{max-width:310px}.credits>div{padding:3px 15px 13px;font-size:10px;line-height:1.8}.credits strong{font-weight:500;color:var(--purple)}.credits p{margin:8px 0 0}.quiet{color:var(--muted)}.toast{position:absolute;bottom:160px;left:50%;transform:translateX(-50%);max-width:90%;padding:12px 18px;border-radius:10px;background:rgba(56,35,64,.92);color:white;font-size:12px;text-align:center;pointer-events:none;z-index:10}.touch-pad{position:absolute;right:24px;bottom:25px;display:grid;grid-template-columns:repeat(3,42px);grid-template-rows:repeat(2,42px);gap:5px}.touch-pad button{border-radius:11px;background:rgba(247,245,239,.92);box-shadow:0 2px 12px #342c3620;color:var(--purple);font-size:23px;touch-action:none;user-select:none}.touch-pad button:active,.touch-pad button.pressed{color:white;background:var(--purple)}.touch-pad button:first-child{grid-column:2}.touch-pad button:nth-child(2){grid-column:1}.loading-screen{position:absolute;inset:0;z-index:30;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 45%,#fcfaf6,#eee9e6);transition:opacity .5s}.loading-screen.finished{opacity:0;pointer-events:none}.loading-card{width:min(340px,84vw);text-align:center}.loading-card>.eyebrow{font-size:9px;letter-spacing:2.6px}.gate-illustration{width:230px;color:#745879;margin:18px 0 0;opacity:.85}.loading-card h2{font-family:"Songti SC",serif;font-size:29px;font-weight:500;letter-spacing:6px;margin:12px 0 14px;color:var(--purple)}.loading-card p{font-size:12px;color:#8d8090;line-height:1.8;min-height:22px}.progress-track{margin-top:30px;width:100%;height:2px;background:#ddd3df;overflow:hidden}.progress-track>div{width:0;height:100%;background:var(--purple);transition:width .3s}.loading-meta{display:flex;justify-content:space-between;color:#a090a4;font-size:9px;letter-spacing:1px;margin-top:9px}#retryButton{margin-top:25px;background:var(--purple);color:#fff;padding:11px 24px;border-radius:8px;font-size:12px}dialog{border:1px solid #fff;border-radius:18px;box-shadow:0 25px 100px #22112830;padding:35px;max-width:540px;width:calc(100vw - 36px);background:#faf8f3;color:var(--ink)}dialog::backdrop{background:#2d203c70;backdrop-filter:blur(5px)}.dialog-close{position:absolute;right:16px;top:12px;font-size:27px;color:#8c7c91}dialog h2{font-family:"Songti SC",serif;font-size:26px;letter-spacing:2px;font-weight:500;margin:12px 0}dialog h3{font-size:12px;color:var(--purple);font-weight:600;margin:14px 0 16px}.dialog-intro{font-size:12px;color:var(--muted);line-height:1.8}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:5px 0 17px}.help-grid p{font-size:11px;color:#8b7e90;line-height:1.8}kbd{font:10px system-ui;display:inline-block;padding:3px 6px;border:1px solid #ddd2df;border-radius:4px;color:#5e446a;background:#f3eef3;margin-right:5px}.help-note{font-size:11px;line-height:1.9;color:#8b7e90}.primary-button{display:flex;justify-content:space-between;background:var(--purple);color:white;width:100%;padding:13px 17px;border-radius:8px;font-size:12px;margin-top:23px}.primary-button:hover{background:var(--deep)}
@media (max-width:850px){.places{width:220px}.masthead{top:16px;left:16px;right:16px}.places{left:16px;top:109px}.location-badge{top:auto;bottom:168px;left:50%;font-size:10px}.walk-settings{right:16px;bottom:130px;width:160px}.credits{left:16px;bottom:18px;max-width:200px}.toolbar{bottom:58px}.hint{bottom:120px}.touch-pad{bottom:27px;right:16px}.compass{right:20px;top:120px}}@media (max-width:600px){.masthead{top:12px;left:12px;right:12px;min-height:65px;padding:11px 12px;border-radius:12px;gap:8px}.crest{width:36px;height:36px}.crest svg{width:29px}.identity{gap:9px}h1{font-size:20px;letter-spacing:2px}h1 span{font-size:10px;padding-left:9px;margin-left:8px;letter-spacing:1px}.identity p{font-size:7px;letter-spacing:1.8px;margin-top:4px}.live-label{display:none}.masthead .icon-button{margin-left:auto;flex-shrink:0;width:26px;height:26px;font-size:16px}.places{top:89px;left:12px;width:190px;max-height:calc(100dvh - 300px);border-radius:11px}.places-heading{padding:13px 13px 10px}.places-heading .eyebrow{font-size:7px;letter-spacing:1.4px}.places-heading strong{font-size:15px;margin-top:6px;letter-spacing:1px}.collapse-symbol{font-size:18px}#placesBody{padding:0 8px 8px}.overview-button{padding:8px 9px;font-size:11px;gap:8px}.overview-button .place-icon{font-size:23px}.overview-button small{font-size:8px}.section-label{font-size:9px;padding:13px 8px 7px}#landmarkList{max-height:min(280px,calc(100dvh - 480px));min-height:70px}.landmark-button{padding:9px;font-size:11px}.places-foot{font-size:8px;padding-top:9px}.toolbar{bottom:calc(30px + env(safe-area-inset-bottom));padding:5px;gap:0;max-width:calc(100vw - 24px);border-radius:11px}.mode-switch button,.tool-button{padding:0 11px;height:37px;font-size:11px;gap:5px}.tool-button svg,.mode-switch svg{width:18px}.tool-button span{display:none}.divider{margin:0 4px}.hint{bottom:calc(90px + env(safe-area-inset-bottom));font-size:9px;letter-spacing:0;padding:6px 10px}.location-badge{top:92px;right:12px;left:auto;transform:none;bottom:auto;padding:7px 10px;gap:6px;max-width:calc(100vw - 220px);white-space:normal;font-size:9px}#modeLabel{display:none}.compass{top:134px;right:23px;width:30px}.compass svg{width:30px}.compass span{font-size:8px}.credits{bottom:calc(7px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);border:0;box-shadow:none;background:transparent;white-space:nowrap;font-size:8px}.credits summary{padding:4px 6px;gap:6px}.credits[open]{white-space:normal;background:#faf8f3;box-shadow:var(--shadow);width:calc(100vw - 24px);max-width:340px;border:1px solid #fff;bottom:calc(30px + env(safe-area-inset-bottom));z-index:15}.credits[open] summary{padding:10px 14px}.walk-settings{bottom:calc(143px + env(safe-area-inset-bottom));right:12px;width:146px;padding:11px}.walk-settings>span{display:none}.walk-settings input{margin-bottom:0}.touch-pad{bottom:calc(89px + env(safe-area-inset-bottom));left:16px;right:auto;grid-template-columns:repeat(3,36px);grid-template-rows:repeat(2,36px);gap:4px}.touch-pad button{font-size:19px;border-radius:9px}.toast{bottom:calc(205px + env(safe-area-inset-bottom));font-size:11px}.help-grid{gap:12px}dialog{padding:28px 23px}.loading-card h2{font-size:26px}.compact-help{display:none}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
