/* Earth is the full-bleed subject. Quiet photographic framing, perimeter controls,
   and an on-demand floating inspector preserve the uninterrupted globe. */
.dashboard.immersive, .dashboard.immersive.detail-open { --header-height:0px; --rail-space:0px; --detail-space:0px; height:100dvh; min-height:0; overflow:hidden; background:#03080e; }
.immersive #globe, .immersive .edge-shade { inset:0; height:100dvh; min-height:0; border-radius:0; }
.immersive .edge-shade { background:linear-gradient(180deg,#03080e55,transparent 18%,transparent 70%,#03080eb0); }
.horizon-factories { position:fixed; inset:0; z-index:3; pointer-events:none; overflow:hidden; }
.horizon-factory { position:absolute; display:flex; flex-direction:column; align-items:center; width:140px; transform:translate(-50%,-100%); color:#f1f6fb; text-align:center; font-size:11px; line-height:1.3; text-shadow:0 1px 3px #03080e,0 2px 8px #03080e; transition:opacity .25s ease; }
.horizon-factory[hidden], .horizon-factories[hidden] { display:none; }
.horizon-factory-name { max-width:140px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.horizon-factory img { display:block; width:36px; height:36px; margin-top:2px; object-fit:contain; }
.immersive .workspace { position:absolute; inset:0; padding:0; min-height:0; }
.immersive .region-nav { top:auto; bottom:40px; left:50%; transform:translateX(-50%); padding:2px 8px; gap:0; background:#071119e8; border:1px solid #b8c9d024; border-radius:28px; z-index:5; }
.immersive .region-nav button { min-height:44px; min-width:60px; padding:0 16px; font-size:12px; color:#aebdc6; border-radius:0; position:relative; background:transparent; }
.immersive .region-nav button.active { color:#fff; background:transparent; }
.immersive .region-nav button.active::after { content:''; position:absolute; left:calc(50% - 2px); bottom:4px; width:4px; height:4px; border-radius:50%; background:#e5e9e9; }
.immersive .region-nav button:hover { color:#fff; }
.scene-actions { position:absolute; z-index:12; right:32px; top:28px; }
.scene-actions button { min-height:44px; padding:0 18px; background:#09131bba; border:1px solid #c7d9e333; border-radius:24px; font-size:12px; color:#e2e9ed; display:flex; align-items:center; gap:10px; }
.scene-actions button span { font-size:19px; }
.immersive .height-control { top:auto; bottom:40px; left:32px; right:auto; width:200px; padding:0; border:0; border-radius:0; background:transparent; text-shadow:0 2px 8px #000; }
.immersive .height-heading { font-size:11px; color:#c1cdd3; }
.immersive #camera-height-slider { height:24px; margin:5px 0 0; accent-color:#dde7eb; }
.immersive .height-scale { font-size:10px; color:#a9bac5; }
.immersive .bottom-bar { left:auto; right:32px; bottom:40px; min-height:0; gap:0; padding:0; background:transparent; z-index:7; }
.immersive .view-info { position:fixed; left:32px; top:30px; display:flex; gap:12px; margin:0; color:#b6c3cb; font-size:10px; pointer-events:none; }
.immersive .view-info .demo-badge { padding:0; border:0; border-radius:0; color:#b6c3cb; background:transparent; }
.immersive .view-info .north, .immersive #camera-coordinate, .immersive .footer-divider { display:none; }
.immersive .map-controls { margin:0; padding:2px 6px; border:1px solid #b8c9d024; border-radius:28px; background:#071119e8; gap:0; width:auto; font-size:11px; }
.immersive .map-controls button { min-height:44px; padding:0 10px; color:#d0dbe1; }
.immersive .map-controls .zoom { width:36px; min-width:36px; font-size:20px; }
.immersive .map-controls #reset { font-size:19px; }
.immersive .map-controls #reset span { display:none; }
.map-settings { position:relative; }
.map-settings summary { padding:0 12px; min-height:44px; display:flex; align-items:center; cursor:pointer; list-style:none; color:#d0dbe1; }
.map-settings summary::-webkit-details-marker { display:none; }
.settings-menu { position:absolute; bottom:60px; right:0; width:206px; padding:8px; background:#0a151ef5; border:1px solid #b8c9d02e; border-radius:12px; }
.immersive .settings-menu button { display:block; width:100%; text-align:left; padding:0 14px; font-size:12px; }
.immersive .settings-menu a { display:flex; align-items:center; min-height:44px; padding:0 14px; color:#d0dbe1; font-size:12px; border-radius:4px; }
.immersive .settings-menu a:hover { background:#ffffff0d; color:#fff; }
.immersive .settings-menu button:hover { background:#ffffff0d; }
.immersive .settings-menu button[aria-pressed=true]::after { content:'✓'; float:right; }
.settings-menu p { border-top:1px solid #b8c9d024; padding:12px 14px 4px; margin:4px 0 0; color:#a9bac5; font-size:11px; line-height:1.9; }
.immersive .detail { top:96px; bottom:auto; right:32px; width:328px; max-height:calc(100dvh - 204px); padding:10px 22px 0; border:1px solid #b8c9d02e; border-radius:14px; background:#09141ef5; z-index:6; }
.immersive .detail-top { font-size:11px; }
.immersive .detail h2 { font-size:23px; font-weight:500; line-height:1.5; letter-spacing:0; margin:4px 0 12px; }
.immersive .detail-meta { padding-bottom:16px; }
.immersive #detail-stage { color:#dce8e9; font-size:11px; }
.immersive .detail-person { padding:16px 0; }
.immersive .detail-section { margin-top:20px; }
.immersive .detail-section h3 { margin-bottom:6px; font-size:11px; }
.immersive .detail-section p { font-size:13px; line-height:1.85; }
.immersive .detail-scroll { flex:0 1 auto; min-height:0; }
.immersive .history-section { padding:14px 0; margin-top:20px; }
.history-section summary { display:flex; justify-content:space-between; align-items:center; min-height:40px; cursor:pointer; font-size:11px; color:#b6c3cb; }
.history-section summary::after { content:'＋'; margin-left:12px; }
.history-section[open] summary::after { content:'−'; }
.history-section summary span { margin-left:auto; }
.history-section ol { margin-top:12px; }
.immersive .detail-actions { margin:0 -22px; padding:14px 22px 16px; background:transparent; }
.immersive .detail-actions .primary-button { background:#d9e4e8; color:#14232e; min-height:42px; font-size:12px; border-radius:6px; }
.immersive .demo-note { margin-top:10px; font-size:10px; }
.immersive .cache-panel { right:32px; bottom:100px; z-index:14; }
.immersive .loading { left:50%; top:50%; }
.immersive .cesium-viewer-bottom { bottom:5px !important; left:16px !important; max-width:calc(100% - 32px); }
.sun-glow { position:absolute; pointer-events:none; z-index:2; inset:0; opacity:1; background:radial-gradient(ellipse 80% 88% at 80% 12%, #03080e00 0%, #03080e00 58%, #03080e1f 72%, #03080e5c 84%, #03080eb3 96%, #03080ee6 108%, #03080e 122%); -webkit-mask-image:linear-gradient(90deg,#03080e 0%,#03080e 72%,transparent 84%); mask-image:linear-gradient(90deg,#03080e 0%,#03080e 72%,transparent 84%); transition:opacity .8s ease-in-out; }
.immersive .edge-shade { transition:opacity .8s ease-in-out; }
body:not(.shadow-overview) .sun-glow { opacity:0; }
.immersive:not(.shadow-overview) .edge-shade { opacity:0; }
.cloud-transition{position:fixed;inset:0;z-index:25;overflow:hidden;isolation:isolate;background:transparent;opacity:1;transition:opacity .65s ease;}
.cloud-haze,.cloud-bank{position:absolute;inset:-12%;pointer-events:none;will-change:transform,opacity;}
.cloud-haze{background:radial-gradient(ellipse 38% 25% at 48% 46%,#c8dae842 0%,#c8dae800 100%);opacity:.35;animation:cloud-hover-far 8s ease-in-out infinite alternate;}
.cloud-bank{background-position:center;background-size:cover;background-repeat:no-repeat;}
.cloud-bank-back{background-image:url('/assets/cloud-far.webp');opacity:.58;animation:cloud-hover-far 8s ease-in-out infinite alternate;}
.cloud-bank-front{background-image:url('/assets/cloud-near.webp');opacity:.55;animation:cloud-hover-near 6.5s ease-in-out infinite alternate;}
.cloud-transition.is-passing .cloud-haze{opacity:.22;}
.cloud-transition.is-passing .cloud-bank-back{animation:cloud-fly-far 3.2s ease-out both;}
.cloud-transition.is-passing .cloud-bank-front{animation:cloud-fly-near 3s ease-out both;}
.cloud-message{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(360px,calc(100vw - 40px));display:grid;justify-items:center;gap:9px;text-align:center;padding:25px 28px 22px;border:1px solid #f6fcf5aa;border-radius:18px;background:#102634d9;box-shadow:0 24px 80px #17344342;color:#f7fcff;backdrop-filter:blur(10px);}
.cloud-message strong{font-size:25px;font-weight:500;letter-spacing:.09em}.cloud-message>span{font-size:12px;color:#deeaed}.cloud-actions{display:flex;gap:8px;margin-top:10px}.cloud-actions button{border:1px solid #d7eef055;background:#e9f5f213;color:#edf8f8;border-radius:20px;padding:9px 16px;font-size:12px}.cloud-actions button:hover{background:#e9f5f232}.cloud-actions #cloud-retry{background:#d6ece8;color:#10333b}.cloud-transition:not(.is-error) .cloud-message{left:auto;right:24px;top:24px;transform:none;width:auto;display:block;padding:0;background:none;border:0;box-shadow:none;backdrop-filter:none}.cloud-transition:not(.is-error) .cloud-message strong,.cloud-transition:not(.is-error) .cloud-message>span{display:none}.cloud-transition:not(.is-error) .cloud-actions{margin:0}.cloud-transition.is-breaking{opacity:0;pointer-events:none}.cloud-transition.is-error{background:linear-gradient(150deg,#c7d7dacc,#e6efedd9)}
@keyframes cloud-hover-far{from{transform:translate3d(-1%,1%,0) scale(1.02)}to{transform:translate3d(1%,-1%,0) scale(1.11)}}
@keyframes cloud-hover-near{from{transform:translate3d(1%,-1%,0) scale(1.04)}to{transform:translate3d(-1%,2%,0) scale(1.14)}}
@keyframes cloud-fly-far{from{transform:translate3d(0,0,0) scale(1.07);opacity:.56}to{transform:translate3d(0,7%,0) scale(1.46);opacity:.3}}
@keyframes cloud-fly-near{from{transform:translate3d(0,0,0) scale(1.08);opacity:.62}42%{opacity:.78}to{transform:translate3d(0,10%,0) scale(1.9);opacity:.18}}
.immersive.presenting .scene-actions { display:none; }
.immersive.presenting #globe, .immersive.presenting .edge-shade { inset:0; height:100dvh; }
.immersive.presenting .tour-card { left:32px; }
.immersive :is(button,summary):focus-visible { outline:2px solid #e4f0f5; outline-offset:4px; }
@media(max-width:1100px) {
 .immersive .height-control { width:160px; left:20px; }
 .immersive .bottom-bar { right:20px; }
 .immersive .region-nav button { padding:0 10px; min-width:48px; }
}
@media(max-width:700px) {
 .scene-actions { top:20px; right:16px; }
 .scene-actions button { min-height:40px; padding:0 14px; }
 .immersive .view-info { left:20px; top:32px; }
 .immersive #imagery-status { display:none; }
 .immersive .region-nav { bottom:36px; left:50%; width:max-content; max-width:calc(100vw - 32px); }
 .immersive .region-nav button { min-height:44px; padding:0 16px; }
 .immersive .height-control { bottom:108px; left:20px; width:144px; }
 .immersive .height-scale { display:none; }
 .immersive .height-heading { display:block; }
 .immersive .bottom-bar { top:auto; bottom:108px; right:16px; left:auto; height:auto; }
 .immersive .map-controls { padding:2px; }
 .immersive .map-controls > span { display:none; }
 .map-settings summary { padding:0 8px; }
 .immersive .detail { position:fixed; top:auto; bottom:20px; left:12px; right:12px; width:auto; margin:0; max-height:48dvh; padding:8px 20px 0; }
 .immersive .detail h2 { font-size:21px; }
 .immersive .detail-scroll { overflow:auto; }
 .immersive .detail-actions { margin:0 -20px; padding:12px 20px; }
 .immersive.detail-open .region-nav, .immersive.detail-open .height-control, .immersive.detail-open .bottom-bar { visibility:hidden; }
 .immersive .cache-panel { left:12px; right:12px; bottom:20px; width:auto; }
 .immersive.presenting #globe { top:0; bottom:auto; height:46dvh; }
 .immersive.presenting .tour-card { top:46dvh; left:12px; }
}
@media(prefers-reduced-motion:reduce) { .sun-glow, .immersive .edge-shade,.cloud-transition { transition:none; } .cloud-haze,.cloud-bank,.cloud-transition.is-loading .cloud-bank { animation:none;will-change:auto; } }
/* The informational heading receives programmatic focus for screen readers.
   Interactive controls retain their own visible keyboard focus rings. */
.immersive #detail-name:focus { outline:none; }
.immersive .view-info[hidden], .immersive .height-control[hidden] { display:none; }
