*{box-sizing:border-box;margin:0;padding:0}html,body,#app{background:#111;width:100%;height:100%;overflow:hidden}#hud{color:#eee;pointer-events:none;background:#0000008c;border-radius:6px;padding:8px 12px;font:13px/1.5 system-ui,sans-serif;position:fixed;top:16px;left:16px}#hud span{opacity:.7;display:block}#hud .status{color:#ffb27a;opacity:1;margin-top:4px;font-weight:600}#hud .camera-mode{opacity:1;margin-top:4px}#hud .hud-photos{color:#ffd9a8;opacity:1}#hud [hidden]{display:none}#hotspots{pointer-events:none;z-index:900;position:fixed;inset:0}.hotspot{cursor:pointer;pointer-events:auto;background:#ffcf7a;border:2px solid #fff;border-radius:50%;width:18px;height:18px;margin:-9px 0 0 -9px;position:absolute;top:0;left:0;box-shadow:0 0 10px 3px #ffc46ed9}.hotspot-glow{border:2px solid #ffd28ccc;border-radius:50%;animation:1.6s ease-out infinite hotspot-pulse;position:absolute;inset:-8px}@keyframes hotspot-pulse{0%{opacity:1;transform:scale(.6)}to{opacity:0;transform:scale(1.8)}}.hotspot-name{color:#fff;white-space:nowrap;opacity:0;pointer-events:none;background:#000000bf;border-radius:4px;padding:3px 8px;font:600 12px/1.4 system-ui,sans-serif;transition:opacity .15s;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.hotspot:hover .hotspot-name,.hotspot:focus-visible .hotspot-name{opacity:1}.hotspot:focus-visible{outline-offset:4px;outline:3px solid #fff}.hotspot.occluded{opacity:.35}.hotspot-leader{transform-origin:0 0;background:#ffdcaacc;height:1px;position:absolute;top:0;left:0}.hotspot.off,.hotspot-leader.off{visibility:hidden}@media (prefers-reduced-motion:reduce){.hotspot-glow{animation:none}}#photo-viewer{z-index:2000;color:#eee;background:#080504eb;place-items:center;font:14px/1.5 system-ui,sans-serif;display:grid;position:fixed;inset:0}#photo-viewer[hidden]{display:none}.photo-stage{flex-direction:column;align-items:center;gap:12px;max-width:min(92vw,1400px);display:flex}.photo-frame{border-radius:6px;line-height:0;position:relative;overflow:hidden;box-shadow:0 10px 40px #0009}.photo{cursor:zoom-in;max-width:min(88vw,1300px);max-height:72vh;transition:transform .25s;display:block}.photo-frame.zoomed .photo{cursor:zoom-out}.photo-blade{pointer-events:none;background:#000;height:50%;position:absolute;left:0;right:0;transform:translateY(-100%)}.photo-blade-top{top:0}.photo-blade-bottom{bottom:0;transform:translateY(100%)}#photo-caption{text-align:center;flex-direction:column;align-items:center;gap:2px;display:flex}.photo-title{font-size:17px}.photo-note{opacity:.8}.photo-link{color:#ffcf9a;font-size:13px}.photo-hint{text-align:center;opacity:.6;pointer-events:none;font-size:13px;position:absolute;bottom:14px;left:0;right:0}@media (height<=540px),(pointer:coarse){.photo-hint{display:none}}.photo-button{color:#fff;cursor:pointer;background:#ffffff1f;border:none;border-radius:50%;width:44px;height:44px;font:28px/44px system-ui,sans-serif;position:absolute}.photo-button:hover,.photo-button:focus-visible{background:#ffffff40}.photo-button[hidden]{display:none}.photo-close{top:16px;right:16px}.photo-prev{top:50%;left:16px;transform:translateY(-50%)}.photo-next{top:50%;right:16px;transform:translateY(-50%)}.photo-flash{opacity:0;pointer-events:none;background:#fff;position:fixed;inset:0}#telemetry{color:#eee;pointer-events:none;background:#0000008c;border-radius:6px;min-width:220px;padding:8px 12px;font:12px/1.5 system-ui,sans-serif;position:fixed;bottom:16px;right:16px}#telemetry dl{grid-template-columns:auto 1fr;gap:0 12px;margin-top:4px;display:grid}#telemetry dt{opacity:.65}#telemetry dd{text-align:right;font-variant-numeric:tabular-nums}#mastcam-overlay{pointer-events:none;position:fixed;inset:0;box-shadow:inset 0 0 160px #000000bf}#mastcam-overlay[hidden]{display:none}#mastcam-overlay .crosshair{border:1px solid #ffffff8c;border-radius:50%;width:56px;height:56px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#mastcam-overlay .crosshair:before,#mastcam-overlay .crosshair:after{content:"";background:#ffffff8c;position:absolute}#mastcam-overlay .crosshair:before{height:1px;top:50%;left:-16px;right:-16px}#mastcam-overlay .crosshair:after{width:1px;top:-16px;bottom:-16px;left:50%}#mastcam-overlay .mastcam-label{color:#ffffffd9;letter-spacing:.08em;font:600 13px/1 ui-monospace,monospace;position:absolute;bottom:16px;left:16px}
