:root{color-scheme:dark;font-family:Inter,"Noto Sans TC",system-ui,sans-serif;color:#eef4f2;background:#101b20}*{box-sizing:border-box}body{margin:0;overflow:hidden}#scene{position:fixed;inset:0}#scene canvas{display:block;touch-action:none}.vignette{position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,#0c191ed9,transparent 48%),linear-gradient(0deg,#0b171deb,transparent 24%,transparent 80%,#0b171d88)}header{position:absolute;top:0;left:0;right:0;padding:26px 36px;display:flex;align-items:center;gap:24px}.brand{display:flex;gap:13px;align-items:center;text-decoration:none;color:inherit;font-size:19px;font-weight:650;letter-spacing:2px}.brand-icon{color:#bbeb92;font-size:38px}.brand small{display:block;font-size:9px;letter-spacing:2.3px;color:#a7b5b8;margin-top:5px}.status{margin-left:auto;font-size:11px;letter-spacing:1px;color:#d7e8de}.status i{display:inline-block;width:6px;height:6px;background:#b3ec85;border-radius:50%;margin-right:7px;box-shadow:0 0 14px #b3ec85}button{font:inherit;font-size:12px;color:#e4eeeb;border:1px solid #ffffff29;background:#172a30ad;padding:11px 16px;border-radius:5px;cursor:pointer;transition:.2s}button:hover{background:#334b50;border-color:#b7de9b}button:focus-visible{outline:2px solid #b7de9b;outline-offset:4px}.intro{position:absolute;left:36px;top:21%;width:265px}.eyebrow{font-size:9px;letter-spacing:2px;color:#b7de9b}h1{font-size:44px;line-height:1.28;letter-spacing:2px;font-weight:500;margin:17px 0}p{font-size:12px;color:#b6c5c6;line-height:1.9}.divider{width:35px;height:1px;background:#b7de9b;margin:26px 0 18px}.tag{font-size:11px;letter-spacing:2px}.note{font-size:10px;max-width:225px;color:#8fa6aa;margin:12px 0 22px}.primary{display:flex;width:230px;justify-content:space-between;background:#c1eba3;color:#162520;border:0;font-weight:650;padding:15px 18px;margin-bottom:10px}.primary:hover{background:#d2f8b8}#tour{width:230px}.views{margin-top:23px;display:flex;gap:6px;flex-wrap:wrap}.views label{width:100%;font-size:10px;color:#8da3a8;margin-bottom:6px}.views button{padding:8px;font-size:10px}footer{position:absolute;bottom:40px;left:36px;right:36px;display:flex;justify-content:space-between;align-items:end}.telemetry{display:flex;gap:35px}.telemetry label{display:block;font-size:8px;letter-spacing:1.6px;color:#9aafb2}.telemetry strong{font-family:monospace;font-size:27px;display:block;margin-top:9px;font-weight:400}.telemetry small{font-size:11px;color:#9aafb2}.settings{display:flex;gap:9px;align-items:center}.settings label{font-size:10px;display:flex;align-items:center;gap:10px;margin-right:10px}input{width:90px;accent-color:#b7de9b}.keys{position:absolute;bottom:12px;left:36px;display:flex;gap:23px;font-size:9px;color:#93a9ae}kbd{font-family:inherit;color:#d3dfdf}.map-panel{position:absolute;right:36px;bottom:125px;width:222px;background:#102127c9;border:1px solid #a2bec52b;border-radius:7px;padding:13px;backdrop-filter:blur(15px)}.panel-title{font-size:10px;display:flex;justify-content:space-between}.panel-title span{font-size:8px;color:#b7de9b;letter-spacing:2px}#map{width:194px;height:168px;margin:10px 0 0}.map-caption{display:flex;justify-content:space-between;font-size:8px;color:#9aafb2}#crosshair{position:absolute;left:50%;top:50%;color:#fff8;font-weight:200;pointer-events:none}#flightHint{display:none;position:absolute;top:100px;left:50%;transform:translateX(-50%);font-size:11px;background:#102127aa;padding:10px 20px;border-radius:20px;white-space:nowrap}body.flying .intro{opacity:0;pointer-events:none}body.flying #flightHint{display:block}dialog{border:1px solid #ffffff30;border-radius:12px;background:#14262e;color:#edf5ef;width:min(1100px,90vw);padding:28px}dialog::backdrop{background:#071015ca;backdrop-filter:blur(8px)}.dialog-head{display:flex;justify-content:space-between;align-items:center}.dialog-head small{font-size:9px;letter-spacing:2px;color:#b7de9b}h2{font-size:24px;margin:8px 0}.photo-grid{display:flex;gap:14px}.photo-grid img{width:calc((100% - 28px)/3);object-fit:contain;border-radius:4px}.touch-controls{display:none}@media(max-height:760px){.intro{top:17%}h1{font-size:34px}.divider{margin:15px 0}.note{margin-bottom:12px}.views{margin-top:12px}.intro p{margin:8px 0}}@media(max-width:800px){header{padding:18px}.brand{font-size:15px}.status{display:none}header>button{margin-left:auto}.intro{left:20px;top:17%;width:230px}h1{font-size:32px}.map-panel{right:15px;bottom:170px;width:135px;padding:8px}#map{width:117px;height:100px}.map-caption span{display:none}footer{left:20px;right:20px;bottom:65px;align-items:start;gap:16px}.telemetry{gap:16px}.telemetry label{font-size:7px;letter-spacing:0}.telemetry strong{font-size:21px}.settings{flex-wrap:wrap;justify-content:end;max-width:170px}.settings label{display:none}.settings button{font-size:10px;padding:8px}.keys{display:none}.touch-controls{display:flex;position:absolute;bottom:14px;left:20px;gap:6px}.touch-controls button{padding:9px 14px;touch-action:none}.photo-grid{flex-direction:column}.photo-grid img{width:100%}#flightHint{top:80px;font-size:9px}.note{max-width:190px}}

/* Flight buttons are available on desktop and touch screens. */
.touch-controls{display:flex;position:absolute;bottom:124px;left:36px;gap:6px;flex-wrap:wrap;max-width:330px}.touch-controls button{touch-action:none;padding:10px 12px}.touch-controls button:active{background:#c1eba3;color:#162520}.intro{max-height:calc(100vh - 310px);overflow-y:auto;scrollbar-width:thin}#scene canvas:focus{outline:none}@media(max-width:800px){.touch-controls{bottom:14px;left:20px;right:20px;max-width:none;gap:4px}.touch-controls button{font-size:10px;padding:9px}.intro{max-height:calc(100vh - 330px)}}
