:root{color-scheme:dark;--ink:#e9edf4;--muted:#9aa5b3;--panel:rgba(9,13,20,.93);--line:rgba(255,255,255,.13)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#020306;color:var(--ink);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}button,select{font:inherit}
#app{min-height:100vh;background:#020306}.scene{position:relative;min-height:100vh;overflow:hidden;background:#020306;isolation:isolate}
.sky{position:absolute;inset:0;background:radial-gradient(circle at 50% 28%,#17243a 0,#09111d 33%,#03060b 72%,#010204 100%);overflow:hidden}
.stars{position:absolute;inset:0;background-image:radial-gradient(#fff 0.7px,transparent .8px),radial-gradient(#b9d5ff .6px,transparent .7px);background-size:89px 89px,137px 137px;background-position:17px 31px,63px 11px;opacity:.7}
.moon-wrap{position:absolute;left:50%;top:43%;transform:translate(-50%,-50%);transition:.8s cubic-bezier(.2,.8,.2,1);z-index:3}
.moon{position:relative;width:min(42vw,360px);aspect-ratio:1;border-radius:50%;overflow:hidden;background:radial-gradient(circle at 38% 34%,#f6f5e8 0,#d7d6cb 48%,#a7a79f 82%,#777a78 100%);box-shadow:0 0 42px rgba(213,225,255,.18),0 0 110px rgba(135,171,218,.08)}
.crater{position:absolute;border-radius:50%;background:rgba(85,88,88,.23);box-shadow:inset 8px 6px 12px rgba(255,255,255,.07),inset -5px -5px 8px rgba(0,0,0,.18)}
.c1{width:16%;height:13%;left:19%;top:22%}.c2{width:9%;height:9%;left:61%;top:21%}.c3{width:21%;height:18%;left:53%;top:56%}.c4{width:12%;height:11%;left:25%;top:63%}.c5{width:7%;height:7%;left:45%;top:39%}
.moon-shadow{position:absolute;inset:-2%;border-radius:50%;pointer-events:none}
.clouds{position:absolute;inset:-10% -30%;z-index:4;opacity:0;pointer-events:none;background:radial-gradient(ellipse at 15% 30%,rgba(114,126,145,.65) 0 7%,transparent 15%),radial-gradient(ellipse at 43% 48%,rgba(85,98,117,.66) 0 9%,transparent 18%),radial-gradient(ellipse at 74% 28%,rgba(121,131,148,.58) 0 8%,transparent 17%);animation:cloudMove 34s linear infinite}
.rain{position:absolute;inset:0;z-index:7;opacity:0;pointer-events:none;background-image:repeating-linear-gradient(107deg,transparent 0 18px,rgba(189,211,235,.34) 19px,transparent 20px 35px);background-size:44px 90px;animation:rainFall .55s linear infinite}
@keyframes cloudMove{to{transform:translateX(18%)}}@keyframes rainFall{to{background-position:-28px 90px}}
.scene.cloudy .clouds{opacity:.63}.scene.rainy .clouds{opacity:.82}.scene.rainy .rain{opacity:.7}.scene.stormy .clouds{opacity:.94}.scene.stormy .rain{opacity:.9}
.eyepiece{position:absolute;inset:0;z-index:10;pointer-events:none;transition:.65s ease}.eyepiece-ring{position:absolute;left:50%;top:50%;width:min(82vw,720px);aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);border:clamp(30px,7vw,78px) solid #060709;box-shadow:inset 0 0 0 5px #323740,inset 0 0 35px #000,0 0 0 50vw #020203}.eyepiece-vignette{position:absolute;inset:0;background:radial-gradient(circle at center,transparent 0 28%,rgba(0,0,0,.2) 42%,rgba(0,0,0,.92) 69%)}
.observatory{position:absolute;inset:0;z-index:8;opacity:0;pointer-events:none;transition:.7s ease}.roof{position:absolute;top:-12%;width:63%;height:52%;background:linear-gradient(180deg,#101219,#07090e);border-bottom:2px solid #20242c}.roof-left{left:-11%;transform:rotate(18deg);transform-origin:left bottom}.roof-right{right:-11%;transform:rotate(-18deg);transform-origin:right bottom}.hatch-frame{position:absolute;left:50%;top:0;width:min(58vw,680px);height:49%;transform:translateX(-50%);border-left:15px solid #151922;border-right:15px solid #151922;border-bottom:14px solid #151922;clip-path:polygon(8% 0,92% 0,100% 100%,0 100%);box-shadow:0 18px 35px rgba(0,0,0,.45)}
.floor{position:absolute;left:0;right:0;bottom:0;height:31%;background:linear-gradient(180deg,#090b0e,#030405);border-top:1px solid #1e2228}
.desk{position:absolute;left:8%;bottom:18%;width:24%;height:8%;background:#17130f;border-top:3px solid #3a2b20;box-shadow:0 20px 0 -12px #0b0b0c}.lamp{position:absolute;right:18%;bottom:100%;width:8px;height:44px;background:#28231e}.lamp:after{content:"";position:absolute;left:-13px;top:-10px;width:34px;height:17px;border-radius:50% 50% 20% 20%;background:#6a3925;box-shadow:0 0 30px rgba(216,92,46,.24)}
.chart{position:absolute;left:9%;top:22%;width:44%;height:52%;background:linear-gradient(90deg,transparent 48%,#6d6a5f55 50%,transparent 52%),linear-gradient(#d8d3bd,#aaa68f);transform:rotate(-3deg);opacity:.65}
.mounted-scope{position:absolute;right:12%;bottom:16%;width:28%;height:35%}.scope-body{position:absolute;width:72%;height:16%;left:9%;top:12%;border-radius:40px;background:linear-gradient(#353b43,#11151a);transform:rotate(-20deg);border:2px solid #4d545f}.scope-body:after{content:"";position:absolute;right:-10%;top:-14%;width:18%;height:128%;border-radius:5px;background:#0c0e11;border:3px solid #555d68}
.scope-leg{position:absolute;top:32%;width:5px;height:58%;background:#272c32;transform-origin:top}.l1{left:40%;transform:rotate(17deg)}.l2{left:44%;transform:rotate(-22deg)}
.console{position:absolute;right:4%;bottom:6%;display:flex;gap:9px;padding:10px 13px;border:1px solid #242932;background:#090b0e;border-radius:8px}.console i{width:5px;height:5px;border-radius:50%;background:#bd4f34;box-shadow:0 0 9px #9c321d}.console i:nth-child(2){background:#627d72;box-shadow:0 0 9px #48675b}
.observatory-mode .observatory{opacity:1}.observatory-mode .eyepiece{opacity:0}.observatory-mode .moon-wrap{top:25%;left:58%;transform:translate(-50%,-50%) scale(.46)}.observatory-mode .moon{width:min(36vw,310px)}.observatory-mode .sky{background:radial-gradient(circle at 58% 18%,#16233a 0,#09101b 34%,#03060a 72%,#010203 100%)}
.topbar{position:absolute;z-index:20;top:0;left:0;right:0;padding:max(22px,env(safe-area-inset-top)) 24px 0;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}.topbar h1{margin:0;font-size:clamp(22px,3.4vw,36px);font-weight:600;letter-spacing:.02em}.topbar p{margin:5px 0 0;color:var(--muted);font-size:13px}.round-btn{pointer-events:auto;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:rgba(5,8,13,.62);color:#eef3fb;backdrop-filter:blur(14px);cursor:pointer}
.scene-toggle{position:absolute;z-index:15;inset:88px 0 126px;border:0;background:transparent;color:transparent;cursor:pointer}.scene-toggle span{position:absolute;left:50%;bottom:4%;transform:translateX(-50%);color:#b9c2ce;font-size:12px;letter-spacing:.04em;background:rgba(3,5,8,.48);border:1px solid rgba(255,255,255,.1);padding:9px 13px;border-radius:999px;backdrop-filter:blur(8px)}
.bottom{position:absolute;z-index:20;left:0;right:0;bottom:0;padding:0 22px max(22px,env(safe-area-inset-bottom));display:flex;justify-content:space-between;align-items:flex-end;gap:18px}.location-btn{max-width:46%;border:1px solid var(--line);border-radius:999px;padding:11px 15px;color:#e8edf4;background:rgba(5,8,13,.68);backdrop-filter:blur(14px);display:flex;gap:8px;align-items:center;cursor:pointer}.location-btn span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.moon-summary{text-align:right;text-shadow:0 2px 10px #000}.moon-summary strong{display:block;font-size:17px}.moon-summary span{display:block;margin-top:4px;color:#aeb7c4;font-size:12px}
.panel{position:absolute;z-index:30;top:82px;right:20px;width:min(380px,calc(100% - 40px));padding:23px;background:var(--panel);border:1px solid var(--line);border-radius:20px;backdrop-filter:blur(22px);box-shadow:0 20px 70px rgba(0,0,0,.42);opacity:0;transform:translateY(-8px);pointer-events:none;transition:.22s ease}.panel.show{opacity:1;transform:none;pointer-events:auto}.panel-close{position:absolute;right:13px;top:12px;width:38px;height:38px;border-radius:50%;border:0;background:#151922;color:#ddd;font-size:25px;cursor:pointer}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:#8e98a6;font-size:10px}.panel h2{margin:7px 42px 18px 0;font-size:25px}.facts{display:grid;grid-template-columns:1fr 1fr;gap:10px}.facts div{padding:13px;border-radius:13px;background:#0f131a;border:1px solid #1d232c}.facts span{display:block;color:#7f8996;font-size:11px}.facts strong{display:block;margin-top:5px;font-size:14px}.source-note{color:#7f8996;font-size:11px;line-height:1.55;margin:17px 0 0}.location-panel label{display:block;color:#929ca9;font-size:12px;margin:13px 0}.location-panel select{display:block;width:100%;margin-top:6px;padding:12px;border-radius:11px;border:1px solid #29313d;background:#0c1016;color:#eef2f8}.apply-btn{width:100%;padding:12px 14px;border:0;border-radius:11px;background:#d8dde6;color:#11151b;font-weight:700;cursor:pointer}
@media(max-width:680px){.moon{width:min(54vw,290px)}.eyepiece-ring{width:92vw}.bottom{align-items:stretch;flex-direction:column-reverse;gap:10px}.moon-summary{text-align:left}.location-btn{max-width:100%;width:max-content}.scene-toggle{bottom:168px}.observatory-mode .moon-wrap{top:27%;left:60%;transform:translate(-50%,-50%) scale(.58)}.desk{left:4%;width:31%}.mounted-scope{right:4%;width:38%}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}


/* Interactive Moon Monitoring Dome */
.observatory-mode .scene-toggle{display:none}
.telescope-mode .scene-toggle{display:block;z-index:16;inset:auto 50% max(150px,env(safe-area-inset-bottom) + 115px) auto;transform:translateX(50%);width:auto;height:44px;color:#e9edf4;white-space:nowrap}
.telescope-mode .scene-toggle span{position:static;transform:none;display:inline-block}
.telescope-mode .equipment-hotspot{display:none}
.observatory-mode .equipment-hotspot{display:flex}
.equipment-hotspot{position:absolute;z-index:15;pointer-events:auto;align-items:flex-end;justify-content:center;cursor:pointer;border:1px solid rgba(175,206,241,.24);border-radius:18px;background:rgba(20,39,60,.08);color:#e8f1ff;transition:background .2s ease,border-color .2s ease}
.equipment-hotspot:hover,.equipment-hotspot:focus-visible{background:rgba(77,124,164,.18);border-color:rgba(175,206,241,.7);outline-offset:3px}
.equipment-hotspot span{padding:7px 12px;margin-bottom:-20px;background:rgba(5,12,22,.88);border:1px solid #34465b;border-radius:999px;font-size:12px;white-space:nowrap;box-shadow:0 4px 18px #0009}
.workstation-hotspot{left:7%;bottom:19%;width:28%;height:22%}
.telescope-hotspot{right:8%;bottom:21%;width:30%;height:34%}
.desk-screen{position:absolute;left:25%;bottom:100%;width:58%;height:112px;border:6px solid #181e27;border-bottom-width:13px;border-radius:10px 10px 3px 3px;background:radial-gradient(circle at 32% 48%,#b8c8d7 0 15%,#1a314b 16% 17%,transparent 18%),linear-gradient(125deg,#07121f,#132a40);box-shadow:0 0 25px #3d83b42b,inset 0 0 15px #0008}
.screen-moon{position:absolute;left:24%;top:23%;width:28%;aspect-ratio:1;background:linear-gradient(90deg,#adbaca 55%,#253448 56%);border-radius:50%;box-shadow:0 0 9px #b7ccdf88}
.screen-bars{position:absolute;right:10%;top:22%;width:23%;height:55%;background:repeating-linear-gradient(to bottom,#6598bc 0 3px,transparent 3px 12px);opacity:.7}
.workstation-panel{position:absolute;z-index:45;inset:clamp(12px,4vh,36px) max(12px,calc((100% - 860px)/2));padding:clamp(18px,3.5vw,32px);border:1px solid #3a4d62;border-radius:22px;background:linear-gradient(160deg,rgba(14,25,39,.99),rgba(5,10,17,.99));box-shadow:0 30px 90px #000d;color:#e9edf4;overflow:auto;visibility:hidden;opacity:0;pointer-events:none;transform:translateY(12px);transition:opacity .22s,transform .22s,visibility .22s}
.workstation-panel.show{visibility:visible;opacity:1;pointer-events:auto;transform:none}
.report-heading{display:flex;justify-content:space-between;gap:20px;position:relative;padding-right:45px}
.report-heading h2{font-size:clamp(23px,3vw,34px);margin:8px 0}
.report-heading p{font-size:13px;color:#9aa9bc;margin:0}
.report-heading .panel-close{top:0;right:0}
.report-tools{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin-top:24px}
.report-tools label{display:flex;flex-direction:column;gap:7px;flex:1 1 105px;font-size:12px;color:#aab6c6}
.report-tools select{width:100%;padding:11px 10px;color:#f3f7fc;background:#111d2a;border:1px solid #3a4a5e;border-radius:9px;min-height:44px}
.report-today{color:#dce9f7;background:#193047;border:1px solid #38536d;padding:11px 14px;border-radius:9px;min-height:44px;cursor:pointer}
.report-status{font-size:12px;color:#adc1d5;margin:20px 0;min-height:17px}
.report-date-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:10px 0 16px}
.report-date-row h3{font-size:clamp(16px,2.6vw,22px);margin:0}
.report-date-row span{font-size:13px;border:1px solid #41617b;border-radius:999px;padding:8px 13px;background:#132438}
.report-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.report-metrics>div{border:1px solid #273a50;background:#101c2b;padding:18px;border-radius:13px;min-width:0}
.report-metrics span{display:block;font-size:12px;color:#9bacc0}
.report-metrics strong{display:block;font-size:clamp(17px,3vw,25px);margin-top:8px;overflow-wrap:anywhere}
.report-monthly{border-top:1px solid #2b3d50;margin-top:24px;padding-top:8px}
.report-monthly h3{font-size:16px}
.report-monthly p{color:#b8c7d7;font-size:13px;line-height:1.65}
.workstation-panel .source-note{margin-top:20px}
@media(max-width:680px){
 .desk-screen{height:62px;border-width:3px;border-bottom-width:7px}
 .workstation-hotspot{left:3%;bottom:24%;width:37%;height:22%}
 .telescope-hotspot{right:2%;bottom:27%;width:43%;height:30%}
 .equipment-hotspot span{font-size:10px;padding:7px 9px}
 .workstation-panel{inset:8px;padding:18px 14px;border-radius:16px}
 .report-tools{gap:9px}
 .report-tools label{flex:1 1 40%;min-width:0}
 .report-today{width:100%}
 .report-metrics>div{padding:13px}
 .report-metrics strong{font-size:17px}
}


/* 2026 lunar dome refinement – visual language shared with Window / Wind Field */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.scene{min-height:100svh}
.observatory-mode .observatory{pointer-events:none}
.observatory-mode .equipment-hotspot{pointer-events:auto}
.dome-shell{position:absolute;inset:-30% -13% 17%;border-radius:50% 50% 14% 14% / 66% 66% 20% 20%;background:radial-gradient(ellipse at 50% 70%,transparent 0 22%,#132131b8 47%,#070d17 75%),repeating-radial-gradient(ellipse at 50% 87%,transparent 0 13%,#7190a619 13.2% 13.5%,transparent 13.8% 24%),linear-gradient(115deg,#090d14,#233449 50%,#070d15);box-shadow:inset 0 -24px 80px #01050a,inset 0 10px 60px #293b55}
.dome-ribs{position:absolute;inset:4% 3%;border-radius:inherit;background:repeating-conic-gradient(from 0deg at 50% 75%,transparent 0 23deg,#7290a21e 24deg 24.5deg,transparent 26deg 47deg);opacity:.85}
.dome-light{position:absolute;left:8%;right:8%;bottom:17%;height:3px;border-radius:50%;background:linear-gradient(90deg,transparent,#6697bd88,transparent);box-shadow:0 0 30px #6096c8aa}
.dome-display{position:absolute;top:10%;left:50%;transform:translateX(-50%);width:min(66vw,860px);height:44%;border:clamp(8px,1.2vw,17px) solid #172633;border-radius:50% 50% 22% 22% / 18% 18% 9% 9%;background:radial-gradient(ellipse at 50% 46%,#1c3956 0%,#0a1627 65%,#04070c 100%);box-shadow:0 0 0 2px #304357,0 0 70px #3e85b52b,inset 0 0 52px #000b;overflow:hidden}
.dome-display:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,#a6cee506,transparent 46%,#9cc4e509 51%,transparent 65%);pointer-events:none}
.display-arc{position:absolute;inset:8% 6%;border:1px dashed #89b1d026;border-radius:50%}
.display-label,.display-foot{position:absolute;z-index:1;color:#9fb9ce;font-size:clamp(8px,.9vw,11px);letter-spacing:.17em}
.display-label{left:6%;top:8%}.display-foot{right:6%;bottom:8%}
.observatory-mode .moon-wrap{top:31%;left:50%;z-index:9;transform:translate(-50%,-50%) scale(.55)}
.observatory-mode .moon{width:min(32vw,330px);box-shadow:0 0 55px #b5cfe944,0 0 95px #7ca9c722}
.observatory-mode .clouds,.observatory-mode .rain{opacity:0!important}
.observatory-mode .floor{height:26%;background:radial-gradient(ellipse at 50% 0%,#273b4c 0,#0a121d 36%,#03070d 95%);border-top:3px solid #3b566c}
.observatory-mode .floor:after{content:"";position:absolute;left:21%;right:21%;top:8%;height:100%;border:1px solid #7da7c42f;border-radius:50%;transform:perspective(500px) rotateX(71deg);box-shadow:0 0 24px #7ba6d51b}
.observatory-mode .desk{left:11%;bottom:15%;width:25%;height:10%;background:linear-gradient(#243547,#101823);border:2px solid #344758;border-radius:8px 8px 4px 4px;box-shadow:0 18px 0 -8px #080f17,0 25px 35px #0009;transform:skewX(-4deg)}
.observatory-mode .desk-screen{left:8%;width:82%;height:clamp(72px,15vh,145px);border-color:#26394b;box-shadow:0 0 32px #5586b23c,inset 0 0 20px #0008}
.observatory-mode .desk-screen:after{content:"PHASE   ·   DATA";position:absolute;left:9%;bottom:9%;font-size:clamp(7px,.9vw,10px);letter-spacing:.15em;color:#b9d5e3}
.observatory-mode .mounted-scope{right:12%;bottom:15%;width:28%;height:37%;filter:drop-shadow(0 20px 15px #0008)}
.observatory-mode .scope-body{width:81%;height:20%;top:19%;background:linear-gradient(#536a78,#1c2c3c 43%,#0b121b);border:3px solid #6b8597;box-shadow:0 2px 15px #7fb9d433}
.observatory-mode .scope-body:before{content:"";position:absolute;left:6%;top:10%;width:16%;height:80%;border-radius:50%;background:#050b12;border:2px solid #90b1c0}
.observatory-mode .scope-leg{top:41%;height:58%;width:7px;background:linear-gradient(90deg,#172535,#6d8591,#111c2b)}
.observatory-mode .equipment-hotspot{background:transparent;border:none;border-radius:0;box-shadow:none}
.observatory-mode .equipment-hotspot:hover,.observatory-mode .equipment-hotspot:focus-visible{background:#6da7cf0f;outline:2px solid #8cc6e4aa;outline-offset:2px;border-radius:15px}
.observatory-mode .equipment-hotspot span{display:none}
.workstation-hotspot{left:10%;bottom:13%;width:29%;height:29%}
.telescope-hotspot{right:9%;bottom:14%;width:35%;height:40%}
.topbar{padding:max(20px,env(safe-area-inset-top)) max(20px,3vw) 0}
.topbar h1{font-size:clamp(22px,2.6vw,30px);font-weight:750}
.topbar p{font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.summary-chip{pointer-events:auto;display:flex;align-items:center;gap:9px;border:1px solid #ffffff20;border-radius:999px;background:#101822d9;color:#e9f1f9;padding:9px 13px;backdrop-filter:blur(12px);box-shadow:0 7px 24px #0003;cursor:pointer;font-size:12px;max-width:min(52vw,360px)}
.summary-chip span:first-child{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.summary-chip span:last-child{opacity:.65}
.summary-chip[aria-expanded="true"] span:last-child{transform:rotate(180deg)}
.bottom{padding:0 max(20px,3vw) max(24px,env(safe-area-inset-bottom));align-items:end;gap:12px}
.location-btn{font-size:12px;border:1px solid #ffffff20;background:#101822e8;box-shadow:0 8px 22px #0005;min-height:42px}
.moon-summary{border:1px solid #ffffff18;border-radius:14px;background:#0e1721bf;padding:11px 15px;backdrop-filter:blur(12px);text-align:right}
.moon-summary strong{font-size:14px}.moon-summary span{font-size:11px}
.panel{top:max(72px,calc(env(safe-area-inset-top) + 58px));right:max(16px,3vw);width:min(340px,calc(100% - 32px));background:#101720f5;border:1px solid #ffffff17;border-radius:17px;padding:18px;box-shadow:0 20px 52px #0009}
.panel h2{font-size:22px}
.panel-close{background:#ffffff13;width:33px;height:33px;font-size:22px}
.panel-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.panel-actions button{flex:1;border:1px solid #ffffff1b;border-radius:10px;padding:10px;background:#ffffff0c;color:#eaf2f9;font-size:11px;cursor:pointer}
.location-panel{left:max(16px,3vw);right:auto;top:auto;bottom:max(84px,calc(env(safe-area-inset-bottom) + 75px));max-height:calc(100svh - 110px);overflow:auto}
.location-panel .picker-description{color:#a7b6c5;font-size:12px;line-height:1.6}
.location-panel label{font-size:11px}
.location-panel select{background:#0a111a;border-color:#ffffff22;min-height:44px}
.location-panel .apply-btn{background:#d7e4ed}
.workstation-panel{background:linear-gradient(140deg,#101e2cfa,#070e17fa);border-color:#48647b}
.report-visual{display:flex;gap:26px;align-items:center;padding:21px;border-radius:16px;background:radial-gradient(circle at 18% 50%,#2b4357,#111e2c 57%,#0e1824);border:1px solid #35506a;margin-bottom:18px}
.phase-orb{flex:none;width:clamp(100px,18vw,160px);aspect-ratio:1;border-radius:50%;box-shadow:0 0 44px #7f9db533}
.phase-orb-shadow,.phase-orb-shadow svg{width:100%;height:100%;display:block}
.report-visual-copy{display:flex;flex-direction:column;gap:12px}
.report-visual-copy strong{font-size:clamp(19px,3vw,28px)}
.report-visual-copy>span:last-child{color:#9fb2c4;line-height:1.6;font-size:12px}
.report-graph,.report-calendar-wrap{margin-top:24px;padding:17px;border-radius:16px;border:1px solid #2e435a;background:#0d1825}
.report-section-head{display:flex;justify-content:space-between;align-items:baseline;gap:9px;flex-wrap:wrap;margin-bottom:16px}
.report-section-head h3{font-size:15px;margin:0}
.report-section-head span{font-size:10px;color:#94a9bd}
.report-chart{height:135px;width:100%;padding:6px 0}
.report-chart svg{width:100%;height:100%;display:block}
.calendar-days,.report-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}
.calendar-days{margin-bottom:7px;color:#95a9bc;font-size:10px;text-align:center}
.calendar-day{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:8px;padding:10px 3px;min-height:91px;background:#132131;border:1px solid #32475b;color:#e8eff8;border-radius:10px;cursor:pointer;font-size:11px}
.calendar-day:hover,.calendar-day:focus-visible{border-color:#a2c9e3;background:#1c3449}
.calendar-day.selected{border-color:#d2e6f7;box-shadow:inset 0 0 0 1px #d2e6f7}
.calendar-day small{color:#a1b7ca;font-size:10px}
.calendar-phase{width:27px;height:27px;border-radius:50%;border:1px solid #536577;box-shadow:0 0 10px #8aa9c71a}
.calendar-blank{min-height:0}
@media(max-width:680px){
 .dome-shell{inset:-13% -50% 20%}
 .dome-display{top:15%;width:85vw;height:31%;border-width:7px}
 .display-label,.display-foot{font-size:7px;letter-spacing:.09em}
 .observatory-mode .moon-wrap{top:30%;left:50%;transform:translate(-50%,-50%) scale(.65)}
 .observatory-mode .moon{width:37vw}
 .observatory-mode .desk{left:5%;bottom:25%;width:39%}
 .observatory-mode .mounted-scope{right:4%;bottom:25%;width:39%;height:26%}
 .workstation-hotspot{left:3%;bottom:24%;width:44%;height:24%}
 .telescope-hotspot{right:3%;bottom:24%;width:45%;height:30%}
 .topbar{flex-wrap:wrap;gap:9px}
 .summary-chip{margin-left:auto;max-width:55vw;padding:8px 10px;font-size:10px}
 .moon-summary{padding:10px 12px;text-align:left}
 .bottom{flex-direction:column-reverse;align-items:stretch}
 .location-btn{max-width:100%;width:max-content}
 .location-panel{bottom:max(130px,calc(env(safe-area-inset-bottom) + 115px))}
 .report-visual{gap:15px;padding:13px}
 .phase-orb{width:91px}
 .calendar-days,.report-calendar{gap:4px}
 .calendar-day{min-height:73px;padding:7px 1px;gap:5px}
 .calendar-phase{width:20px;height:20px}
 .calendar-day small{font-size:8px}
 .report-graph,.report-calendar-wrap{padding:12px}
}


/* Clean computer, telescope optics, and upper-left Window-style area selector */
.area-dock{position:absolute;z-index:27;top:max(82px,calc(env(safe-area-inset-top) + 69px));left:max(20px,3vw);max-width:min(390px,calc(100% - 40px))}
.area-dock .location-btn{width:auto;max-width:100%;padding:8px 12px;min-height:38px;background:#101822e8;box-shadow:0 8px 24px #0007}
.location-panel{top:max(126px,calc(env(safe-area-inset-top) + 116px));bottom:auto;left:max(20px,3vw);right:auto;max-height:calc(100svh - 148px)}
.bottom{justify-content:flex-end}
.observatory-mode .desk{left:10%;bottom:15%;width:27%;height:10%;border-top:2px solid #465d70;background:linear-gradient(180deg,#273e4d,#142231);border-radius:10px 10px 5px 5px;box-shadow:0 18px 0 -8px #0b131d,0 25px 33px #000b;transform:skewX(-3deg)}
.observatory-mode .desk-screen{position:absolute;left:3%;bottom:100%;width:93%;height:clamp(94px,17vh,159px);overflow:hidden;border:7px solid #263644;border-bottom-width:12px;border-radius:10px 10px 5px 5px;background:linear-gradient(115deg,#050d14,#102336);box-shadow:0 0 0 1px #718d9a42,0 0 27px #4b83a12b,inset 0 0 20px #0009}
.observatory-mode .desk-screen:after{content:none}
.work-screen-content{position:absolute;inset:0;overflow:hidden;color:#8bbfd3;background:repeating-linear-gradient(0deg,#68aac20b 0 1px,transparent 1px 5px),linear-gradient(135deg,#091824,#0f2935);font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.terminal-header{position:absolute;left:9%;top:14%;font-size:clamp(7px,.7vw,10px);letter-spacing:.12em;white-space:nowrap}
.terminal-grid{position:absolute;left:9%;right:12%;top:35%;bottom:19%;background:repeating-linear-gradient(90deg,transparent 0 19%,#6da0b32b 19.4% 19.8%,transparent 20.2%),repeating-linear-gradient(0deg,transparent 0 22%,#6da0b32b 22.4% 23%,transparent 23.5%);border-left:1px solid #51788c78;border-bottom:1px solid #51788c78;opacity:.75}
.terminal-lines{position:absolute;left:15%;top:48%;width:67%;height:20%;border-top:2px solid #b0d6dd8c;border-radius:48% 42% 0 0;transform:skewY(-10deg);box-shadow:0 -4px 15px #81aaca44}
.terminal-cursor{position:absolute;left:9%;bottom:9%;height:3px;width:13%;background:#8ac5ce;animation:terminalBlink 1.8s steps(1) infinite}
.screen-glitch{position:absolute;inset:0;pointer-events:none;opacity:0;background:linear-gradient(180deg,transparent 16%,#b4f1ff4f 17%,transparent 19%,transparent 61%,#c7e8ff42 62%,transparent 66%);animation:screenInterference 11s steps(1,end) infinite}
@keyframes terminalBlink{50%{opacity:.12}}
@keyframes screenInterference{0%,93%,95%,97%,100%{opacity:0;transform:translateX(0)}94%{opacity:.48;transform:translateX(4px)}96%{opacity:.32;transform:translateX(-3px)}98%{opacity:.2;transform:translateX(2px)}}
.computer-base{position:absolute;right:6%;bottom:18%;width:17%;height:30%;border:2px solid #536576;border-radius:4px;background:linear-gradient(130deg,#202d39,#09121d);box-shadow:4px 4px 12px #0009}
.activity-led,.power-led{position:absolute;bottom:13%;width:5px;height:5px;border-radius:50%}
.activity-led{right:14%;background:#ff4639;box-shadow:0 0 7px 2px #d9292677;animation:driveActivity 3.5s steps(1,end) infinite}
.power-led{right:45%;background:#76c5d2;box-shadow:0 0 7px #76c5d288}
@keyframes driveActivity{0%,18%,45%,75%,100%{opacity:.9}19%,23%,50%,53%,80%,83%{opacity:.15}}
.observatory-mode .mounted-scope{right:10%;bottom:15%;width:32%;height:40%;filter:drop-shadow(0 18px 17px #000b)}
.observatory-mode .scope-body{position:absolute;left:12%;top:17%;width:78%;height:21%;border-radius:40px 15px 15px 40px;background:linear-gradient(180deg,#839dab 0%,#384e60 15%,#132334 48%,#07121d 82%,#536d7c 100%);border:3px solid #829eae;transform:rotate(-22deg);box-shadow:0 4px 12px #0009,inset 0 2px 4px #def6ff55}
.observatory-mode .scope-body:before{content:none}
.scope-highlight{position:absolute;left:11%;right:8%;top:17%;height:8%;border-radius:20px;background:#b1c8d46b}
.scope-back,.scope-front{position:absolute;z-index:2;border-radius:50%;border:5px solid #869dac;background:radial-gradient(ellipse at 35% 32%,#27455a,#030a10 64%);box-shadow:inset 0 0 0 3px #111e2b,0 0 13px #a4c6df40}
.scope-back{left:11%;top:32%;width:17%;aspect-ratio:1;transform:rotate(-22deg)}
.scope-front{right:8%;top:6%;width:14%;aspect-ratio:1;transform:rotate(-22deg)}
.scope-focuser{position:absolute;left:44%;top:32%;width:11%;height:10%;background:linear-gradient(90deg,#182e3f,#8299a8,#111d29);border:2px solid #4c6c7e;border-radius:5px;transform:rotate(-25deg)}
.scope-mount{position:absolute;left:46%;top:43%;width:14%;height:12%;background:linear-gradient(90deg,#152230,#617e91,#101a27);border:2px solid #617f91;border-radius:7px;box-shadow:0 3px 8px #0008}
.scope-axis{position:absolute;left:52%;top:53%;width:5px;height:12%;background:#718e9b}
.observatory-mode .scope-leg{position:absolute;top:62%;width:clamp(4px,.5vw,8px);height:38%;background:linear-gradient(90deg,#111d29,#7895a7,#111d29);transform-origin:top}
.observatory-mode .scope-leg.l1{left:52%;transform:rotate(20deg)}
.observatory-mode .scope-leg.l2{left:52%;transform:rotate(-22deg)}
.observatory-mode .scope-leg.l3{left:52%;height:34%;transform:rotate(0deg)}
.workstation-hotspot{left:9%;bottom:14%;width:30%;height:35%}
.telescope-hotspot{right:8%;bottom:15%;width:37%;height:43%}
@media(max-width:680px){
 .area-dock{top:max(98px,calc(env(safe-area-inset-top) + 92px));left:17px;max-width:calc(100% - 34px)}
 .area-dock .location-btn{min-height:36px;font-size:11px}
 .location-panel{top:max(144px,calc(env(safe-area-inset-top) + 135px));bottom:auto;left:13px;max-height:calc(100svh - 158px)}
 .bottom{flex-direction:row;align-items:flex-end;justify-content:flex-end}
 .moon-summary{max-width:62vw;text-align:right}
 .observatory-mode .desk{left:4%;bottom:25%;width:40%}
 .observatory-mode .desk-screen{height:clamp(76px,12vh,105px);border-width:4px;border-bottom-width:8px}
 .terminal-header{font-size:6px}
 .observatory-mode .mounted-scope{right:3%;bottom:25%;width:42%;height:29%}
 .scope-back,.scope-front{border-width:3px}
 .workstation-hotspot{left:3%;bottom:24%;width:43%;height:31%}
 .telescope-hotspot{right:3%;bottom:24%;width:45%;height:34%}
 .computer-base{width:16%}
}
@media(prefers-reduced-motion:reduce){.screen-glitch,.activity-led,.terminal-cursor{animation:none!important}.screen-glitch{opacity:0}}

/* Remove the legacy rear barrel cap now that the telescope has separate optical ends. */
.observatory-mode .scope-body:after{content:none}


/* Ensure the lunar SVG shadow actually covers the preview's full circular disk.
   The former percentage-height child could collapse inside an aspect-ratio-only parent. */
.phase-orb{position:relative;overflow:hidden;background:radial-gradient(circle at 38% 34%,#f2f1e8,#c7ccd0 65%,#808e99)}
.phase-orb-shadow{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}
.phase-orb-shadow svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.moon-shadow{overflow:hidden}
.moon-shadow svg{display:block;width:100%;height:100%}


/* Unified upper-left Window-style controls: no duplicate corner or bottom widgets */
.topbar{left:0;right:auto;max-width:calc(100% - 32px);display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:17px;padding:max(20px,env(safe-area-inset-top)) max(18px,3vw) 0;pointer-events:none}
.brand-group{flex:none;min-width:0}
.topbar .brand-group h1{font-size:clamp(22px,2.4vw,31px);margin:0}
.topbar .brand-group p{margin:4px 0 0;letter-spacing:.085em;font-size:10px}
.topbar .summary-chip{margin:0;pointer-events:auto;display:flex;flex:0 1 auto;max-width:min(460px,calc(100vw - 255px));gap:8px;padding:9px 12px;font-size:12px;min-height:37px}
.summary-chip #locationLabel{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:190px}
.summary-chip #topSummary{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0}
.summary-separator{flex-shrink:0;color:#7f93a7}
.summary-caret{flex-shrink:0;transition:transform .2s ease}
.summary-chip[aria-expanded="true"] .summary-caret{transform:rotate(180deg)}
.moon-info-panel{left:max(18px,3vw);right:auto;top:max(85px,calc(env(safe-area-inset-top) + 68px));width:min(360px,calc(100% - 36px));max-height:calc(100svh - 106px);overflow-y:auto}
.summary-location{font-size:12px;color:#92a8bc;margin:-8px 0 16px}
.picker-fields{display:grid;gap:10px;border-top:1px solid #ffffff1a;margin-top:15px;padding-top:14px}
.picker-fields[hidden]{display:none}
.picker-fields label{display:flex;flex-direction:column;gap:6px;color:#a2b4c6;font-size:11px}
.picker-fields select{width:100%;background:#0c1520;color:#edf3f8;border:1px solid #ffffff27;border-radius:9px;padding:10px;min-height:43px}
.picker-fields .apply-btn{color:#0b1623;background:#d5e5ef;border-radius:9px;margin-top:2px}
.picker-fields .source-note{margin:0}
.bottom,.area-dock,.moon-summary{display:none!important}
/* Larger, portrait-balanced research display with a clean workstation body */
.observatory-mode .desk{left:10%;bottom:13%;width:27%;height:9%;background:linear-gradient(180deg,#314557,#152432);border:2px solid #526779;border-radius:9px;box-shadow:0 14px 0 -5px #101b27,0 23px 27px #000a;transform:skewX(-3deg)}
.observatory-mode .desk-screen{height:clamp(155px,23vh,240px);bottom:100%;left:4%;width:92%;border:7px solid #283d4d;border-bottom:12px solid #263b4a;border-radius:12px 12px 6px 6px;box-shadow:0 0 0 1px #8da7b345,0 0 27px #4d88ad33,inset 0 0 24px #000d}
.work-screen-content{background:repeating-linear-gradient(0deg,#8bd4ed09 0 1px,transparent 1px 5px),linear-gradient(130deg,#0a1724,#102d3b)}
.terminal-header{top:12%;left:9%;letter-spacing:.1em}
.terminal-grid{top:30%;bottom:18%}
.terminal-lines{top:48%}
.computer-base{height:34%;bottom:15%}
/* A substantial refractor on a single observatory pier, not a phone on a tripod */
.observatory-mode .mounted-scope{right:7%;bottom:11%;width:38%;height:49%;filter:drop-shadow(0 15px 18px #000c)}
.observatory-mode .scope-body{position:absolute;left:13%;top:22%;width:76%;height:19%;border:3px solid #738b9d;border-radius:30px 12px 12px 30px;background:linear-gradient(180deg,#9aafbb 0%,#4b6477 11%,#233c50 31%,#0b1a2b 66%,#1a3142 85%,#667f8d 100%);transform:rotate(-21deg);box-shadow:inset 0 3px 4px #e0f3ff5e,0 8px 16px #000a;z-index:5}
.observatory-mode .scope-body:before,.observatory-mode .scope-body:after{content:none}
.scope-highlight{position:absolute;left:9%;right:5%;top:15%;height:6%;border-radius:100%;background:#b7d2db55}
.scope-band{position:absolute;top:-8%;bottom:-8%;width:7%;border:2px solid #889aa7;border-radius:6px;background:linear-gradient(90deg,#182c3e,#637e90,#1b2c3c);box-shadow:2px 1px 5px #000a}
.scope-band.band-a{left:28%}.scope-band.band-b{right:21%}
.observatory-mode .scope-front{position:absolute;z-index:7;right:7%;top:7%;width:14%;height:19%;border-radius:50%;border:clamp(5px,.55vw,9px) solid #819bac;background:radial-gradient(ellipse at 38% 34%,#193849 0%,#081522 53%,#01060e 82%);box-shadow:inset 0 0 0 3px #1a3040,0 0 16px #739bb066;transform:rotate(-21deg)}
.observatory-mode .scope-back{position:absolute;z-index:7;left:10%;top:34%;width:10%;height:13%;border-radius:50%;border:4px solid #7d98a5;background:#102338;transform:rotate(-21deg);box-shadow:inset 0 0 9px #000}
.finder-tube{position:absolute;z-index:6;left:44%;top:6%;width:31%;height:6%;border:2px solid #6d8494;border-radius:9px;background:linear-gradient(#879caa,#172b3b,#0b1929);transform:rotate(-21deg);box-shadow:0 3px 8px #0009}
.finder-bracket{position:absolute;z-index:5;left:55%;top:12%;height:14%;width:5%;border-left:5px solid #657c8d;transform:rotate(20deg)}
.observatory-mode .scope-focuser{position:absolute;z-index:8;left:4%;top:37%;width:15%;height:9%;border:3px solid #708999;border-radius:5px;background:linear-gradient(#4b6578,#101c2b,#5e7988);transform:rotate(-21deg)}
.scope-diagonal{position:absolute;z-index:8;left:0%;top:40%;width:9%;height:10%;border:3px solid #657e90;border-radius:4px;background:#172d3c;transform:rotate(24deg)}
.scope-eyepiece{position:absolute;z-index:9;left:1%;top:48%;width:11%;height:6%;border-radius:5px;background:linear-gradient(#8297a5,#192938,#475d6b);border:2px solid #879eac;transform:rotate(-24deg)}
.scope-saddle{position:absolute;z-index:4;left:48%;top:39%;width:23%;height:9%;border-radius:6px;background:linear-gradient(90deg,#223749,#8196a6,#233a4b);border:2px solid #7d95a6;transform:rotate(-21deg);box-shadow:0 5px 10px #0008}
.observatory-mode .scope-mount{position:absolute;z-index:3;left:52%;top:46%;width:14%;height:14%;border-radius:50%;border:4px solid #94a8b3;background:radial-gradient(circle at 36% 32%,#7798a8,#1c3345 68%,#0c1823);box-shadow:0 5px 13px #000b}
.observatory-mode .scope-axis{position:absolute;z-index:2;left:57%;top:52%;width:5%;height:19%;border-radius:5px;background:linear-gradient(90deg,#192b3a,#8ba1ad,#23394a);transform:rotate(6deg)}
.scope-counterweight{position:absolute;z-index:2;left:66%;top:50%;width:23%;height:4%;background:linear-gradient(#5a7285,#182b3d);border:1px solid #6b8392;transform:rotate(32deg);transform-origin:left center}
.scope-counterweight:after{content:"";position:absolute;right:0;top:-130%;width:17%;height:360%;border-radius:5px;background:linear-gradient(90deg,#111e2e,#6b8192,#142637);border:2px solid #71899b}
.scope-pier{position:absolute;z-index:2;left:53%;top:65%;width:13%;height:31%;border:2px solid #718898;border-radius:7px 7px 1px 1px;background:linear-gradient(90deg,#172c3c,#70899c 44%,#293e51 72%,#0c1724);box-shadow:4px 5px 8px #0009}
.scope-pier-foot{position:absolute;z-index:2;left:45%;bottom:1%;width:29%;height:7%;border-radius:5px 5px 15px 15px;background:linear-gradient(#708a9a,#142837);border:2px solid #627989;box-shadow:0 5px 12px #000b}
.observatory-mode .scope-leg,.observatory-mode .scope-leg.l1,.observatory-mode .scope-leg.l2,.observatory-mode .scope-leg.l3{display:none}
.workstation-hotspot{left:9%;bottom:12%;width:30%;height:39%}
.telescope-hotspot{right:5%;bottom:10%;width:44%;height:50%}
.observatory-mode .equipment-hotspot:hover{outline:none;background:transparent}
.observatory-mode .equipment-hotspot:focus-visible{outline:2px solid #a6cade;outline-offset:3px}
@media(max-width:760px){
 .topbar{left:0;right:0;max-width:100%;align-items:flex-start;flex-direction:column;gap:10px;padding:18px 17px 0}
 .topbar .summary-chip{max-width:min(100%,460px);font-size:11px}
 .summary-chip #locationLabel{max-width:45vw}
 .moon-info-panel{top:max(119px,calc(env(safe-area-inset-top) + 111px));left:16px;right:auto;max-height:calc(100svh - 135px)}
 .observatory-mode .desk{left:4%;bottom:22%;width:40%;height:8%}
 .observatory-mode .desk-screen{height:clamp(105px,19vh,160px);border-width:4px;border-bottom-width:9px}
 .observatory-mode .mounted-scope{right:0%;bottom:20%;width:50%;height:35%}
 .workstation-hotspot{left:3%;bottom:21%;width:43%;height:35%}
 .telescope-hotspot{right:1%;bottom:20%;width:50%;height:36%}
}


/* Locked 1600×900 scene composition. Only one transform scales all room assets. */
#app,.scene{width:100%;height:100svh;min-height:0;overflow:hidden}
.scene-stage{position:absolute;left:50%;top:50%;width:1600px;height:900px;transform:translate(-50%,-50%) scale(var(--stage-scale,.75));transform-origin:center center;overflow:hidden;isolation:isolate}
.scene-stage .sky,.scene-stage .observatory,.scene-stage .eyepiece{inset:0}
.scene-stage .dome-shell{inset:-270px -210px 153px}
.scene-stage .dome-display{top:90px;left:50%;width:1050px;height:395px;border-width:13px}
.scene-stage .display-label,.scene-stage .display-foot{font-size:11px}
.scene.observatory-mode .scene-stage .moon-wrap{top:285px;left:50%;transform:translate(-50%,-50%) scale(.55)}
.scene.observatory-mode .scene-stage .moon{width:330px}
.scene.telescope-mode .scene-stage .moon-wrap{top:43%;left:50%;transform:translate(-50%,-50%)}
.scene.telescope-mode .scene-stage .moon{width:360px}
.scene-stage .moon-shadow{inset:0}
.scene-stage .eyepiece-ring{width:720px;border-width:72px}
.scene-stage .floor{height:235px}
.scene.observatory-mode .scene-stage .desk{left:165px;bottom:118px;width:430px;height:81px}
.scene.observatory-mode .scene-stage .desk-screen{width:92%;left:4%;height:215px;bottom:100%;border-width:7px;border-bottom-width:12px}
.scene-stage .terminal-header{font-size:10px}
.scene-stage .computer-base{display:none!important}
.scene.observatory-mode .scene-stage .desk:after{content:"";position:absolute;right:16px;bottom:13px;width:5px;height:5px;border-radius:50%;background:#f65b50;box-shadow:0 0 7px #e5433880;animation:driveActivity 3.5s steps(1,end) infinite}
.scene.observatory-mode .scene-stage .mounted-scope{right:115px;bottom:95px;width:610px;height:440px}
.scene.observatory-mode .scene-stage .scope-body{left:13%;top:22%;width:76%;height:19%;border-radius:30px 14px 14px 30px}
.scene-stage .scope-band.band-a{left:28%}.scene-stage .scope-band.band-b{right:21%}
.scene-stage .scope-front,.scene-stage .scope-back,.scene-stage .finder-tube,.scene-stage .finder-bracket,.scene-stage .scope-focuser,.scene-stage .scope-diagonal,.scene-stage .scope-eyepiece{display:none!important}
.scene-stage .scope-counterweight{left:66%;top:50%;width:23%;height:4%}
.scene-stage .scope-pier{left:53%;top:65%;width:13%;height:31%}
.scene-stage .scope-pier-foot{left:45%;bottom:1%;width:29%;height:7%}
.scene.observatory-mode .scene-stage .workstation-hotspot{left:145px;bottom:108px;width:480px;height:360px}
.scene.observatory-mode .scene-stage .telescope-hotspot{right:80px;bottom:88px;width:675px;height:465px}
.scene-stage .equipment-hotspot{z-index:15}
/* The brand, summary, and reports stay fixed to the device viewport. */
.topbar{position:absolute;left:0;top:0;right:auto;width:auto;max-width:calc(100% - 24px);display:block;padding:max(20px,env(safe-area-inset-top)) max(18px,3vw) 0;z-index:30}
.brand-group{display:flex;flex-direction:column;align-items:flex-start;gap:0;max-width:100%}
.brand-group h1{margin:0}
.brand-group #viewLabel{margin:4px 0 0}
.topbar .summary-chip{margin-top:10px;max-width:min(460px,calc(100vw - 36px));width:max-content;min-height:37px}
.moon-info-panel{top:max(132px,calc(env(safe-area-inset-top) + 112px));left:max(18px,3vw);max-height:calc(100svh - 152px)}
@media(max-width:760px){
 .topbar{padding:16px 15px 0}
 .topbar .summary-chip{margin-top:9px;max-width:calc(100vw - 30px)}
 .moon-info-panel{top:max(122px,calc(env(safe-area-inset-top) + 106px));left:15px;max-height:calc(100svh - 139px)}
}
@media(prefers-reduced-motion:reduce){.scene-stage .desk:after{animation:none!important}}


/* Panorama viewport: single locked 1600x900 room on desktop and mobile */
.stage-viewport{position:absolute;inset:0;overflow:hidden;scrollbar-width:none;overscroll-behavior-x:contain}
.stage-viewport::-webkit-scrollbar{display:none}
.stage-spacer{position:relative;width:100%;height:100%}
.scene-stage{will-change:transform}
@media(max-width:760px) and (orientation:portrait){
 .scene.mobile-pan .stage-viewport{overflow-x:auto;overflow-y:hidden;touch-action:pan-x;-webkit-overflow-scrolling:touch}
 .scene.mobile-pan .stage-spacer{height:100%}
 .scene.mobile-pan .scene-stage{left:0;top:0;transform:scale(var(--stage-scale,1));transform-origin:top left}
 .scene.mobile-pan .stage-viewport:focus-visible{outline:2px solid #9dc7df;outline-offset:-3px}
}


/* Single-object lunar lab: one central workstation with a centered Moon display. */
.stage-viewport{overflow:hidden!important}
.scene-stage .mounted-scope,.scene-stage .telescope-hotspot,.scene-stage .eyepiece{display:none!important}
.scene.observatory-mode .scene-stage .desk{
  left:50%;right:auto;bottom:75px;width:525px;height:94px;
  transform:translateX(-50%) skewX(-2deg);
  border-radius:14px 14px 7px 7px;
}
.scene.observatory-mode .scene-stage .desk-screen{
  left:4%;width:92%;height:230px;bottom:100%;
  border:9px solid #263b4a;border-bottom-width:14px;border-radius:15px 15px 6px 6px;
}
.scene.observatory-mode .scene-stage .workstation-hotspot{
  left:50%;right:auto;bottom:72px;width:545px;height:350px;
  transform:translateX(-50%);
}
.scene.observatory-mode .scene-stage .dome-display{
  top:100px;left:50%;width:1010px;height:365px;
  transform:translateX(-50%);
}
.scene.observatory-mode .scene-stage .moon-wrap{
  left:50%;top:280px;transform:translate(-50%,-50%) scale(.55);
}
.scene.observatory-mode .scene-stage .floor{height:210px}
.scene.observatory-mode .scene-stage .desk:after{display:block}
@media(max-width:760px){
  #app,.scene{height:100svh;min-height:0}
  .scene.mobile-column .scene-stage{
    width:100%;height:100%;left:0;top:0;transform:none!important;
    transform-origin:center center;overflow:hidden;
  }
  .scene.mobile-column .stage-spacer{width:100%;height:100%}
  .scene.mobile-column .sky,.scene.mobile-column .observatory{inset:0}
  .scene.mobile-column .dome-shell{
    inset:-13% -60% 13%;border-radius:50% 50% 12% 12%;
  }
  .scene.mobile-column .dome-display,
  .scene.mobile-column.observatory-mode .scene-stage .dome-display{
    width:calc(100% - 28px);height:clamp(190px,35svh,350px);
    left:50%;top:clamp(178px,24svh,255px);
    transform:translateX(-50%);border-width:7px;
  }
  .scene.mobile-column .display-label,.scene.mobile-column .display-foot{font-size:8px;letter-spacing:.07em}
  .scene.mobile-column.observatory-mode .scene-stage .moon-wrap{
    left:50%;top:calc(clamp(178px,24svh,255px) + clamp(190px,35svh,350px) * .48);
    transform:translate(-50%,-50%) scale(1);
  }
  .scene.mobile-column.observatory-mode .scene-stage .moon{
    width:clamp(93px,27vw,160px);
  }
  .scene.mobile-column.observatory-mode .scene-stage .floor{
    height:clamp(170px,27svh,280px);
  }
  .scene.mobile-column.observatory-mode .scene-stage .desk{
    width:min(77vw,390px);height:clamp(50px,8svh,83px);
    left:50%;right:auto;bottom:clamp(42px,10svh,110px);
    transform:translateX(-50%) skewX(-2deg);
    border-radius:10px;
  }
  .scene.mobile-column.observatory-mode .scene-stage .desk-screen{
    height:clamp(100px,23svh,230px);
    left:4%;width:92%;bottom:100%;
    border-width:5px;border-bottom-width:9px;border-radius:10px 10px 5px 5px;
  }
  .scene.mobile-column .terminal-header{font-size:clamp(6px,1.7vw,9px)}
  .scene.mobile-column.observatory-mode .scene-stage .workstation-hotspot{
    left:50%;right:auto;bottom:clamp(36px,9svh,105px);
    width:min(84vw,425px);height:clamp(170px,32svh,290px);
    transform:translateX(-50%);
  }
  .scene.mobile-column .dome-light{opacity:.65}
}
@media(max-width:760px) and (max-height:620px){
  .scene.mobile-column .dome-display,
  .scene.mobile-column.observatory-mode .scene-stage .dome-display{top:130px;height:190px}
  .scene.mobile-column.observatory-mode .scene-stage .moon-wrap{top:224px}
  .scene.mobile-column.observatory-mode .scene-stage .desk{bottom:20px}
  .scene.mobile-column.observatory-mode .scene-stage .desk-screen{height:95px}
  .scene.mobile-column.observatory-mode .scene-stage .workstation-hotspot{bottom:15px;height:175px}
}
