/*
 * Full-screen XR shell matching the provided video layout:
 * 360 scene, left compass, bottom controls/nav, right draggable place drawer,
 * and a map overview whose time-river floats above the map.
 */
:root{
  --xr-cyan:#00c8b0;
  --xr-blue:#1596de;
  --xr-glass:rgba(0,67,76,.72);
  --xr-line:rgba(196,255,247,.34);
  --xr-white:#f7ffff;
  --xr-shadow:0 22px 70px rgba(0,28,42,.42);
  --xr-ease:cubic-bezier(.22,1,.36,1);
}

body.immersive-ui{height:100vh;overflow:hidden;background:#123c4a}
.immersive-ui .site-header{height:76px;padding:0 38px;background:transparent!important;border:0;backdrop-filter:none;display:block;pointer-events:none}
.immersive-ui .brand{display:inline-block;margin-top:25px;color:#fff;font-size:24px;text-shadow:0 2px 12px rgba(0,38,60,.55);pointer-events:auto}
.immersive-ui .main-nav,.immersive-ui .nav-actions{display:none}
.immersive-ui main{height:100vh}
.immersive-ui .xr-hero{position:fixed;inset:0;min-height:100vh;height:100vh;z-index:0;background-image:linear-gradient(rgba(4,24,34,.08),rgba(4,24,34,.2)),var(--xr-panorama,url("../images/panorama-jian-people-square.jpg"));background-size:cover;background-position:center 48%}
.immersive-ui .xr-scene{height:100vh;min-height:100vh}
.immersive-ui .xr-scene canvas{transition:opacity .22s ease}
.immersive-ui .xr-scene.xr-scene--switching canvas{opacity:0}
.immersive-ui .xr-overlay,.immersive-ui .xr-hint,.immersive-ui .xr-status{display:none}
.immersive-ui .xr-controls{left:42px;right:auto;bottom:86px;transform:none;gap:8px}
.immersive-ui .xr-btn{position:relative;min-width:0;width:42px;height:42px;padding:0;border-radius:50%;overflow:hidden;color:transparent;background:rgba(4,49,62,.58);border-color:rgba(255,255,255,.58)}
.immersive-ui .xr-btn::before{content:"↔";display:grid;place-items:center;position:absolute;inset:0;color:#fff;font-size:22px}
.immersive-ui .xr-btn--active::before{content:"◎"}
.immersive-ui .river,.immersive-ui .scroll-progress,.immersive-ui footer{display:none}
.immersive-ui .scenic-dock{display:none}

.xr-compass{position:fixed;z-index:120;left:-24px;top:11vh;width:104px;height:104px;border-radius:50%;border:6px solid rgba(255,255,255,.32);background:rgba(218,247,194,.72);box-shadow:0 6px 18px rgba(0,53,66,.18);pointer-events:none}
.xr-compass::before{content:"";position:absolute;left:50%;top:50%;width:50%;height:40px;clip-path:polygon(0 50%,100% 0,100% 100%);background:linear-gradient(90deg,#14b782,#6be0b0);transform-origin:left center;transform:rotate(var(--compass-angle,0deg))}
.xr-compass::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:14px;margin:-7px;border-radius:50%;background:#08aa72;box-shadow:0 0 0 3px rgba(255,255,255,.35)}

.xr-hotspots{position:fixed;z-index:118;inset:0;pointer-events:none;transition:opacity .28s ease,filter .28s ease}
.xr-hotspot{position:absolute;left:var(--x);top:var(--y);display:flex;align-items:center;gap:8px;max-width:210px;padding:0;border:0;background:transparent;color:#ecfffb;pointer-events:auto;cursor:pointer;filter:drop-shadow(0 6px 16px rgba(0,30,42,.45));transform:translate(-50%,-50%)}
.xr-hotspot__pin{position:relative;display:grid;place-items:center;width:25px;height:25px;border:2px solid rgba(236,255,251,.78);border-radius:50%;background:linear-gradient(135deg,#00d9b9,#0997cf)}
.xr-hotspot__pin::before{content:"";position:absolute;inset:-8px;border:1px solid rgba(0,217,185,.62);border-radius:50%;animation:xrPulse 2.8s ease-out infinite}
.xr-hotspot__pin::after{content:"";width:7px;height:7px;border-radius:50%;background:#fff}
.xr-hotspot__tail{position:absolute;left:12px;top:100%;width:1px;height:24px;background:linear-gradient(rgba(236,255,251,.85),rgba(236,255,251,.15));transform:translateX(-50%);pointer-events:none}
.xr-hotspot__tail::after{content:"";position:absolute;left:50%;bottom:-3px;width:5px;height:5px;border-radius:50%;background:#fff;transform:translateX(-50%);box-shadow:0 0 5px rgba(255,255,255,.75)}
.xr-hotspot[data-kind="direction"] .xr-hotspot__tail{display:none}
.xr-hotspot[data-level="detail"] .xr-hotspot__pin{width:19px;height:19px;background:linear-gradient(135deg,#f4c85b,#e57a36)}
.xr-hotspot[data-level="detail"] .xr-hotspot__pin::before{inset:-6px;animation-duration:3.4s}
.xr-hotspot[data-level="detail"] .xr-hotspot__label{background:rgba(8,68,76,.88);font-size:11px}
.xr-hotspot[data-kind="direction"] .xr-hotspot__pin{width:22px;height:22px;border:0;border-radius:0;background:linear-gradient(135deg,#ffd76a,#ff8a3c);clip-path:polygon(0 24%,58% 24%,58% 4%,100% 50%,58% 96%,58% 76%,0 76%)}
.xr-hotspot[data-kind="direction"] .xr-hotspot__pin::before,.xr-hotspot[data-kind="direction"] .xr-hotspot__pin::after{display:none}
.xr-hotspot[data-kind="direction"][data-arrow="north"] .xr-hotspot__pin{background:linear-gradient(135deg,#7ce8ff,#3a9dff);transform:rotate(-90deg)}
.xr-hotspot[data-kind="direction"][data-arrow="south"] .xr-hotspot__pin{background:linear-gradient(135deg,#7ce8ff,#3a9dff);transform:rotate(90deg)}
.xr-hotspot[data-kind="direction"][data-arrow="west"] .xr-hotspot__pin{transform:rotate(180deg)}
.xr-hotspot[data-kind="direction"] .xr-hotspot__label{background:linear-gradient(180deg,rgba(255,138,60,.92),rgba(168,74,24,.92));border-color:rgba(255,214,122,.55)}
.xr-hotspot[data-kind="direction"][data-arrow="north"] .xr-hotspot__label,.xr-hotspot[data-kind="direction"][data-arrow="south"] .xr-hotspot__label{background:linear-gradient(180deg,rgba(58,157,255,.92),rgba(26,86,160,.92));border-color:rgba(124,232,255,.55)}
.xr-hotspot__label{padding:5px 10px;border:1px solid rgba(196,255,247,.34);border-radius:3px;background:linear-gradient(180deg,rgba(0,139,153,.82),rgba(0,73,87,.82));backdrop-filter:blur(8px);font-size:12px;line-height:1.25;letter-spacing:.04em;white-space:nowrap}
.xr-hotspot__thumb{position:relative;z-index:2;flex:0 0 52px;width:52px;height:52px;overflow:hidden;border:2px solid rgba(255,255,255,.92);border-radius:50%;background:#0b5968;box-shadow:0 8px 22px rgba(0,25,38,.48),0 0 0 3px rgba(0,200,176,.22);pointer-events:none;transition:transform .2s ease,box-shadow .2s ease}
.xr-hotspot__thumb img{display:block;width:100%;height:100%;object-fit:cover}
.xr-hotspot__thumb--panorama{background-image:var(--thumb-image);background-repeat:no-repeat;background-size:800% auto;background-position:var(--thumb-x,50%) var(--thumb-y,50%)}
.xr-hotspot:hover .xr-hotspot__thumb,.xr-hotspot:focus-visible .xr-hotspot__thumb{transform:scale(1.08);box-shadow:0 10px 28px rgba(0,25,38,.55),0 0 0 4px rgba(0,217,185,.34)}
.xr-hotspot:not([data-kind="direction"]) .xr-hotspot__pin{display:none}
.xr-hotspot:not([data-kind="direction"]) .xr-hotspot__tail{left:26px;top:calc(50% + 27px);z-index:1}
.xr-hotspot[data-kind="direction"] .xr-hotspot__pin{position:absolute;z-index:3;left:38px;bottom:-2px;width:18px;height:18px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.45))}
@media(max-width:600px){.xr-hotspot__thumb{flex-basis:44px;width:44px;height:44px}.xr-hotspot:not([data-kind="direction"]) .xr-hotspot__tail{left:22px;top:calc(50% + 23px)}}
.xr-hotspot:hover .xr-hotspot__label,.xr-hotspot:focus-visible .xr-hotspot__label{background:linear-gradient(180deg,rgba(0,202,176,.95),rgba(0,104,126,.95));outline:1px solid rgba(255,255,255,.8)}
.xr-hotspot[hidden]{display:none}
.overview-open .xr-hotspots,.panel-open .xr-hotspots{opacity:.25;filter:saturate(.8)}
@keyframes xrPulse{0%{opacity:.85;transform:scale(.55)}80%,100%{opacity:0;transform:scale(1.8)}}

.xr-place-drawer{position:fixed;z-index:200;right:0;top:50%;box-sizing:border-box;width:min(380px,calc(100vw - 16px));height:min(640px,78vh);color:#fff;background:linear-gradient(160deg,rgba(20,139,204,.95),rgba(0,181,164,.95));border:1px solid rgba(255,255,255,.32);box-shadow:var(--xr-shadow);backdrop-filter:blur(10px);transform:translate3d(var(--drawer-x,100%),-50%,0);transition:transform .52s var(--xr-ease),opacity .2s;touch-action:pan-y;contain:layout style;will-change:transform}
.xr-place-drawer.is-dragging{transition:none}
.xr-place-drawer__handle{position:absolute;left:-46px;top:calc(50% + 58px);width:46px;height:112px;padding:0;border:1px solid rgba(255,255,255,.28);border-right:0;background:linear-gradient(180deg,rgba(19,146,216,.96),rgba(0,172,159,.96));color:#fff;box-shadow:0 14px 36px rgba(0,35,47,.3);cursor:grab;transform:translateY(-50%);transition:opacity .18s}
.xr-place-drawer__handle:active{cursor:grabbing}
.xr-place-drawer__handle span{display:block;writing-mode:vertical-rl;margin:auto;font-size:13px;letter-spacing:.24em}
.xr-place-drawer__close{position:absolute;right:12px;top:12px;z-index:3;width:36px;height:36px;border-radius:3px;border:1px solid rgba(255,255,255,.55);background:rgba(0,43,56,.64);color:#fff;font-size:22px;line-height:1;cursor:pointer}
.xr-place-drawer__media{margin:0;height:40%;overflow:hidden;background:rgba(0,35,45,.32)}
.xr-place-drawer__media img{display:block;width:100%;height:100%;object-fit:cover}
.xr-place-drawer.is-text-only .xr-place-drawer__copy{height:100%;padding-top:64px}
.xr-place-drawer__copy{box-sizing:border-box;height:60%;overflow:auto;padding:20px 24px 24px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.45) transparent}
.xr-place-drawer__copy small{display:block;margin-bottom:8px;color:#dcfffb;font-size:12px;letter-spacing:.14em}
.xr-place-drawer__copy h2{margin:0 0 12px;color:#fff;font:700 28px/1.2 "STKaiti","KaiTi",serif;letter-spacing:0}
.xr-place-drawer__copy p{margin:0;color:rgba(255,255,255,.88);font-size:13px;line-height:1.9}
.xr-place-drawer__copy dl{margin:16px 0 0;border-top:1px solid rgba(255,255,255,.28)}
.xr-place-drawer__copy dl div{display:grid;grid-template-columns:14px 1fr;gap:8px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.18)}
.xr-place-drawer__copy dt{width:7px;height:7px;margin-top:.72em;border-radius:50%;background:#fff}
.xr-place-drawer__copy dd{margin:0;color:rgba(255,255,255,.86);font-size:12px;line-height:1.55}
.xr-place-drawer__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:17px}
.xr-place-drawer__source,.xr-place-drawer__map{display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border:1px solid rgba(255,255,255,.42);border-radius:2px;color:#fff;text-decoration:none;font-size:12px;letter-spacing:0}
.xr-place-drawer__map{background:rgba(255,255,255,.15)}
.xr-place-drawer__source:hover,.xr-place-drawer__source:focus-visible,.xr-place-drawer__map:hover,.xr-place-drawer__map:focus-visible{background:rgba(255,255,255,.22);outline:1px solid rgba(255,255,255,.75)}
.overview-open .xr-place-drawer__handle{opacity:0;pointer-events:none}
.panel-open .xr-place-drawer{opacity:.16;pointer-events:none}

.xr-toolbar{position:fixed;z-index:160;left:40px;bottom:34px;display:flex;align-items:center;gap:7px;padding:6px;border-radius:22px;background:rgba(2,37,49,.52);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.18)}
.xr-scene-back{position:fixed;z-index:210;left:28px;top:24px;min-height:42px;padding:0 18px;border:1px solid rgba(255,255,255,.42);border-radius:22px;background:rgba(3,44,58,.68);color:#fff;font-size:14px;cursor:pointer;box-shadow:0 8px 24px rgba(0,28,40,.25);backdrop-filter:blur(10px)}
.xr-scene-back:hover,.xr-scene-back:focus-visible{background:rgba(0,160,150,.86);outline:2px solid rgba(255,255,255,.82);outline-offset:2px}
.xr-scene-back[hidden]{display:none}

.xr-place-vr{position:fixed;z-index:1000;inset:0;background:#06151d}
.xr-place-vr[hidden]{display:none}
.xr-place-vr__frame{display:block;width:100%;height:100%;border:0;background:#06151d}
.xr-place-vr__topbar{position:absolute;z-index:2;left:28px;top:24px;display:flex;align-items:center;gap:16px;color:#fff;pointer-events:none}
.xr-place-vr__back{min-height:42px;padding:0 18px;border:1px solid rgba(255,255,255,.46);border-radius:22px;background:rgba(3,44,58,.72);color:#fff;font-size:14px;cursor:pointer;box-shadow:0 8px 24px rgba(0,28,40,.25);backdrop-filter:blur(10px);pointer-events:auto}
.xr-place-vr__back:hover,.xr-place-vr__back:focus-visible{background:rgba(0,160,150,.88);outline:2px solid rgba(255,255,255,.82);outline-offset:2px}
.xr-place-vr__title{padding-left:16px;border-left:1px solid rgba(255,255,255,.45);font-size:15px;text-shadow:0 2px 12px rgba(0,0,0,.7)}
.xr-place-vr__hint{position:absolute;z-index:2;left:50%;bottom:22px;margin:0;padding:8px 13px;border:1px solid rgba(255,255,255,.24);border-radius:999px;background:rgba(3,35,45,.68);color:#fff;font-size:12px;letter-spacing:.08em;transform:translateX(-50%);pointer-events:none;backdrop-filter:blur(8px)}
.place-vr-open>.xr-place-vr{display:block}
@media(max-width:600px){.xr-scene-back,.xr-place-vr__topbar{left:12px;top:12px}.xr-place-vr__hint{bottom:14px;white-space:nowrap}.xr-place-vr__title{font-size:13px}}
.xr-tool{display:grid;place-items:center;width:35px;height:35px;padding:0;border:0;border-radius:50%;color:#fff;background:transparent;cursor:pointer;font-size:17px;text-decoration:none}
.xr-tool:hover,.xr-tool:focus-visible{background:rgba(0,200,176,.75);outline:2px solid rgba(255,255,255,.75);outline-offset:1px}
.xr-tool-wide{width:auto;padding:0 14px;border-radius:18px;font-size:12px;letter-spacing:.08em}
.xr-bottom-nav{position:fixed;z-index:142;left:50%;bottom:22px;display:flex;align-items:center;gap:22px;transform:translateX(-50%);padding:8px 14px;color:rgba(236,255,251,.84);background:rgba(3,39,49,.34);border:1px solid rgba(255,255,255,.12);font-size:12px;letter-spacing:0;text-shadow:0 2px 14px rgba(0,20,32,.8);backdrop-filter:blur(6px)}
.xr-bottom-nav a{position:relative;text-decoration:none;white-space:nowrap}
.xr-bottom-nav a::before{content:"";display:block;width:5px;height:5px;margin:0 auto 5px;border-radius:50%;background:rgba(236,255,251,.72);box-shadow:0 0 0 4px rgba(0,200,176,.12)}
.xr-bottom-nav a:hover,.xr-bottom-nav a:focus-visible{color:#fff;outline:none}
.xr-bottom-nav a:hover::before,.xr-bottom-nav a:focus-visible::before{background:#00d9b9;box-shadow:0 0 0 5px rgba(0,217,185,.24)}

.xr-overview{position:fixed;z-index:190;top:0;right:0;bottom:0;box-sizing:border-box;width:min(1100px,92vw);display:flex;align-items:center;justify-content:flex-start;padding:8vh 0 8vh 70px;overflow:hidden;transform:translate3d(calc(100% - 46px),0,0);transition:transform .52s var(--xr-ease);touch-action:pan-y;pointer-events:none;contain:layout paint;will-change:transform}
.overview-open .xr-overview{transform:translate3d(0,0,0);pointer-events:auto}
.xr-overview::before{content:"";position:absolute;inset:0 0 0 46px;background:rgba(4,43,52,.2);border-left:1px solid rgba(255,255,255,.12);pointer-events:none}
.xr-overview-handle{position:absolute;left:0;top:calc(50% - 58px);width:46px;height:112px;border:1px solid rgba(255,255,255,.28);border-right:0;background:linear-gradient(180deg,rgba(0,155,190,.96),rgba(0,184,171,.96));color:#fff;box-shadow:0 14px 36px rgba(0,35,47,.3);cursor:pointer;pointer-events:auto;transform:translateY(-50%)}
.xr-overview-handle span{display:block;writing-mode:vertical-rl;margin:auto;font-size:13px;letter-spacing:.24em}
.xr-overview-viewport{position:relative;box-sizing:border-box;width:100%;height:min(590px,74vh);overflow:hidden;touch-action:pan-y;pointer-events:auto;contain:layout paint}
.xr-overview-grid{position:relative;display:flex;align-items:stretch;gap:16px;width:max-content;height:100%;transform:translate3d(var(--track-x,0px),0,0);will-change:transform;cursor:grab;user-select:none;pointer-events:auto}
.xr-overview-grid.is-dragging{cursor:grabbing}
.xr-overview-card{position:relative;box-sizing:border-box;flex:0 0 clamp(280px,19vw,320px);min-width:0;overflow:hidden;color:#fff;text-align:left;text-decoration:none;background:linear-gradient(180deg,rgba(0,172,165,.92),rgba(0,61,70,.94));border:1px solid rgba(255,255,255,.22);box-shadow:0 15px 42px rgba(0,40,52,.28);transition:transform .2s ease,filter .2s ease;appearance:none;padding:0;cursor:pointer}
.xr-overview-card:nth-child(2){flex-basis:clamp(460px,34vw,540px);cursor:default}
.xr-overview-card--intro{flex-basis:clamp(330px,24vw,390px)!important;background:linear-gradient(180deg,rgba(24,143,224,.94),rgba(0,190,170,.94))}
.xr-overview-card--map{background:linear-gradient(180deg,rgba(0,111,129,.9),rgba(0,52,63,.9))}
.xr-overview-card:hover,.xr-overview-card:focus-visible{transform:translateY(-7px);filter:brightness(1.08);outline:2px solid rgba(255,255,255,.78)}
.xr-overview-card--map:hover{transform:none;filter:none;outline:none}
.xr-card-head{position:relative;box-sizing:border-box;min-height:76px;padding:18px 54px 12px 18px;border-bottom:1px solid rgba(255,255,255,.25)}
.xr-card-head em{position:absolute;right:16px;top:18px;font:400 11px/1.3 Arial,sans-serif;color:rgba(255,255,255,.7)}
.xr-card-head b{display:block;font:700 23px/1.2 "STKaiti","KaiTi",serif;letter-spacing:0}
.xr-card-head small{font-size:10px;letter-spacing:.08em;color:#d9fffb}
.xr-overview-card img{display:block;width:100%;height:190px;object-fit:cover;filter:saturate(.92)}
.xr-card-copy{padding:17px;font-size:12px;line-height:1.85;color:rgba(255,255,255,.86)}
.xr-card-copy strong{display:block;margin-bottom:8px;font-size:16px;color:#fff}
.xr-card-copy p{margin:0;display:-webkit-box;-webkit-line-clamp:8;-webkit-box-orient:vertical;overflow:hidden}
.xr-overview-close,.xr-panel-close{position:absolute;right:18px;top:18px;width:38px;height:38px;border-radius:3px;border:1px solid rgba(255,255,255,.5);background:rgba(0,49,61,.68);color:#fff;font-size:22px;cursor:pointer;z-index:3}
.xr-overview-close{opacity:0;pointer-events:none;transition:.24s}
.overview-open .xr-overview-close{opacity:1;pointer-events:auto}

.xr-map-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-right:14px}
.xr-map-scope{display:flex;gap:2px;padding:2px;background:rgba(0,48,58,.42);border:1px solid rgba(255,255,255,.22)}
.xr-map-scope button{min-width:46px;height:28px;padding:0 8px;border:0;background:transparent;color:rgba(255,255,255,.72);font-size:11px;cursor:pointer}
.xr-map-scope button.is-active{background:rgba(255,255,255,.92);color:#075763}
.xr-map-stage{position:absolute;inset:76px 12px 12px;overflow:hidden;background:#dbead7;color:#0c3e43;isolation:isolate}
.xr-map-stage::before{content:"";position:absolute;inset:0;background:linear-gradient(24deg,transparent 0 44%,rgba(64,129,119,.2) 45% 48%,transparent 49%),linear-gradient(132deg,transparent 0 38%,rgba(64,129,119,.18) 39% 41%,transparent 42%),radial-gradient(circle at 54% 44%,rgba(0,161,145,.16),transparent 32%),repeating-linear-gradient(90deg,rgba(12,62,67,.04) 0 1px,transparent 1px 45px),repeating-linear-gradient(0deg,rgba(12,62,67,.04) 0 1px,transparent 1px 45px)}
.xr-map-river{position:absolute;z-index:0;left:55%;top:-8%;width:11%;height:118%;border-radius:999px;background:linear-gradient(180deg,rgba(0,183,191,.3),rgba(0,104,150,.4));transform:rotate(8deg)}
.xr-map-ring{position:absolute;left:41%;top:23%;width:31%;aspect-ratio:1;border:1px solid rgba(0,122,115,.28);border-radius:45% 55% 48% 52%;transform:rotate(-18deg)}
.xr-map-ring:nth-child(3){left:35%;top:18%;width:44%;opacity:.48;transform:rotate(11deg)}
.xr-map-layer{position:absolute;z-index:2;inset:0 160px 0 0;display:none}
.xr-map-layer.is-active{display:block}
.xr-map-point{position:absolute;left:var(--x);top:var(--y);display:grid;place-items:center;width:24px;height:24px;padding:0;border:1px solid rgba(255,255,255,.95);border-radius:50%;background:#00ac96;box-shadow:0 0 0 4px rgba(0,153,137,.18);color:#fff;text-decoration:none;cursor:pointer;transform:translate(-50%,-50%)}
.xr-map-point span{font-size:8px;line-height:1}
.xr-map-point::after{content:attr(data-title);position:absolute;left:27px;top:50%;min-width:max-content;padding:3px 6px;background:rgba(0,70,78,.82);color:#eafffb;font-size:10px;letter-spacing:0;transform:translateY(-50%);opacity:0;pointer-events:none}
.xr-map-point:hover,.xr-map-point:focus-visible{z-index:5;background:#087fc4;outline:2px solid #fff;outline-offset:2px}
.xr-map-point:hover::after,.xr-map-point:focus-visible::after{opacity:1}
.xr-map-point.is-active{background:#ff8a3c;box-shadow:0 0 0 6px rgba(255,138,60,.3),0 0 14px rgba(255,138,60,.5);z-index:6;outline:2px solid #fff;outline-offset:1px;transform:translate(-50%,-50%) scale(1.28)}
.xr-map-point.is-active::after{opacity:1;background:rgba(178,84,0,.92);color:#fff}
.xr-overview-card.is-active{outline:2px solid #ffd76a;box-shadow:0 0 0 5px rgba(255,215,106,.3),0 18px 46px rgba(0,40,52,.38);transform:translateY(-6px)}
.xr-map-layer[data-map-layer="region"] .xr-map-point::after{opacity:0}
.xr-map-layer[data-map-layer="region"] .xr-map-point:hover::after,.xr-map-layer[data-map-layer="region"] .xr-map-point:focus-visible::after{opacity:1}
.xr-map-north{position:absolute;z-index:1;left:14px;top:14px;display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(9,81,85,.35);border-radius:50%;font:700 11px/1 Arial;color:#075763}
.xr-map-north::after{content:"";position:absolute;top:-7px;border:4px solid transparent;border-bottom:8px solid #075763}
.xr-map-axis{position:absolute;z-index:1;color:rgba(23,85,86,.58);font:9px/1 Arial,sans-serif;pointer-events:none}
.xr-map-axis::before{content:attr(data-urban)}
.xr-map-stage[data-active-scope="region"] .xr-map-axis::before{content:attr(data-region)}
.xr-map-axis--west{left:12px;bottom:36px}.xr-map-axis--east{right:166px;bottom:36px}.xr-map-axis--north{left:48px;top:16px}.xr-map-axis--south{left:48px;bottom:14px}
.xr-map-caption{position:absolute;z-index:1;left:14px;bottom:12px;padding:4px 7px;background:rgba(240,250,242,.76);color:#275c5e;font-size:10px}
.xr-time-river-float{position:absolute;right:14px;top:18px;width:150px;padding:12px 10px;border:1px solid rgba(255,255,255,.36);background:linear-gradient(180deg,rgba(0,184,171,.78),rgba(0,77,91,.82));box-shadow:0 12px 34px rgba(0,43,52,.28);backdrop-filter:blur(10px)}
.xr-time-river-float::before{content:"时间长河";display:block;margin-bottom:9px;color:#fff;font:700 18px/1.2 "STKaiti","KaiTi",serif;letter-spacing:.1em}
.xr-river-node{display:grid;grid-template-columns:25px 1fr;gap:7px;align-items:start;color:#eafffb;text-decoration:none;font-size:11px;line-height:1.35}
.xr-river-node+.xr-river-node{margin-top:9px;padding-top:9px;border-top:1px solid rgba(255,255,255,.22)}
.xr-river-node span:first-child{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.18);color:#fff;font-size:10px}
.xr-river-node:hover,.xr-river-node:focus-visible{color:#fff;outline:1px solid rgba(255,255,255,.62);outline-offset:3px}

.immersive-ui .era,.immersive-ui .downloads,.immersive-ui .sources{display:none;position:fixed;z-index:180;inset:7vh 7vw 7vh 12vw;overflow:auto;padding:58px 70px 80px;color:#eafffb;background:linear-gradient(145deg,rgba(0,119,135,.91),rgba(0,52,63,.92));border:1px solid var(--xr-line);box-shadow:0 24px 80px rgba(0,31,45,.45);backdrop-filter:blur(16px)}
.immersive-ui .era.xr-panel-active,.immersive-ui .downloads.xr-panel-active,.immersive-ui .sources.xr-panel-active{display:block;animation:xrPanelIn .45s cubic-bezier(.22,1,.36,1)}
.immersive-ui .era-heading{margin-bottom:55px}
.immersive-ui .era-heading h2{font-size:48px;color:#fff}
.immersive-ui .timeline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;max-width:none}
.immersive-ui .timeline-node,.immersive-ui .timeline-node.left,.immersive-ui .timeline-node.right{width:100%;align-self:stretch;color:#183536;background:rgba(247,255,253,.92)}
.immersive-ui .timeline-node::before{display:none}
.immersive-ui .downloads,.immersive-ui .sources{text-align:center}
@keyframes xrPanelIn{from{opacity:0;transform:translateY(24px) scale(.985)}to{opacity:1;transform:none}}

@media(max-width:1200px){
  .xr-overview{width:96vw;padding-left:62px}.xr-overview-grid{gap:12px}.xr-card-head b{font-size:20px}.xr-overview-card img{height:160px}
  .immersive-ui .era{inset:7vh 4vw;padding:50px 42px}.xr-place-drawer{width:min(350px,calc(100vw - 16px))}
}
@media(max-width:900px){
  .xr-overview{align-items:center;padding-top:74px}.xr-overview-viewport{height:min(560px,72vh)}
  .immersive-ui .timeline{grid-template-columns:1fr}.xr-place-drawer{height:min(590px,72vh)}
  .xr-bottom-nav{gap:12px;font-size:11px}
}
@media(max-width:600px){
  .xr-compass{transform:scale(.72);transform-origin:left top}.immersive-ui .brand{font-size:18px}.immersive-ui .xr-controls{left:14px;bottom:66px}.xr-toolbar{left:14px;bottom:14px}
  .xr-hotspot__label{display:none}
  .xr-bottom-nav{left:10px;right:10px;bottom:64px;transform:none;justify-content:center;gap:0;padding:7px 4px;font-size:9px;overflow-x:auto}
  .xr-bottom-nav a{flex:1 0 auto;padding:0 5px;text-align:center}.xr-bottom-nav a::before{margin-bottom:3px}
  .xr-overview{width:100vw;padding-left:54px;transform:translate3d(calc(100% - 42px),0,0)}.overview-open .xr-overview{transform:translate3d(0,0,0)}.xr-overview::before{left:42px}.xr-overview-handle{width:42px;height:102px;top:calc(50% - 54px)}.xr-overview-viewport{height:72vh}.xr-overview-card,.xr-overview-card:nth-child(2),.xr-overview-card:nth-child(3){flex:0 0 82vw;min-height:500px}
  .xr-overview-card--map{min-height:540px}.xr-map-stage{inset:76px 8px 8px}.xr-map-layer{right:138px}.xr-map-axis--east{right:142px}.xr-time-river-float{right:8px;top:10px;width:126px}.xr-map-point::after{display:none}
  .immersive-ui .era,.immersive-ui .downloads,.immersive-ui .sources{inset:4vh 10px;padding:55px 16px}.xr-place-drawer{top:auto;right:6px;bottom:70px;width:calc(100vw - 12px);height:min(570px,72vh);transform:translate3d(var(--drawer-x,100%),0,0)}
  .xr-place-drawer__handle{left:-42px;width:42px;height:102px;top:calc(50% + 54px)}
  .xr-place-drawer__copy{padding:17px 18px 20px}.xr-place-drawer__copy h2{font-size:25px}
}
/* ---- Welcome Page ---- */
.xr-welcome{position:fixed;inset:0;z-index:250;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,rgba(4,43,52,.88),rgba(2,25,34,.96));transition:opacity .6s ease,visibility .6s ease}
.xr-welcome--hidden{opacity:0;visibility:hidden;pointer-events:none}
.xr-welcome__bg{position:absolute;inset:0;background-image:var(--xr-panorama,url("../images/panorama-jian-people-square.jpg"));background-size:cover;background-position:center;filter:blur(8px) brightness(.45);transform:scale(1.04)}
.xr-welcome__content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;color:#fff;padding:40px 24px}
.xr-welcome__seal{margin:0 0 18px;color:var(--xr-cyan);font-size:13px;letter-spacing:.35em}
.xr-welcome__brand{margin:0 0 12px;font:700 52px/1.2 "STKaiti","KaiTi",serif;letter-spacing:.08em;text-shadow:0 2px 18px rgba(0,38,60,.55)}
.xr-welcome__slogan{margin:0 0 42px;color:rgba(247,255,255,.72);font-size:16px;letter-spacing:.14em;line-height:1.7;max-width:420px}
.xr-welcome__enter{display:inline-flex;align-items:center;gap:10px;padding:14px 52px;border:1px solid var(--xr-cyan);background:linear-gradient(135deg,rgba(0,200,176,.28),rgba(0,139,153,.18));color:var(--xr-white);font-size:18px;letter-spacing:.14em;border-radius:2px;cursor:pointer;transition:background .28s,box-shadow .28s;font-family:"STKaiti","KaiTi",serif}
.xr-welcome__enter:hover,.xr-welcome__enter:focus-visible{background:rgba(0,200,176,.52);box-shadow:0 0 24px rgba(0,200,176,.32);outline:1px solid rgba(255,255,255,.8)}
.xr-welcome__enter::after{content:"→";font-size:20px;transition:transform .28s}
.xr-welcome__enter:hover::after{transform:translateX(4px)}
body.welcome-open .xr-toolbar,body.welcome-open .xr-hotspots,body.welcome-open .xr-bottom-nav,body.welcome-open .xr-compass,body.welcome-open .xr-place-drawer__handle,body.welcome-open .xr-overview-handle,body.welcome-open .xr-overlay,body.welcome-open .xr-controls{display:none}

/* ---- Background Music ---- */
.xr-bgm{display:none}
.xr-tool[data-xr-audio]{font-size:18px}
.xr-tool[data-xr-audio].xr-tool--muted{color:rgba(255,255,255,.38)}
.xr-tool[data-xr-audio].xr-tool--muted::after{content:"";position:absolute;width:18px;height:1.5px;background:rgba(255,255,255,.55);transform:rotate(-42deg)}

/* ---- Swiper Card Carousel ---- */
.xr-swiper{position:fixed;z-index:145;left:0;right:0;bottom:64px;height:172px;background:linear-gradient(0deg,rgba(2,37,49,.88),rgba(3,45,58,.64));border-top:1px solid var(--xr-line);backdrop-filter:blur(12px);transform:translateY(0);transition:transform .42s var(--xr-ease),opacity .3s;display:flex;align-items:center;padding:0 50px}
.xr-swiper[hidden]{display:flex;transform:translateY(calc(100% + 20px));opacity:0;pointer-events:none}
.xr-swiper__close{position:absolute;right:12px;top:10px;z-index:3;width:32px;height:32px;border-radius:3px;border:1px solid rgba(255,255,255,.42);background:rgba(0,43,56,.58);color:#fff;font-size:20px;cursor:pointer}
.xr-swiper__track{display:flex;gap:14px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:8px 4px;flex:1;height:100%;align-items:center}
.xr-swiper__track::-webkit-scrollbar{display:none}
.xr-swiper-card{flex:0 0 240px;height:140px;scroll-snap-align:center;position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.22);border-radius:4px;background:linear-gradient(180deg,rgba(0,172,165,.85),rgba(0,61,70,.88));box-shadow:0 8px 28px rgba(0,28,42,.35);cursor:pointer;transition:transform .22s ease,border-color .22s;appearance:none;padding:0;text-align:left;color:#fff}
.xr-swiper-card:hover,.xr-swiper-card:focus-visible{transform:translateY(-4px);border-color:rgba(255,255,255,.62);outline:none}
.xr-swiper-card img{width:100%;height:55%;object-fit:cover;display:block}
.xr-swiper-card__copy{padding:10px 14px}
.xr-swiper-card__copy small{display:block;font-size:10px;letter-spacing:.1em;color:rgba(255,255,255,.65)}
.xr-swiper-card__copy strong{font:700 15px/1.25 "STKaiti","KaiTi",serif;letter-spacing:0;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.xr-swiper__nav{display:flex;flex-direction:column;align-items:center;gap:6px;padding:0 6px}
.xr-swiper__prev,.xr-swiper__next{display:grid;place-items:center;width:30px;height:30px;border:1px solid rgba(255,255,255,.28);border-radius:50%;background:rgba(0,43,56,.48);color:#fff;font-size:18px;cursor:pointer}
.xr-swiper__dots{display:flex;flex-direction:column;gap:5px}
.xr-swiper__dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.28);transition:background .22s}
.xr-swiper__dot.is-active{background:var(--xr-cyan)}

@media(prefers-reduced-motion:reduce){
  .xr-overview,.xr-overview-card,.xr-place-drawer{transition:none!important}
  .xr-panel-active{animation:none!important}
  .xr-hotspot__pin::before{animation:none!important}
}

@media(max-width:600px){
  .xr-welcome__brand{font-size:32px}
  .xr-welcome__slogan{font-size:13px}
  .xr-welcome__enter{padding:12px 40px;font-size:16px}
  .xr-swiper{bottom:48px;height:148px;padding:0 12px}
  .xr-swiper-card{flex:0 0 190px;height:120px}
  .xr-swiper__nav{display:none}
  .xr-swiper__close{right:4px;top:4px}
}
