:root{--hud: #7fd4ff;--hud-dim: #3a6b80;--hud-warn: #ffcc55;font-family:SF Mono,ui-monospace,Roboto Mono,Menlo,monospace}*{margin:0;padding:0;box-sizing:border-box}html,body,#app{width:100%;height:100%;overflow:hidden;background:#000;color:var(--hud)}canvas{display:block}#overlay{position:fixed;inset:0;pointer-events:none;z-index:10}#overlay:before,#overlay:after{content:"";position:fixed;pointer-events:none}#overlay:before{inset:0;box-shadow:inset 0 0 220px 40px #000a148c}.corner{position:fixed;width:46px;height:46px;border:2px solid var(--hud-dim);opacity:.8}.corner.tl{top:16px;left:16px;border-right:none;border-bottom:none}.corner.tr{top:16px;right:16px;border-left:none;border-bottom:none}.corner.bl{bottom:96px;left:16px;border-right:none;border-top:none}.corner.br{bottom:96px;right:16px;border-left:none;border-top:none}#reticle{position:fixed;top:50%;left:50%;width:26px;height:26px;margin:-13px 0 0 -13px;border:1px solid rgba(127,212,255,.5);border-radius:50%}#reticle:before,#reticle:after{content:"";position:absolute;background:#7fd4ff80}#reticle:before{left:50%;top:-8px;width:1px;height:8px}#reticle:after{top:50%;left:-8px;height:1px;width:8px}.hud{position:fixed;font-size:12px;line-height:1.5;text-shadow:0 0 6px rgba(0,20,30,.9);letter-spacing:.04em;white-space:pre}#hud-tl{top:26px;left:74px}#hud-tr{top:26px;right:74px;text-align:right}#hud-orbit{top:132px;right:74px;text-align:right}#hud-bl{bottom:28px;left:26px}#hud-time{top:18px;left:50%;transform:translate(-50%);text-align:center;font-size:13px}#hud-time .date{color:#fff;font-size:15px;letter-spacing:.08em}#hud-time .warp{color:var(--hud-warn)}.label{color:var(--hud-dim)}.val{color:var(--hud)}.warn{color:var(--hud-warn)}.big{color:#fff;font-size:14px}#dash{position:fixed;bottom:0;left:0;right:0;height:72px;background:linear-gradient(180deg,#040c1400,#040c14d9);border-top:1px solid var(--hud-dim)}#atmofx{position:fixed;inset:0;pointer-events:none;opacity:0;z-index:5;transition:opacity .2s linear}#target{position:fixed;transform:translate(-50%,-50%);pointer-events:none;z-index:11}#target-box{width:34px;height:34px;margin:0 auto;border:1px solid var(--hud-warn);border-radius:3px;box-shadow:0 0 8px #fc56}#target-label{margin-top:4px;text-align:center;font-size:11px;color:var(--hud-warn);white-space:pre;text-shadow:0 0 6px rgba(0,10,20,.95);line-height:1.35}#target.offscreen #target-box{border-radius:50%;width:16px;height:16px;border-style:dashed}#bodyinfo{position:fixed;top:50%;left:26px;transform:translateY(-50%);display:none;font-size:11px;line-height:1.55;background:#040c148c;border:1px solid var(--hud-dim);border-left:2px solid var(--hud-warn);padding:9px 14px 11px;border-radius:4px;min-width:168px}#bodyinfo .bi-title{color:#fff;letter-spacing:.08em;margin-bottom:5px;font-size:12px}#bodyinfo .bi-kind{color:var(--hud-dim);font-size:9px;text-transform:uppercase;letter-spacing:.12em}#bodyinfo .bi-k{color:var(--hud-dim);display:inline-block;width:64px}#bodyinfo .bi-v{color:var(--hud)}#toast{position:fixed;top:86px;left:50%;transform:translate(-50%);color:var(--hud-warn);font-size:15px;letter-spacing:.16em;opacity:0;transition:opacity .4s;text-shadow:0 0 12px rgba(255,204,85,.5)}#toast.show{opacity:1}#logbook{position:fixed;top:92px;left:26px;display:none;font-size:12px;line-height:1.55;background:#040c1499;border:1px solid var(--hud-dim);padding:10px 16px 12px;border-radius:4px;min-width:150px}#logbook .lb-title{color:#fff;margin-bottom:4px;letter-spacing:.1em}#logbook .lb-group{color:var(--hud-dim);margin-top:7px;text-transform:uppercase;font-size:10px;letter-spacing:.14em}#logbook .seen{color:var(--hud)}#logbook .unseen{color:var(--hud-dim);opacity:.55}#missions{position:fixed;top:92px;right:26px;display:none;font-size:12px;line-height:1.5;text-align:right;background:#040c14f5;backdrop-filter:blur(2px);border:1px solid var(--hud-dim);padding:10px 16px 12px;border-radius:4px;min-width:200px}#missions .mn-title{color:#fff;margin-bottom:6px;letter-spacing:.1em}#missions .done{color:var(--hud);margin-top:5px}#missions .pending{color:var(--hud-dim);opacity:.55;margin-top:5px}#missions .mn-desc{color:var(--hud-dim);font-size:10px;letter-spacing:.04em;opacity:.8}#debug{position:fixed;bottom:92px;right:26px;display:none;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px;line-height:1.5;color:var(--hud);background:#040c14d1;border:1px solid var(--hud-dim);padding:8px 12px 12px;border-radius:4px;max-width:70vw;pointer-events:auto}#debug .db-head{display:flex;justify-content:space-between;align-items:center;gap:18px;color:#fff;letter-spacing:.12em;margin-bottom:6px}#debug #db-copy{font:inherit;color:var(--hud);background:#7fd4ff1f;border:1px solid var(--hud-dim);border-radius:3px;padding:2px 10px;cursor:pointer}#debug #db-copy:hover{background:#7fd4ff42}#debug #db-body{margin:0;white-space:pre}.constellation-label{position:fixed;transform:translate(-50%,-50%);pointer-events:none;color:#9fe8ff;font-size:13px;letter-spacing:.34em;text-transform:uppercase;white-space:nowrap;text-shadow:0 0 10px rgba(40,120,160,.85)}.ref-label{position:fixed;transform:translate(-50%,-50%);pointer-events:none;font-size:10px;letter-spacing:.22em;white-space:nowrap;opacity:.75;text-shadow:0 0 8px rgba(0,10,20,.95)}.comet-label{position:fixed;transform:translate(-50%,-16px);pointer-events:none;color:#cfeffe;font-size:11px;letter-spacing:.12em;white-space:nowrap;text-shadow:0 0 9px rgba(40,120,160,.9)}.star-label{position:fixed;transform:translate(-50%,-16px);pointer-events:none;color:#eaf2ff;font-size:11px;letter-spacing:.14em;white-space:nowrap;text-shadow:0 0 8px rgba(60,90,140,.9)}.dso-label{position:fixed;transform:translate(-50%,16px);pointer-events:none;color:#cfe6ff;font-size:11px;letter-spacing:.12em;white-space:nowrap;text-shadow:0 0 9px rgba(30,90,140,.85)}.body-label{position:fixed;transform:translate(9px,-50%);pointer-events:none;font-size:11px;letter-spacing:.08em;white-space:nowrap;opacity:.92;text-shadow:0 0 6px rgba(0,10,20,.95)}.body-label .bl-arrow{display:none}.body-label.edge{transform:translate(-50%,-50%);opacity:.78}.body-label.edge .bl-arrow{display:inline-block;margin-right:5px;font-size:12px;vertical-align:middle}.apsis-label{position:fixed;transform:translate(-50%,-50%);pointer-events:none;font-size:10px;letter-spacing:.1em;white-space:nowrap;text-shadow:0 0 8px rgba(0,10,20,.95)}.flight-marker{position:fixed;transform:translate(-50%,-50%);pointer-events:none;font-size:16px;line-height:1;text-shadow:0 0 7px rgba(0,10,20,.95)}#mapview{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);display:none;pointer-events:none;border-radius:6px;box-shadow:0 0 40px #000a14b3;z-index:12}.sat-label{position:fixed;transform:translate(10px,-50%);pointer-events:none;color:#7fe0ff;font-size:10px;letter-spacing:.06em;white-space:nowrap;text-shadow:0 0 6px rgba(0,20,40,.95)}#overlay.photo .hud,#overlay.photo .corner,#overlay.photo #dash,#overlay.photo #reticle,#overlay.photo #target,#overlay.photo #bodyinfo,#overlay.photo #toast,#overlay.photo #logbook,#overlay.photo #missions,#overlay.photo #debug,#overlay.photo .constellation-label,#overlay.photo .comet-label,#overlay.photo .star-label,#overlay.photo .ref-label,#overlay.photo .dso-label,#overlay.photo .body-label,#overlay.photo .apsis-label,#overlay.photo .flight-marker,#overlay.photo #hud-orbit,#overlay.photo .sat-label,#overlay.photo #mapview,#overlay.photo #credits,#overlay.photo #click-to-fly{opacity:0!important}#credits{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);display:none;pointer-events:auto;min-width:320px;max-width:min(440px,86vw);max-height:82vh;overflow-y:auto;background:#040c14eb;border:1px solid var(--hud-dim);border-top:2px solid var(--hud-warn);border-radius:6px;padding:22px 26px 18px;font-size:12px;line-height:1.6;box-shadow:0 0 50px #000a14cc;z-index:13}#credits .cr-title{color:#fff;font-size:18px;letter-spacing:.14em}#credits .cr-sub{color:var(--hud);letter-spacing:.06em;margin-bottom:12px}#credits .cr-by{color:var(--hud)}#credits .cr-link{color:var(--hud-warn);text-decoration:none;border-bottom:1px solid rgba(255,204,85,.4)}#credits .cr-link:hover{border-bottom-color:var(--hud-warn)}#credits .cr-group{color:var(--hud-dim);text-transform:uppercase;font-size:10px;letter-spacing:.16em;margin:14px 0 3px}#credits .cr-row{display:flex;justify-content:space-between;gap:18px}#credits .cr-k{color:var(--hud);white-space:nowrap}#credits .cr-v{color:var(--hud-dim);text-align:right}#credits .cr-hint{margin-top:16px;text-align:center;color:var(--hud-dim);opacity:.7;font-size:10px;letter-spacing:.12em}#click-to-fly{position:fixed;top:50%;left:50%;transform:translate(-50%,40px);color:var(--hud);font-size:13px;letter-spacing:.12em;opacity:.85;text-shadow:0 0 10px rgba(0,30,40,.9);transition:opacity .3s}#click-to-fly.hidden{opacity:0}
