/* Firmament 2.0, the live map at /firmament/. V5 button and hinged-panel rules stay in v5.css. */
.firmament-v2 .firmament-map-heading{position:absolute;z-index:5;left:28px;top:78px;max-width:min(36rem,52vw);pointer-events:none}
.firmament-v2 .firmament-map-heading h1{margin:.42rem 0 .35rem;font:300 clamp(1.6rem,2.8vw,2.65rem)/1.12 var(--font-display);color:var(--ink);text-wrap:balance}
.firmament-v2 .firmament-map-heading p{margin:0;font:.68rem/1.5 var(--font-ui);color:var(--ink-soft);letter-spacing:.035em}
.firmament-v2 .anselm-vignette{background:radial-gradient(ellipse 100% 88% at 50% 48%,transparent 48%,color-mix(in srgb,var(--bg) 78%,transparent) 100%),linear-gradient(to bottom,color-mix(in srgb,var(--bg) 72%,transparent),transparent 26%,transparent 80%,color-mix(in srgb,var(--bg) 40%,transparent))}
.firmament-v2 .anselm-hint{font-size:.62rem;line-height:1.65;max-width:32rem;color:var(--ink-soft);letter-spacing:.045em}
.firmament-v2 .anselm-section-label{font-size:.66rem;letter-spacing:.16em}
.firmament-v2 .anselm-option-copy{font:.84rem/1.5 var(--font-body);text-align:left;text-transform:none;letter-spacing:0;color:var(--ink-soft)}
.firmament-v2 .anselm-select-label{font-size:.62rem;letter-spacing:.08em}
.firmament-v2 .anselm-panel-copy,.firmament-v2 .anselm-detail-copy{font-size:1rem;line-height:1.7}
.firmament-v2 .anselm-meta{font-size:.74rem;line-height:1.6;color:var(--ink-soft)}
.firmament-v2 .firmament-reading-key{margin:var(--s5) 0;padding:var(--s5) 0;border-block:1px solid var(--line)}
.firmament-v2 .firmament-reading-key dl{display:grid;grid-template-columns:4.7rem 1fr;gap:.65rem .8rem;margin:0;font:.88rem/1.55 var(--font-body)}
.firmament-v2 .firmament-reading-key dt{color:var(--brass)}
.firmament-v2 .firmament-reading-key dd{margin:0;color:var(--ink-soft)}
.firmament-v2 .firmament-reading-key p{font:.88rem/1.6 var(--font-body);margin:var(--s4) 0 0;color:var(--ink-soft)}
.firmament-v2 .anselm-evidence-body{font-size:.92rem;line-height:1.65}
.firmament-v2 .anselm-evidence-body dl{font-size:.78rem;line-height:1.6}
.firmament-v2 .anselm-constellation-note,.firmament-v2 .anselm-connection-state,.firmament-v2 .anselm-corpus-scope{font-size:.85rem;line-height:1.6}
.firmament-v2 .anselm-constellation-stats{gap:.5rem}
.firmament-v2 .anselm-scene-depth p{font-size:.85rem;line-height:1.6}
.firmament-v2 .anselm-constellation-provenance{font-size:.72rem;line-height:1.65}
.firmament-v2 .firmament-divine-label{position:absolute;left:0;top:0;z-index:4;pointer-events:none;padding:.2rem .4rem;border-radius:3px;background:color-mix(in srgb,var(--bg) 84%,transparent);color:var(--ink);font:500 .65rem/1.3 var(--font-ui);letter-spacing:.055em;white-space:nowrap;text-shadow:0 1px 4px var(--bg)}
.firmament-v2 .firmament-divine-label[hidden]{display:none}
@media(max-width:720px){
  .firmament-v2 .firmament-map-heading{top:65px;left:18px;max-width:calc(100vw - 36px)}
  .firmament-v2 .firmament-map-heading h1{font-size:1.6rem;max-width:80vw}
  .firmament-v2 .firmament-map-heading p{font-size:.6rem;max-width:76vw}
  .firmament-v2 .anselm-hint{left:18px;bottom:90px;max-width:65vw;font-size:.57rem}
}

/* Cold scenes stay visibly active; failures stop motion and offer a retry. */
.firmament-v2 .anselm-scene-load{margin:1rem 0;padding:1rem;border:1px solid var(--line);border-radius:4px;background:color-mix(in srgb,var(--bg) 90%,var(--ink) 10%)}
.firmament-v2 .anselm-scene-load p{margin:0 0 .6rem;font-size:.9rem;line-height:1.5}
.firmament-v2 .anselm-scene-load small{display:block;margin-top:.6rem;color:var(--ink-soft);font-size:.75rem;line-height:1.5}
.firmament-v2 .anselm-loading-dots{display:inline-flex;gap:.08em;vertical-align:baseline}
.firmament-v2 .anselm-loading-dots>span{display:inline-block;animation:firmament-dot-hop 1.2s ease-in-out infinite}
.firmament-v2 .anselm-loading-dots>span:nth-child(2){animation-delay:.16s}
.firmament-v2 .anselm-loading-dots>span:nth-child(3){animation-delay:.32s}
.firmament-v2 .anselm-scene-load-track{height:3px;overflow:hidden;background:var(--line)}
.firmament-v2 .anselm-scene-load-track>span{display:block;width:35%;height:100%;background:var(--brass);animation:firmament-load-sweep 1.8s ease-in-out infinite}
@keyframes firmament-dot-hop{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-.18em);opacity:1}}
@keyframes firmament-load-sweep{0%{transform:translateX(-110%)}100%{transform:translateX(390%)}}
@media(prefers-reduced-motion:reduce){.firmament-v2 .anselm-loading-dots>span,.firmament-v2 .anselm-scene-load-track>span{animation:none;opacity:1}}

.firmament-v2 .anselm-constellation-stats b .anselm-loading-dots,.firmament-v2 .anselm-constellation-stats b .anselm-loading-dots>span{font:inherit;color:inherit;letter-spacing:0;text-transform:none}
.firmament-v2 .anselm-scene-depth[hidden]{display:none}

/* Use the site's reading typography inside the slide-out drawers. */
.firmament-v2 :is(.anselm-options-panel,.anselm-detail-panel,.anselm-list-panel,.anselm-finder) :is(p,small,label,dt,dd,em,button,.v5-navbtn,.v5-kicker,.anselm-section-label,.anselm-about-link b){text-transform:none;letter-spacing:normal}
.firmament-v2 :is(.anselm-meta,.anselm-connection-state,.anselm-constellation-inspect-hint,.anselm-name-summary,.anselm-constellation-flow,.anselm-constellation-provenance){font:400 .95rem/1.65 var(--font-body);text-transform:none;letter-spacing:normal;color:var(--ink-soft)}
.firmament-v2 .anselm-section-label,.firmament-v2 .anselm-activity h3{font:500 1rem/1.4 var(--font-body);text-transform:none;letter-spacing:normal}
.firmament-v2 .anselm-constellation-stats>button>span{font:400 .95rem/1.4 var(--font-body);text-transform:none;letter-spacing:normal;color:var(--ink-soft)}
.firmament-v2 .anselm-constellation-stats small{font:400 .75rem/1.5 var(--font-ui);text-transform:none;letter-spacing:normal;color:var(--ink-soft);opacity:1}
.firmament-v2 .anselm-connection small,.firmament-v2 .anselm-connection em{font-size:.75rem;line-height:1.5;letter-spacing:normal;text-transform:none}
.firmament-v2 .anselm-evidence-body dl{font:400 .85rem/1.55 var(--font-body);text-transform:none;letter-spacing:normal}
.firmament-v2 .anselm-evidence-actions :is(a,button){font-size:.75rem!important}
.firmament-v2 :is(.anselm-select-label,.anselm-scene-depth label,.anselm-text-action,.anselm-about-link b){font-size:.78rem;line-height:1.4;text-transform:none;letter-spacing:normal}
.firmament-v2 :is(.anselm-options-panel,.anselm-detail-panel,.anselm-list-panel,.anselm-finder) :is(.v5-btn,.v5-navbtn){font-size:.78rem;line-height:1.4}
