/* Observatory visual system — restrained, readable, motion-optional and shared. */
:root { --obs-line:rgba(122,211,229,.23); --obs-ink:#e5f4fa; --obs-muted:#a7bfce; --obs-cyan:#8de5ef; --obs-amber:#e7c68a; }
.observatory-experience :is(button,a,input,select,summary):focus-visible { outline:2px solid var(--obs-cyan);outline-offset:4px; }
.observatory-motion { position:fixed;left:max(14px,env(safe-area-inset-left));bottom:max(14px,env(safe-area-inset-bottom));z-index:1002;border:1px solid #456778;border-radius:999px;background:#08121e;color:#d4edf3;padding:10px 15px;font:500 12px/1.2 system-ui,sans-serif;min-height:36px;cursor:pointer;box-shadow:0 3px 18px #0006; }
.observatory-motion::before { content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:#88e4d3;margin-right:8px; }
.observatory-motion[aria-pressed="true"]::before { background:#e7c68a; }
.observatory-motion:disabled { opacity:.8;cursor:default; }
.observatory-orbital-frame { position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none;overflow:visible;fill:none;stroke:var(--obs-cyan);stroke-width:1.1; }
.observatory-orbit-guides { opacity:.19; }
.observatory-radial-ticks { opacity:.45; }
.observatory-craft { fill:#132b3e;stroke:#bbe5f0;stroke-width:1.7; }
.observatory-craft-a { animation:observatory-drift-a 28s ease-in-out infinite alternate; }
.observatory-craft-b { opacity:.7;animation:observatory-drift-b 35s ease-in-out infinite alternate; }
.observatory-engine-light { stroke:#75f2f5;stroke-width:4;stroke-linecap:round; }
.observatory-orbit-signal { transform-origin:500px 510px;opacity:.42;animation:observatory-orbit 54s linear infinite;stroke-width:2; }
.observatory-scene-label { position:absolute;top:14px;left:20px;z-index:5;color:#a2c4d1;font:9px/1.4 ui-monospace,monospace;letter-spacing:.19em;pointer-events:none; }
.observatory-experience :is(.page-header,.section-header) { position:relative; }
.observatory-header-trace { display:block;width:min(320px,80%);height:44px;margin:20px 0 0;fill:none;stroke:#73cdd9;stroke-width:1.3;opacity:.53;pointer-events:none; }
.observatory-header-trace path:last-of-type { stroke:#c3a778; }
.observatory-experience .ita-atlas-sector { position:relative;background:linear-gradient(155deg,#101b2cdd,#070d18f5);border-color:var(--obs-line);box-shadow:inset 0 1px #b8eff20a; }
.observatory-experience .ita-atlas-sector::before { content:'';position:absolute;top:-1px;left:24px;width:54px;height:2px;background:linear-gradient(90deg,#8be5ee,#8be5ee00);border-radius:3px; }
.observatory-experience .ita-atlas-sector:nth-child(2n)::before { background:linear-gradient(90deg,#b5a5f0,#b5a5f000); }
.observatory-experience .ita-atlas-sector-index { color:#8de5ef; }
.observatory-experience .ita-atlas-link { transition:background .18s ease,border-color .18s ease,transform .18s ease; }
.observatory-experience .ita-atlas-link:hover { background:#73cdd914;transform:translateX(3px); }
.observatory-experience .ita-atlas-link:focus-visible { transform:none; }
.observatory-experience.ita-standard-page :is(.card,.feature-card,.info-card) { border-color:var(--obs-line);background-image:linear-gradient(145deg,#7ccef507,#a391ee03); }
.observatory-kicker { font:600 10px/1.5 ui-monospace,monospace;letter-spacing:.15em;color:var(--obs-cyan); }
/* Multi-institution database */
.observatory-catalogue-controls { width:100%;padding:26px 28px;border:1px solid var(--obs-line);border-radius:22px 6px 22px 6px;background:linear-gradient(135deg,#102133e8,#080e1bea);text-align:left;box-shadow:inset 3px 0 #70dce173; }
.observatory-summary-grid { display:grid;grid-template-columns:1.2fr 1fr 1.2fr;gap:22px;margin-bottom:24px; }
.observatory-summary-grid>div { display:flex;flex-direction:column;gap:5px; }
.observatory-summary-grid strong { font:600 clamp(22px,3vw,34px)/1.2 system-ui,sans-serif;letter-spacing:-.025em;color:#effcff; }
.observatory-summary-grid span { color:#a9c3d3;font-size:12px;line-height:1.5; }
.observatory-filters { display:grid;grid-template-columns:1fr 1.3fr;gap:18px; }
.observatory-filters label { display:flex;flex-direction:column;gap:8px;color:#c7e6ee;font-size:12px;font-weight:600;min-width:0; }
.observatory-filters select { width:100%;max-width:100%;min-height:44px;border:1px solid #497382;border-radius:9px;color:#ecf6fc;background:#07121f;padding:10px 30px 10px 12px;font:400 13px/1.4 system-ui,sans-serif; }
.observatory-scope { color:var(--obs-muted);font-size:12px;line-height:1.7;margin:16px 0 0; }
.observatory-source-links { display:flex;gap:20px;flex-wrap:wrap;margin-top:17px; }
.observatory-source-links a,.observatory-method-note a { color:#9ee6ef;font-size:12px;text-underline-offset:3px; }
.observatory-method-note { margin-top:16px;border-top:1px solid var(--obs-line);padding-top:14px;line-height:1.6;font-size:12px;color:#c7dce6; }
.observatory-method-note summary { cursor:pointer; }
.observatory-card-sources { display:flex;flex-wrap:wrap;gap:5px;margin:7px 0 10px; }
.observatory-source-badge { display:inline-block;border:1px solid #365462;border-radius:5px;padding:3px 6px;color:#b9d8e4;background:#1628376b;font:500 10px/1.4 system-ui,sans-serif; }
.observatory-facility { margin:8px 0 0;color:#a9c8d6;font-size:11px;line-height:1.5;overflow-wrap:anywhere;min-height:1.5em; }
.observatory-card-warning { margin:8px 0 0;font-size:11px;color:var(--obs-amber);line-height:1.5; }
.observatory-experience .ita-planet-card { border-radius:18px 6px 18px 6px;contain:layout style; }
.observatory-experience .ita-card-visual::after { content:'ILLUSTRATIVE SYMBOL';position:absolute;bottom:9px;left:14px;font:8px/1.4 ui-monospace,monospace;letter-spacing:.12em;color:#a9c1d0;pointer-events:none; }
.observatory-experience .ita-card-visual { position:relative; }
.observatory-warning { border-left:3px solid #d8bd7d;padding:12px 15px;color:#ead7ae;background:#47381e38;line-height:1.65; }
.observatory-evidence-dialog { width:min(860px,calc(100vw - 32px));max-height:85dvh;padding:26px;border:1px solid #518192;border-radius:20px 6px 20px 6px;background:#08111f;color:#e2eff6;line-height:1.65;overflow:auto;box-sizing:border-box; }
.observatory-evidence-dialog::backdrop { background:#01050cda; }
.observatory-evidence-dialog>header { display:flex;justify-content:space-between;gap:24px;align-items:start; }
.observatory-evidence-dialog h2 { font:600 26px/1.3 system-ui,sans-serif;margin:0; }
.observatory-close { position:sticky;top:0;min-height:40px;background:#112638;color:#e8f8fc;border:1px solid #497b8e;border-radius:7px;padding:7px 18px;cursor:pointer; }
.observatory-evidence-status { color:#90dbe7;font:12px/1.6 ui-monospace,monospace; }
.observatory-solution { border-top:1px solid #385765;margin-top:24px;padding-top:20px; }
.observatory-solution h3 { font:600 17px/1.5 system-ui,sans-serif;color:#b3e7ed;margin:0; }
.observatory-solution p { font-size:13px;overflow-wrap:anywhere; }
.observatory-solution a { color:#b1e6f1;text-underline-offset:3px; }
.observatory-solution dl { display:grid;grid-template-columns:minmax(130px,.65fr) 1.4fr;gap:8px 20px;font-size:13px; }
.observatory-solution dt { color:#a2bdcf;text-transform:capitalize; }
.observatory-solution dd { margin:0;overflow-wrap:anywhere; }
/* Real observer sky. No decorative random star layer is allowed on Education. */
body:has(#education-sky) .ita-universe-fx,body:has(#education-sky) #ita-cosmic-field { display:none; }
#viewer-container>#education-sky { position:absolute;inset:0;z-index:0;pointer-events:none;width:100%;height:100%; }
.education-sky-status { position:absolute;top:88px;left:340px;right:100px;z-index:4;pointer-events:none;display:flex;flex-direction:column;gap:6px;max-width:650px;padding:12px 16px;border-left:2px solid #79d8e380;background:linear-gradient(90deg,#06101caa,transparent); }
.education-sky-status strong { font:600 10px/1.4 ui-monospace,monospace;letter-spacing:.14em;color:#a4e4ed; }
.education-sky-status span { color:#adc3d2;font:11px/1.5 system-ui,sans-serif; }
.education-sky-controls { margin:16px 0 18px;padding:14px 12px;border:1px solid #2c4c5d;border-radius:10px;background:#0c1b2775;color:#bfdae5;font:12px/1.55 system-ui,sans-serif; }
.education-sky-controls summary { cursor:pointer;color:#aee6ed;font-weight:600; }
.education-sky-controls>label { display:flex;flex-direction:column;gap:6px;margin-top:14px; }
.education-sky-controls :is(input[type="date"],select) { box-sizing:border-box;width:100%;min-height:38px;background:#0a1420;color:#e5f4fa;border:1px solid #4b6e80;border-radius:6px;padding:7px;font:12px/1.5 system-ui,sans-serif;color-scheme:dark; }
.education-sky-controls .education-sky-check { flex-direction:row;align-items:center;gap:9px; }
.education-sky-check input { width:16px;height:16px;accent-color:#7bdfdf; }
.education-sky-method { color:#a7c0d0;font-size:11px;line-height:1.65; }
.education-sky-controls>a { color:#a6e5ef;font-size:11px; }
.education-sky-direction { display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:14px; }
.education-sky-direction button { min-height:36px;padding:6px 4px;border:1px solid #3f6678;border-radius:5px;background:#102131;color:#d6ebf3;cursor:pointer;font:11px/1.4 system-ui,sans-serif; }
.education-sky-direction button:last-child { grid-column:1/-1; }
.education-m31-button { margin-top:12px;color:#e7c68a!important;border-color:#866e4666!important; }
.education-sky-only #viewer-container>canvas:not(#education-sky),.education-sky-only #viewer-container::before,.education-sky-only #data-overlay { visibility:hidden; }
.education-sky-limit { position:absolute;z-index:6;top:50%;left:55%;transform:translate(-50%,-50%);width:min(620px,calc(100vw - 390px));border:1px solid #766947;border-radius:20px 5px 20px 5px;padding:30px;background:linear-gradient(140deg,#17202eee,#090d17ee);box-shadow:inset 3px 0 #c9ad67; }
.education-sky-limit[hidden] { display:none; }
.education-sky-limit h2 { color:#eedec0;font:500 clamp(20px,2vw,28px)/1.4 system-ui,sans-serif;letter-spacing:.025em; }
.education-sky-limit p { color:#bbccd9;font:13px/1.8 system-ui,sans-serif; }
.education-sky-limit a { display:inline-block;margin-top:10px;color:#e0cead;font-size:13px;text-underline-offset:4px; }
@keyframes observatory-drift-a { from { transform:translate(-32px,18px) rotate(-2deg); } to { transform:translate(38px,-24px) rotate(3deg); } }
@keyframes observatory-drift-b { from { transform:translate(10px,18px); } to { transform:translate(-42px,-16px); } }
@keyframes observatory-orbit { to { transform:rotate(360deg); } }
[data-offscreen="true"] *,html[data-motion-paused="true"] *,html[data-motion-paused="true"] *::before,html[data-motion-paused="true"] *::after,html[data-motion-hidden="true"] * { animation-play-state:paused!important; }
html[data-motion-paused="true"] .ita-atlas-link,html[data-motion-paused="true"] [data-parallax] { transition:none!important;transform:none!important; }
@media(prefers-reduced-motion:reduce) { .observatory-experience *, .observatory-experience *::before,.observatory-experience *::after { animation:none!important;scroll-behavior:auto!important; }.observatory-experience .ita-atlas-link { transition:none;transform:none; } }
@media(max-width:1000px) { .observatory-summary-grid { gap:12px; }.education-sky-status { left:320px;right:60px; }.education-sky-limit { left:62%;width:calc(100vw - 360px);padding:22px; } }
@media(max-width:760px) { .observatory-catalogue-controls { padding:20px 17px; }.observatory-summary-grid { grid-template-columns:1fr 1fr; }.observatory-summary-grid>div:last-child { grid-column:1/-1;flex-direction:row;align-items:center;gap:12px; }.observatory-summary-grid>div:last-child strong { font-size:22px; }.observatory-filters { grid-template-columns:1fr;gap:14px; }.observatory-source-links { gap:12px 20px; }.observatory-evidence-dialog { padding:18px; }.observatory-solution dl { grid-template-columns:1fr;gap:3px; }.observatory-solution dd { margin-bottom:8px; }.education-sky-status { top:92px;left:16px;right:16px;max-width:none;padding:8px 12px; }.education-sky-status strong { font-size:9px; }.education-sky-status span { font-size:10px; }.education-sky-limit { left:50%;top:51%;width:calc(100vw - 32px);max-height:calc(100dvh - 270px);overflow:auto;padding:20px;box-sizing:border-box; }.education-sky-limit p { font-size:12px; }.education-sky-limit h2 { font-size:20px; }.observatory-motion { padding:9px 12px;font-size:11px;bottom:14px; }.observatory-scene-label { font-size:7px;left:14px; }.observatory-craft-b { display:none; } }
@media(forced-colors:active) { .observatory-orbital-frame,.observatory-header-trace { display:none; }.observatory-motion,.observatory-catalogue-controls,.observatory-evidence-dialog,.education-sky-limit { border:1px solid CanvasText;box-shadow:none; }.observatory-warning { border-color:Highlight; } }
@media print { .observatory-motion,.observatory-orbital-frame,.observatory-header-trace { display:none!important; } }
@view-transition { navigation:auto; }

/* A closed off-canvas control panel must not remain in the keyboard sequence. */
body:has(#education-sky) #ui-sidebar:not(.active) { visibility:hidden;pointer-events:none; }
body:has(#education-sky) :is(#ui-sidebar,#data-overlay) { scrollbar-width:thin;scrollbar-color:#385d6d #07121b;overscroll-behavior:contain; }

/* Keep the optional floating language control, motion control and music player in separate lanes. */
body:has(> .ita-language-switcher) #observatory-motion { bottom:76px; }
@media(max-width:760px) { body:has(> .ita-language-switcher) #observatory-motion { bottom:64px; } }

/* Visual-review regressions: keep evidence inside the viewport and source filters
   before the long catalogue, rather than ten thousand pixels below its results. */
.education-sky-limit { position:fixed;top:50dvh; }
body:has(#observatory-catalogue-controls) .page-hero { min-height:0!important;padding:32px 24px 24px!important;margin-bottom:0!important; }
body:has(#observatory-catalogue-controls) .page-hero .page-title { font-size:clamp(34px,4.8vw,66px)!important;line-height:1.15; }
body:has(#observatory-catalogue-controls) .page-hero .page-subtitle { margin-top:16px!important; }
body:has(#observatory-catalogue-controls) .db-hero-status { margin-top:18px; }
body:has(#observatory-catalogue-controls) main>section.content-section:first-of-type { margin-top:24px!important; }
#observatory-catalogue-controls { order:-2;margin-bottom:20px;scroll-margin-top:100px; }
@media(max-width:760px) { body:has(#observatory-catalogue-controls) .page-hero { padding:28px 16px 18px!important; } }

/* Final hosted-image review: controls must not cover the sidebar, and mobile
   evidence should be available on demand rather than obscure the whole planet. */
body:has(#education-sky) #observatory-motion { left:330px;bottom:20px; }
body.ita-universe-enabled:has(#education-sky)>.ita-language-switcher { left:480px;bottom:20px; }
.education-details-toggle { display:block;width:100%;min-height:38px;margin-top:14px;padding:9px 12px;border:1px solid #426c7e;border-radius:7px;background:#102332;color:#ccecf4;text-align:left;font:600 12px/1.4 system-ui,sans-serif;cursor:pointer; }
.education-details-toggle::after { content:'+';float:right;font-size:17px;line-height:15px; }
.education-details-toggle[aria-expanded="true"]::after { content:'−'; }
.education-details-toggle[hidden],#education-planet-details[hidden] { display:none!important; }
@media(max-width:760px) {
  body:has(#education-sky) #observatory-motion { left:98px;bottom:112px;min-height:39px; }
  body.ita-universe-enabled:has(#education-sky)>.ita-language-switcher { left:12px;bottom:112px; }
  body:has(#education-sky) #data-overlay[data-details-expanded="false"] { max-height:none; }
  body:has(#education-sky) #data-overlay[data-details-expanded="true"] { max-height:calc(100dvh - 320px); }
  body:has(#education-sky):has(#ui-sidebar.active) #observatory-motion,
  body.ita-universe-enabled:has(#education-sky):has(#ui-sidebar.active)>.ita-language-switcher { visibility:hidden;pointer-events:none; }
}

/* Full-screen Pioneer owns its HUD edges; expose the site preference inside its
   existing optional data-tools panel, not on top of Return to Hub or touch UI. */
#ep-data-body .observatory-pioneer-motion { padding:12px;border:1px solid #33586b;border-radius:9px;background:#081522;color:#adc9d9; }
#ep-data-body .observatory-pioneer-motion p { margin:0 0 10px;font:12px/1.6 system-ui,sans-serif; }
#ep-data-body #observatory-motion { position:static;left:auto;right:auto;top:auto;bottom:auto;width:100%;min-height:44px;margin:0;box-shadow:none; }
