/* Minimal panorama controls: transparent surfaces, no backdrop blur. */
:root{font-family:"Microsoft YaHei UI","Microsoft YaHei","PingFang SC","Noto Sans CJK SC","Noto Sans JP",Arial,sans-serif;font-weight:400}
button,input,select{font-family:inherit}body{background:#212121}.glass{background:rgba(29,29,29,.70);border:1px solid #ffffff26;backdrop-filter:none;-webkit-backdrop-filter:none;border-radius:10px;box-shadow:none}
#language{position:absolute;z-index:4;right:24px;top:24px;font-size:12px;color:white;background:rgba(29,29,29,.70);border:1px solid #ffffff26;border-radius:8px;padding:9px 12px;max-width:120px;pointer-events:auto}#language option{color:#272727;background:#ffffff}
.right-tools{right:24px;padding:3px}.icon-button{width:38px;height:38px}.icon-button svg{width:17px;height:17px}.icon-button:hover{background:#ffffff18}.tool-divider{margin:4px 9px}
.tour-footer{bottom:22px;left:24px;right:24px;z-index:3}.footer-actions{display:flex;justify-content:flex-end;gap:8px;margin-bottom:0}.text-button{height:34px;padding:0 14px;font-size:11px;letter-spacing:0}.text-button[aria-pressed=true]{background:#ffffff33}.scene-menu{margin-top:10px;padding:4px 12px}.tour-footer .tier{display:flex;gap:5px;overflow:auto;scrollbar-width:thin;white-space:nowrap;margin:0;padding:6px 0;pointer-events:auto;justify-content:safe center}
.tier button{flex:0 0 auto;border:0;background:transparent;color:#ffffff;font-size:12px;line-height:1.4;padding:6px 16px;border-radius:6px;white-space:nowrap;text-shadow:0 1px 3px #00000066}.tier button.active{background:#ffffff26;color:#ffffff}.room-filters{border-top:1px solid #ffffff1c;border-bottom:1px solid #ffffff1c}.room-filters button{padding:6px 14px}.room-filters button.active{background:#ffffff1f}
.scene-menu .scene-strip{justify-content:safe center;padding:7px 0;min-height:75px;gap:9px}.scene-menu .scene-card{flex-basis:111px;height:62px;background:#1d1d1d38;border:1px solid #ffffff38;border-radius:7px}.scene-menu .card-index{display:none}.scene-card img{opacity:.88}.scene-card:after{background:rgba(22,22,22,.16)}.scene-card.active{border:2px solid #ffffffe6}.scene-card .card-text{left:7px;bottom:6px;font-size:11px;text-shadow:0 1px 4px #000000}.scene-card.active:before{display:none}
/* One solid, rounded arrow with a soft shadow; no outline. */
.pnlm-hotspot-base.route-arrow{width:calc(64px * var(--arrow-scale,1));height:calc(50px * var(--arrow-scale,1));border:0;background:none;box-shadow:none;cursor:pointer;overflow:visible;display:block;filter:none;touch-action:none}
.arrow-glyph{display:block;width:100%;height:100%;fill:var(--arrow-color,#ffffff);stroke:none;opacity:var(--arrow-opacity,.95);filter:drop-shadow(0 3px 3px #00000077);transform:perspective(130px) rotateX(var(--arrow-tilt,42deg)) rotateZ(var(--arrow-rotation,0deg));transform-origin:center;transition:opacity .15s}
.route-arrow:hover .arrow-glyph,.route-arrow:focus .arrow-glyph{opacity:1;fill:var(--arrow-color,#ffffff);filter:drop-shadow(0 4px 4px #00000099)}.route-arrow:focus-visible{outline:2px solid #ffffff90;outline-offset:6px;border-radius:5px}.route-arrow.inferred .arrow-glyph{stroke:none;stroke-dasharray:none}
.arrow-label{position:absolute;left:50%;top:calc(100% + 2px);transform:translateX(-50%);white-space:nowrap;background:rgba(29,29,29,.64);color:white;font-size:11px;line-height:1.5;padding:4px 8px;border-radius:5px;border:0;text-align:center;max-width:230px;overflow:hidden;text-overflow:ellipsis;pointer-events:none;text-shadow:0 1px 2px #00000066}.arrow-label small{display:none;font-size:9px}.route-arrow.inferred:hover .arrow-label small,.route-arrow.inferred:focus .arrow-label small{display:block}
body.walking .route-arrow{visibility:hidden!important}.picking .route-arrow{pointer-events:none!important}.editing-hotspots .route-arrow{cursor:grab}.dragging-hotspot .route-arrow{cursor:grabbing}.editing-hotspots .selected-route:after{content:'';position:absolute;inset:-6px;border:1px dashed #ffffffa0;border-radius:8px;pointer-events:none}.dragging-hotspot .selected-route:after{border-style:solid}
#editor-hint{position:absolute;left:12px;top:12px;z-index:5;padding:7px 10px;border-radius:7px;background:#1d1d1d59;color:#ffffff;font-size:10px;pointer-events:none}#pick-hint{background:#1d1d1d80;color:white;box-shadow:none}#pick-hint button{background:#ffffff26;color:white}
#loading,#viewer-error,#walk-status,#toast{background:rgba(29,29,29,.76);border:1px solid #ffffff24;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}#walk-status{bottom:75px;font-size:11px}.walk-map{top:76px;right:24px;box-shadow:none}.map-key{color:#ffffffc0}.map-heading{letter-spacing:0}.map-edge{stroke:#ffffff90}.map-point text{font-family:inherit}
#walk-snapshot{will-change:opacity;transform:none;filter:none}.embedded #language{top:12px;right:12px;font-size:10px;padding:7px}.embedded .right-tools{right:12px}.embedded .tour-footer{left:12px;right:12px;bottom:12px}.embedded #walk-status{bottom:65px}.embedded .walk-map{top:55px}.embedded .tier button{font-size:10px;padding:5px 10px}.embedded .scene-menu .scene-card{height:58px;flex-basis:100px}.embedded .scene-menu .scene-strip{min-height:70px}
@media(max-width:650px){#language{right:14px;top:16px;font-size:11px;padding:8px;max-width:104px}.right-tools{right:14px}.icon-button{width:34px;height:36px}.tour-footer{left:12px;right:12px;bottom:16px}.scene-menu{padding:3px 7px}.tour-footer .tier{gap:3px;justify-content:flex-start;padding:5px 0}.tier button{font-size:11px;padding:5px 12px}.scene-menu .scene-strip{justify-content:flex-start;min-height:70px;gap:7px}.scene-menu .scene-card{height:58px;flex-basis:100px}.scene-menu .card-text{font-size:10px}.text-button{font-size:10px;padding:0 12px;height:33px}.pnlm-hotspot-base.route-arrow{width:calc(54px * var(--arrow-scale,1));height:calc(43px * var(--arrow-scale,1))}.arrow-label{font-size:10px;max-width:180px}.walk-map{right:14px;top:70px}.walk-map.expanded{top:70px}#editor-hint{max-width:60%;font-size:9px;line-height:1.7}.footer-actions{gap:6px}}
@media(prefers-reduced-motion:reduce){.arrow-glyph{transition:none}}

/* Share, map and language in one upper-right toolbar. */
.right-tools,.embedded .right-tools{right:24px;top:24px;transform:none;flex-direction:row;align-items:center;gap:3px;padding:3px;z-index:5}.right-tools #language,.embedded .right-tools #language{position:static;background:transparent;border:0;margin:0;max-width:115px;padding:8px 9px;font-size:12px}.right-tools .icon-button{height:34px;width:34px}.right-tools #toggle-map{border-right:1px solid #ffffff24;border-radius:0}.walk-map,.embedded .walk-map{top:78px}.scene-menu{background:rgba(29,29,29,.70)}.arrow-label{text-shadow:0 1px 2px #00000088}
@media(max-width:650px){.right-tools,.embedded .right-tools{top:14px;right:14px}.right-tools #language{font-size:11px;padding:8px;max-width:100px}.right-tools .icon-button{width:32px;height:32px}.walk-map,.embedded .walk-map{top:69px}}

/* Menu stays in place and fades in over the panorama. */
.tour-footer{opacity:0;visibility:hidden;transition:opacity .28s ease,visibility .28s;transform:none;pointer-events:none}
.tour-footer.menu-visible{opacity:1;visibility:visible}.tour-footer:not(.menu-visible) *{pointer-events:none!important}
.scene-menu{margin-top:8px}.right-tools #toggle-map{border:0;border-radius:6px}
button,select,.scene-card,.map-point circle{transition:background-color .18s,color .18s,border-color .18s,opacity .18s,box-shadow .18s}
button:active{filter:brightness(1.13)}.scene-card:hover img{transform:scale(1.035)}.scene-card img{transition:transform .24s,opacity .2s}.tier button:hover{background:#ffffff1a}.map-point circle{transform-box:fill-box;transform-origin:center;transition:transform .2s,fill .2s}.map-point:hover circle{transform:scale(1.18)}
.walk-map{animation:panel-appear .22s ease-out}#toast{animation:panel-appear .18s ease-out}@keyframes panel-appear{from{opacity:0}to{opacity:1}}
.arrow-glyph path{transform-box:fill-box;transform-origin:center;animation:arrow-drift 1.8s ease-in-out infinite}.route-arrow[data-shape=arrow] .arrow-glyph path{animation:arrow-point 2s ease-in-out infinite}.route-arrow[data-shape=double] .chevron-front{animation:double-flow 1.8s ease-in-out infinite}.route-arrow[data-shape=double] .chevron-back{animation:double-flow 1.8s .22s ease-in-out infinite}
@keyframes arrow-drift{0%,100%{transform:translateY(2px);opacity:.75}50%{transform:translateY(-2px);opacity:1}}@keyframes arrow-point{0%,100%{transform:translateY(2px)}50%{transform:translateY(-3px)}}@keyframes double-flow{0%,100%{transform:translateY(1px);opacity:.6}50%{transform:translateY(-2px);opacity:1}}
.editing-hotspots .arrow-glyph path{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* One neutral surface shared by menus and the full-screen map. */
:root{--ui-surface:rgba(30,30,30,.70)}.glass,.scene-menu{background:var(--ui-surface)}

.right-tools #toggle-scenes{border-radius:6px;transition:background-color .18s,color .18s,transform .12s}.right-tools #toggle-scenes[aria-pressed=true]{background:#ffffff30;color:#fff}.right-tools #toggle-scenes:active{transform:scale(.94)}
