/* Pre-promote just the heading fade, not every ornament or full-screen layer. */
#hero-title { will-change:opacity; }
/* One persistent rendered sky. The eclipse is only its responsive layout anchor. */
.cosmos .eclipse { background:none; border:0; box-shadow:none; opacity:1; }
.cosmos .eclipse::before,.cosmos .eclipse::after { display:none; }
.ken-scene { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.ascension-dust { position:fixed; inset:0; width:100vw; height:100vh; z-index:20; pointer-events:none; }
#ascensionStatus { position:fixed; z-index:30; top:56px; bottom:auto; pointer-events:none; left:50%; transform:translateX(-50%); width:min(90vw,480px); margin:0; padding:14px 18px; border:1px solid #b85f64; background:#100b0cf2; color:#f1efe8; text-align:center; font:12px/1.5 var(--mono); }
#ascensionStatus[hidden] { display:none; }
.hero[data-ascension="loading"] .enter { cursor:progress; }
/* No CSS opacity-to-zero switches: the stage evolves original elements from
   their captured appearance using the same audio clock as the living globe. */
.kencension-active .splash-controls,.kencension-active .hero-bottom { pointer-events:none; }
.kencension-active .cosmos::before { opacity:var(--departure-stars,.55); }
.kencension-active .cosmos * { animation-play-state:paused!important; }
