*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:#b8add4;color:#fff9ff;font-family:"Microsoft YaHei","PingFang SC",sans-serif;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid #fff;outline-offset:5px}#world{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab}#world:active{cursor:grabbing}.vignette{position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(77,62,112,.16),transparent 55%),linear-gradient(0deg,rgba(70,61,104,.11),transparent 25%)}header{position:absolute;top:40px;left:52px;right:52px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:13px;align-items:center;text-decoration:none;color:inherit;letter-spacing:4px;font-size:16px;font-weight:500}.brand-mark{font-family:Georgia,serif;font-size:46px;line-height:1;transform:rotate(-20deg)}.brand-sub{display:block;font-size:9px;letter-spacing:5px;margin-top:7px;opacity:.7}.top-actions{display:flex;align-items:center;gap:10px;font-size:11px;letter-spacing:2px;color:#fff9ffbf}.live-dot{width:5px;height:5px;background:#f5ecbc;border-radius:50%;box-shadow:0 0 9px #fff5bf}.icon-button{margin-left:20px;background:#ffffff0d;border:1px solid #ffffff40;border-radius:50%;width:38px;height:38px;font-size:23px}.intro{position:absolute;top:30%;left:7%;pointer-events:none}.eyebrow{font-size:9px;letter-spacing:3px;display:flex;align-items:center;gap:12px;opacity:.75}.eyebrow>span{width:24px;height:1px;background:currentColor}h1{font-family:"Songti SC","STSong","SimSun",serif;font-weight:400;font-size:clamp(38px,4.5vw,70px);line-height:1.4;letter-spacing:9px;margin:25px 0 22px;text-shadow:0 3px 35px #79679220}.intro p{font-size:12px;line-height:2.3;letter-spacing:2px;opacity:.76}.breath{display:flex;align-items:center;gap:12px;margin-top:38px;font-size:11px;letter-spacing:1px}.breath-orb{width:34px;height:34px;border-radius:50%;border:1px solid #fff5;display:grid;place-items:center}.breath-orb i{width:12px;height:12px;background:#fff5d7;border-radius:50%;box-shadow:0 0 18px #fff5da;animation:breathe 10s ease-in-out infinite}.breath-divider{height:10px;width:1px;background:#fff5;margin:0 2px}.breath-small{opacity:.55;font-size:10px}@keyframes breathe{0%,100%{transform:scale(.55);opacity:.5}40%{transform:scale(1.2);opacity:1}50%{transform:scale(1.2);opacity:1}}.scene-caption{position:absolute;right:5%;top:51%;font-size:10px;letter-spacing:3px;display:flex;flex-direction:column;gap:12px;color:#fffb}.scene-caption small{font-size:9px;letter-spacing:2px;color:#fff7}.caption-line{height:35px;width:1px;background:linear-gradient(#fff0,#fff9)}footer{position:absolute;bottom:34px;left:52px;right:52px;display:flex;align-items:center;justify-content:space-between;gap:20px}.interaction-hint,.footer-note{font-size:10px;letter-spacing:1.5px;color:#fffb}.interaction-hint span{font-size:19px;margin-right:9px}.interaction-hint b{font-weight:400;margin:0 7px;opacity:.5}.footer-note{color:#fff8}.controls{display:flex;align-items:center;padding:7px 14px;border:1px solid #ffffff55;background:#fff2;box-shadow:0 8px 35px #5a477216;backdrop-filter:blur(20px);border-radius:40px}.controls button{background:none;border:0;display:flex;align-items:center;gap:9px;border-radius:22px;font-size:11px;padding:11px 14px;white-space:nowrap;transition:background .2s}.controls button:hover,.icon-button:hover{background:#fff2}.control-icon{font-size:16px;min-width:14px;text-align:center}.separator{width:1px;height:17px;background:#fff3;margin:0 3px}.state{font-size:9px;border:1px solid #ffffff40;border-radius:7px;padding:1px 5px;color:#fffb}.ui{transition:opacity .8s,transform .8s}body.immersive .ui{opacity:0;pointer-events:none;transform:translateY(8px)}.restore{position:absolute;right:28px;bottom:25px;border:1px solid #fff5;background:#8875a344;backdrop-filter:blur(12px);border-radius:25px;padding:12px 18px;font-size:11px;letter-spacing:1px;opacity:.5}.restore:hover{opacity:1}.restore span{margin-left:14px;opacity:.6;font-size:9px}#status{position:absolute;bottom:112px;left:50%;transform:translateX(-50%);background:#6d5b8470;backdrop-filter:blur(12px);border-radius:20px;font-size:12px;padding:10px 18px;opacity:0;pointer-events:none;transition:opacity .3s}#status.visible{opacity:1}#error{position:absolute;inset:0;background:#aba0c9;display:grid;place-content:center;text-align:center;padding:30px}#error h2{font-size:24px;font-weight:400}#error p{font-size:13px;line-height:2}#error button{background:#fff2;border:1px solid #fff5;border-radius:20px;padding:12px;margin:20px auto}[hidden]{display:none!important}body.paused .breath-orb i{animation-play-state:paused}@media(min-width:1700px){.intro{left:9%}h1{font-size:76px}}@media(max-width:900px){header{left:28px;right:28px;top:25px}.intro{left:6%;top:24%}h1{font-size:46px;letter-spacing:6px}.scene-caption{display:none}footer{left:25px;right:25px;bottom:24px;justify-content:center}.footer-note,.interaction-hint{display:none}.top-note{font-size:10px}.eyebrow{font-size:8px;letter-spacing:2px}}@media(max-width:600px){.brand{font-size:12px;letter-spacing:3px}.brand-mark{font-size:36px}.brand-sub{font-size:8px}.top-note,.live-dot{display:none}.intro{top:17%;left:8%}h1{font-size:38px;line-height:1.45;margin:19px 0 13px;letter-spacing:5px}.intro p{font-size:10px;letter-spacing:1.5px}.eyebrow{font-size:7px}.breath{margin-top:19px;font-size:10px}.breath-small,.breath-divider{display:none}.breath-orb{height:28px;width:28px}.controls{padding:5px 7px}.controls button{padding:11px 10px;font-size:10px;gap:7px}.separator{margin:0 2px}footer{bottom:max(24px,env(safe-area-inset-bottom))}}@media(prefers-reduced-motion:reduce){.breath-orb i{animation:none}.ui{transition:none}}
/* Flight controls keep the scene visible and remain available in immersion. */
.intro .fly-entry{pointer-events:auto;display:flex;align-items:center;gap:16px;margin-top:25px;padding:14px 20px;border-radius:30px;border:1px solid #fffc;background:#ffffff1a;backdrop-filter:blur(15px);font-size:12px;letter-spacing:2px;box-shadow:0 8px 24px #25293820;transition:background .2s}
.fly-entry:hover{background:#ffffff38}.fly-entry>span:first-child{font-size:19px}.fly-arrow{opacity:.7}.intro .breath{margin-top:24px}.volume-control{display:flex;gap:5px;align-items:center;margin-right:6px}.volume-control input{width:62px;accent-color:#eee7d3;cursor:pointer}.volume-control output{font-size:8px;opacity:.7;min-width:24px}.flight-top{position:absolute;top:40px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:24px;pointer-events:auto}.flight-badge{font-size:12px;letter-spacing:2px;white-space:nowrap}.flight-badge small{display:block;font-size:9px;opacity:.6;margin-top:6px;letter-spacing:1px}.flight-top button{white-space:nowrap;font-size:11px;background:#17283855;backdrop-filter:blur(16px);border:1px solid #fff5;border-radius:25px;padding:11px 16px}.flight-top button span{opacity:.5;font-size:9px;margin-left:12px}.flight-help{position:absolute;left:50%;transform:translateX(-50%);bottom:111px;white-space:nowrap;font-size:10px;color:#fffc;letter-spacing:1px;text-shadow:0 1px 8px #162934}.flight-help b{font-weight:400;margin:0 12px;opacity:.5}kbd{font:inherit;font-size:9px;background:#20354430;border:1px solid #fff4;padding:4px 6px;border-radius:5px}.crosshair{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:25px;color:#ffffffa0;pointer-events:none}body.flying .intro,body.flying .scene-caption,body.flying #orbit-hint,body.flying .footer-note{opacity:0;pointer-events:none}body.flying .intro{visibility:hidden}body.flying footer{justify-content:center}#flight-hud{pointer-events:none}#touch-flight,.touch-help{display:none}.vignette{background:linear-gradient(90deg,rgba(22,34,54,.22),transparent 56%),linear-gradient(0deg,rgba(18,35,48,.15),transparent 22%)}body.immersive .flight-help{opacity:.55}body.immersive .flight-top{opacity:.6}.restore{z-index:5}.controls{background:#21364632}
@media(max-width:900px){.flight-top{top:95px}.flight-help{font-size:9px}.flight-help b{margin:0 5px}}
@media(max-width:600px){.intro .fly-entry{font-size:10px;padding:11px 15px;margin-top:18px;gap:10px}.intro .breath{margin-top:18px}.volume-control{position:absolute;bottom:57px;left:50%;transform:translateX(-50%);background:#21364638;backdrop-filter:blur(14px);border:1px solid #fff3;border-radius:20px;padding:5px 12px;gap:9px}.volume-control input{width:96px}.volume-control output{font-size:9px}.flight-top{top:93px;width:calc(100% - 50px);justify-content:space-between;gap:0}.flight-badge{font-size:10px}.flight-top button{font-size:10px;padding:10px 12px}.flight-top button span{display:none}.desktop-help{display:none}.touch-help{display:block;top:137px;bottom:auto;font-size:9px;opacity:.7}#touch-flight{display:block}#joystick{pointer-events:auto;touch-action:none;position:absolute;left:25px;bottom:135px;width:106px;height:106px;border:1px solid #fffa;border-radius:50%;background:#26415a38;backdrop-filter:blur(4px);display:grid;place-items:center}#stick{width:39px;height:39px;border:1px solid #fff8;border-radius:50%;background:#ffffff3b;box-shadow:0 3px 10px #192c4433;pointer-events:none}#joystick i{position:absolute;bottom:8px;font-style:normal;font-size:8px;letter-spacing:2px;opacity:.65;pointer-events:none}.altitude{position:absolute;right:27px;bottom:135px;display:flex;flex-direction:column;gap:9px}.altitude button{pointer-events:auto;touch-action:none;width:48px;height:48px;border-radius:50%;border:1px solid #fffa;background:#26415a48;backdrop-filter:blur(6px);font-size:20px;line-height:1}.altitude button small{display:block;font-size:8px;margin-top:3px;opacity:.75}.altitude button:active{background:#ffffff66}body.immersive .restore{right:15px;bottom:25px}}
@media(pointer:coarse) and (min-width:601px){#touch-flight{display:block}#joystick{position:absolute;left:35px;bottom:130px;width:106px;height:106px;border:1px solid #fff8;border-radius:50%;background:#26415a38;display:grid;place-items:center;pointer-events:auto;touch-action:none}#stick{width:39px;height:39px;border-radius:50%;background:#fff5}#joystick i{position:absolute;bottom:10px;font-size:9px}.altitude{position:absolute;right:35px;bottom:130px;display:flex;gap:12px}.altitude button{pointer-events:auto;touch-action:none;border:1px solid #fff8;background:#26415a38;border-radius:50%;width:50px;height:50px}.altitude small{display:block}.desktop-help{display:none}.touch-help{display:block}}
