*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#081217;color:#fff;font-family:"Microsoft YaHei","PingFang SC",sans-serif}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,canvas:focus-visible{outline:2px solid #bfffea;outline-offset:5px}button:disabled{cursor:wait}button,dialog{border:0}button{background:none}#experience{position:relative;width:100%;height:100%;isolation:isolate;--accent:#c9eaa4;--accent-rgb:201,234,164}#panorama,#fallback,#particles,.cinema-shade{position:absolute;inset:0;width:100%;height:100%}#panorama{cursor:grab;touch-action:none}#panorama:active{cursor:grabbing}#fallback{background:#24382e url('assets/orchard.jpg') center/cover;transition:background-image .4s}#particles,.cinema-shade{pointer-events:none}.cinema-shade{background:linear-gradient(180deg,rgba(3,12,14,.53),transparent 27%,transparent 48%,rgba(4,14,16,.87)),linear-gradient(90deg,rgba(4,12,16,.24),transparent 52%)}header{position:absolute;top:30px;left:40px;right:40px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:48px;height:48px}.brand strong{font-size:19px;font-weight:500;letter-spacing:3px}.brand span:not(.brand-mark){display:block;font-size:12px;letter-spacing:2px;color:#ffffffa6;margin-top:7px}.tools{display:flex;gap:10px}.tool{width:44px;height:44px;border:1px solid #ffffff38;border-radius:50%;background:#0a181c66;backdrop-filter:blur(15px);display:grid;place-items:center;transition:.25s}.tool:hover{background:#ffffff22;transform:translateY(-2px)}.tool svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.tool[aria-pressed="true"]{color:var(--accent);border-color:var(--accent)}#sound:not([aria-pressed="true"]) .sound-wave{opacity:.25}.scene-title{position:absolute;top:22%;left:5.2%;pointer-events:none;text-shadow:0 2px 18px #0008}.eyebrow{display:flex;align-items:center;gap:12px;font-size:13px;letter-spacing:3px;color:#e7f0df}.eyebrow>span:first-child{font-size:16px;letter-spacing:1px}.eyebrow i{display:block;width:36px;height:1px;background:#ffffff7a}h1{font-family:"Microsoft YaHei",sans-serif;font-size:clamp(34px,4vw,60px);font-weight:500;letter-spacing:7px;margin:16px 0}#scene-line{font-size:15px;letter-spacing:2px;color:#ffffffc7}.scene-title.change{animation:title-in .7s ease both}@keyframes title-in{from{opacity:0;transform:translateY(16px);filter:blur(8px)}to{opacity:1;transform:none;filter:blur(0)}}#hint{position:absolute;left:50%;top:56%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:14px;color:#fff;pointer-events:none;transition:opacity .5s;text-shadow:0 1px 10px #000}#hint svg{width:40px;height:25px;fill:none;stroke:#fff;stroke-width:1.2;animation:hint 3s ease-in-out infinite}#hint span{font-size:13px;letter-spacing:2px}@keyframes hint{50%{transform:translateX(7px)}}.hotspot{position:absolute;display:flex;align-items:center;gap:9px;transform:translate(-50%,-50%);white-space:nowrap;z-index:2}.hotspot .dot{width:34px;height:34px;border-radius:50%;border:1px solid #ffffffe0;background:#0a201951;backdrop-filter:blur(8px);display:grid;place-items:center;position:relative}.hotspot .dot:after{content:"";position:absolute;inset:-7px;border:1px solid #ffffff63;border-radius:50%;animation:pulse 2.7s ease-out infinite}.hotspot .dot:before{content:"+";font-size:23px;font-weight:200}.hotspot .hot-label{font-size:13px;letter-spacing:1px;text-shadow:0 1px 6px #000;background:#081a2080;border:1px solid #ffffff26;padding:8px 12px;border-radius:25px;backdrop-filter:blur(12px)}.hotspot:hover .dot{background:var(--accent);color:#182324}.hotspot.visited .dot:before{content:"✓";font-size:16px}@keyframes pulse{0%{transform:scale(.8);opacity:.85}100%{transform:scale(1.45);opacity:0}}.travel-action{position:absolute;right:5%;bottom:220px;display:flex;align-items:center;gap:24px}.travel-action>span{font-size:14px;letter-spacing:2px;text-shadow:0 2px 8px #000}.travel-action>button{position:relative;width:80px;height:80px;display:grid;place-items:center;border:1px solid #dffff1a0;border-radius:50%;background:radial-gradient(circle,#c7ffd735,#a5f4ee10 60%);backdrop-filter:blur(9px);box-shadow:0 0 40px #cbffe319,inset 0 0 24px #caffef22;transition:transform .3s}.travel-action>button:hover{transform:scale(1.09);box-shadow:0 0 50px #cbffe345}.travel-action svg{width:30px;fill:none;stroke:currentColor;stroke-width:1.5}.portal-rings{position:absolute;inset:-9px;border:1px solid #ffffff3b;border-radius:50%;border-top-color:#edffee;border-bottom-color:transparent;animation:spin 14s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}footer{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);width:min(860px,84vw)}.route-heading{display:flex;align-items:center;gap:18px;margin:0 4px 13px;font-size:12px;letter-spacing:2px;color:#ffffffa8}.route-heading>span:first-child{flex:1}.route-heading button{display:flex;align-items:center;gap:6px;color:#ecf7e6;font-size:12px;letter-spacing:1px;padding:3px}.play-symbol{font-size:18px;line-height:1}.route-heading>span:last-child{font-size:13px;font-variant-numeric:tabular-nums;letter-spacing:2px}#route{display:grid;grid-template-columns:repeat(6,1fr);border:1px solid #ffffff2b;border-radius:19px;padding:8px;background:linear-gradient(115deg,#122522bd,#09171bd6);backdrop-filter:blur(22px);box-shadow:0 16px 40px #0003;gap:5px}.stop{min-width:0;height:83px;position:relative;border:1px solid transparent;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;transition:.3s}.stop:hover{background:#ffffff0e}.stop[aria-current="step"]{background:#ffffff12;border-color:#dfffd650;box-shadow:inset 0 0 22px #f0ffc807}.stop .icon{width:47px;height:42px;filter:drop-shadow(0 4px 6px #0006);opacity:.6;transition:.3s}.stop[aria-current="step"] .icon,.stop:hover .icon{opacity:1;transform:translateY(-2px)}.stop>span:last-child{font-size:13px;letter-spacing:1px;color:#ffffffad}.stop[aria-current="step"]>span:last-child{color:#fff}.stop .stop-number{position:absolute;left:8px;top:5px;font-size:10px;color:#ffffff4d;font-variant-numeric:tabular-nums}.stop.visited:after{content:"";width:3px;height:3px;background:var(--accent);border-radius:50%;position:absolute;bottom:3px}.footer-meta{display:flex;justify-content:space-between;margin:12px 5px 0;color:#ffffff80;font-size:11px;letter-spacing:1px}.footer-meta b{padding:0 6px;font-weight:400}.icon{display:inline-block;background-image:url('assets/icons.png');background-repeat:no-repeat;background-size:300% 200%;flex-shrink:0}.icon-0{background-position:0 0}.icon-1{background-position:50% 0}.icon-2{background-position:100% 0}.icon-3{background-position:0 100%}.icon-4{background-position:50% 100%}.icon-5{background-position:100% 100%}#monitor{position:absolute;right:42px;top:150px;width:240px;background:#071c27a8;border:1px solid #adf5ff42;border-radius:14px;padding:19px;backdrop-filter:blur(18px);box-shadow:0 15px 35px #0002}#monitor[hidden]{display:none}.monitor-title{display:flex;align-items:center;gap:8px;font-size:14px}.monitor-title small{font-size:10px;color:#ffffff70;margin-left:auto}.signal{display:flex;align-items:flex-end;gap:2px;height:12px}.signal i{width:3px;height:5px;background:#a6eddf}.signal i:nth-child(2){height:8px}.signal i:last-child{height:12px}.monitor-grid{display:flex;gap:42px;margin-top:18px;font-size:11px;color:#a9c2ce}.monitor-grid b{display:block;font-size:18px;font-weight:400;color:#d3fff6;margin-top:7px}.trend{width:100%;height:35px;margin:12px 0 7px}.trend path{fill:none}.trend .grid{stroke:#ffffff12;stroke-width:.6}.trend .line{stroke:#a4eedd;stroke-width:1.4;stroke-dasharray:250;animation:trace 4s ease-in-out infinite}@keyframes trace{0%{stroke-dashoffset:250}70%,100%{stroke-dashoffset:0}}.data-links{display:flex;align-items:center;font-size:11px;color:#b9d8e2}.data-links i{flex:1;height:1px;background:linear-gradient(90deg,transparent,#a9ffe4,transparent);margin:0 10px}.data-links i:after{content:"";display:block;background:#b8ffee;width:4px;height:3px;animation:transmit 2s linear infinite}@keyframes transmit{to{transform:translateX(30px)}}#transition{position:absolute;inset:0;pointer-events:none;display:none;overflow:hidden;background:radial-gradient(ellipse at 50% 47%,#d5fff300 5%,#52b8b409 20%,#001b2bdf 90%);z-index:10}#transition.active{display:block;animation:warp-fade 1.65s both}.warp-ring{position:absolute;left:50%;top:47%;width:34vw;height:34vw;border:1px solid #bdfaffb0;border-radius:50%;box-shadow:0 0 35px #80eaff44,inset 0 0 40px #80eaff28;animation:tunnel 1.5s cubic-bezier(.3,.01,.7,1) both}.ring-b{animation-delay:.14s}.ring-c{animation-delay:.28s}.transition-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;text-shadow:0 0 18px #02121f}.transition-label span{font-size:12px;letter-spacing:6px;color:#c5e8ed}.transition-label strong{font-size:38px;font-weight:400;letter-spacing:10px}.transition-label i{width:60px;height:1px;background:#d8ffff;box-shadow:0 0 15px #9efff2}@keyframes tunnel{0%{transform:translate(-50%,-50%) scale(.12);opacity:0}25%{opacity:1}100%{transform:translate(-50%,-50%) scale(6);opacity:0}}@keyframes warp-fade{0%{opacity:0}22%,72%{opacity:1}100%{opacity:0}}#loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;background:#09191cf2;z-index:20;font-size:14px;letter-spacing:3px;transition:opacity .5s}.loading-ring{width:40px;height:40px;border:1px solid #ffffff20;border-top-color:#d6f2ac;border-radius:50%;animation:spin 1.5s linear infinite}#loading.loaded{opacity:0;pointer-events:none}#toast{position:absolute;top:100px;left:50%;transform:translate(-50%,-10px);padding:12px 22px;background:#061b21e6;border:1px solid #ffffff30;border-radius:25px;font-size:13px;opacity:0;transition:.3s;pointer-events:none;z-index:30}#toast.show{opacity:1;transform:translate(-50%,0)}dialog{background:linear-gradient(140deg,#153d39f5,#091b24fa);border:1px solid #dafff13d;border-radius:25px;color:#fff;width:min(460px,90vw);padding:35px 36px 25px;text-align:center;box-shadow:0 25px 100px #0008;backdrop-filter:blur(30px)}dialog::backdrop{background:#03131c61;backdrop-filter:blur(7px)}#close-detail{position:absolute;right:16px;top:9px;font-size:28px;color:#ffffff85;width:40px;height:40px}.detail-overline{font-size:12px;letter-spacing:4px;color:#bfddd4}.detail-hero{width:110px;height:110px;margin-top:12px;filter:drop-shadow(0 5px 20px #0004)}dialog h2{font-size:27px;font-weight:400;letter-spacing:3px;margin:8px 0 24px}#detail-flow{display:flex;align-items:center;justify-content:center;gap:8px}#detail-flow span{flex:1;padding:14px 5px;background:#ffffff0b;border:1px solid #ffffff16;border-radius:9px;font-size:14px}#detail-flow i{font-size:15px;font-style:normal;color:#a1d3c5}#detail-text{font-size:14px;color:#d2e2de;line-height:1.9;margin:22px 0}#detail-done{border-top:1px solid #ffffff21;padding:18px 0 0;width:100%;font-size:13px;letter-spacing:2px;color:#cdebd6}#detail-done span{margin-left:10px}.reduced *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
[hidden]{display:none!important}
.icon-0{background-size:327.4% 321.5%;background-position:2.3% 19.1%}
.icon-1{background-size:348.3% 335%;background-position:49.8% 21.6%}
.icon-2{background-size:298.6% 335%;background-position:99.8% 21.6%}
.icon-3{background-size:296.5% 335%;background-position:2.4% 85.8%}
.icon-4{background-size:273.2% 285%;background-position:54.7% 91.5%}
.icon-5{background-size:363.5% 280%;background-position:98% 85%}
.hotspot.edge .hot-label{display:none}.hotspot.edge .dot{background:#122b27b3;border-color:#e8ffdcbf}
@media(min-width:1600px){footer{bottom:38px;width:980px}.stop{height:96px}.stop .icon{width:58px;height:49px}.travel-action{bottom:245px}}
@media(max-width:850px){header{top:22px;left:25px;right:25px}.scene-title{top:20%;left:5%}.scene-title h1{font-size:40px}.travel-action{right:6%;bottom:206px}.travel-action>button{width:65px;height:65px}footer{width:92vw;bottom:18px}#monitor{right:25px;top:120px;width:215px;padding:15px}.monitor-grid{gap:26px}}
@media(max-width:600px){header{top:18px;left:18px;right:18px}.brand{gap:7px}.brand-mark{width:35px;height:35px}.brand strong{font-size:15px;letter-spacing:2px}.brand span:not(.brand-mark){font-size:10px;letter-spacing:1px}.tools{gap:7px}.tool{width:34px;height:34px}.tool svg{width:16px;height:16px}#motion{display:none}.scene-title{top:17%;left:24px}.eyebrow{font-size:11px;letter-spacing:2px}.scene-title h1{font-size:34px;letter-spacing:5px;margin:12px 0}.scene-title p{font-size:12px;letter-spacing:1px}#hint{top:49%}#hint span{font-size:11px}.hotspot .hot-label{font-size:11px;padding:7px 9px}.hotspot .dot{width:29px;height:29px}.travel-action{bottom:184px;right:28px;gap:18px}.travel-action>span{font-size:12px;letter-spacing:1px}.travel-action>button{width:59px;height:59px}footer{width:calc(100vw - 28px);bottom:max(16px,env(safe-area-inset-bottom))}#route{gap:1px;padding:5px;border-radius:15px}.stop{height:73px;border-radius:10px}.stop .icon{width:40px;height:38px}.stop>span:last-child{font-size:10px;letter-spacing:0}.stop .stop-number{font-size:9px;left:4px;top:2px}.route-heading{font-size:10px;letter-spacing:1px;margin-bottom:10px;gap:8px}.route-heading button{font-size:11px}.route-heading>span:last-child{font-size:11px}.footer-meta{font-size:9px;margin-top:10px;letter-spacing:0}#monitor{top:36%;right:17px;width:178px;padding:13px;pointer-events:none}.monitor-title{font-size:12px;gap:5px}.monitor-title small{font-size:8px}.monitor-grid{gap:28px;margin-top:12px;font-size:10px}.monitor-grid b{font-size:15px}.trend{height:25px;margin:7px 0}.data-links{font-size:9px}.transition-label strong{font-size:27px;letter-spacing:6px}.warp-ring{width:80vw;height:80vw}#toast{top:80px;width:max-content;max-width:90vw;font-size:12px}}
@media(max-height:570px){header{top:14px}.brand span:not(.brand-mark){display:none}.scene-title{top:22%}.scene-title h1{font-size:32px;margin:8px 0}footer{bottom:10px;width:min(740px,85vw)}.stop{height:61px}.stop .icon{width:37px;height:32px}.route-heading{margin-bottom:6px}.footer-meta{margin-top:5px}.travel-action{bottom:145px}.travel-action>button{width:54px;height:54px}#hint{top:47%}#monitor{top:92px;width:205px;padding:12px}.monitor-grid{margin-top:10px}.trend{height:22px;margin:7px 0}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important}}

@media(max-width:600px){.brand strong{font-size:13px;letter-spacing:0.5px}.brand span:not(.brand-mark){font-size:9px}}
