/* Shared atmosphere: three bounded layers, with movement limited to transforms. */
body{isolation:isolate}
.space-scene{
  position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;
  display:block;contain:strict;background:#050916;
}
.space-layer{position:absolute;inset:-120px;transform:translate3d(0,0,0)}
.space-nebula{
  background:
    radial-gradient(ellipse at 15% 20%,rgba(109,57,218,.42),transparent 42%),
    radial-gradient(ellipse at 85% 36%,rgba(22,119,170,.35),transparent 40%),
    radial-gradient(ellipse at 55% 88%,rgba(168,35,117,.3),transparent 48%),
    linear-gradient(135deg,transparent 30%,rgba(93,75,171,.12) 44%,rgba(143,115,210,.2) 49%,rgba(70,112,167,.12) 54%,transparent 68%);
}
.space-nebula::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse at 68% 30%,rgba(62,203,210,.16),transparent 35%),radial-gradient(ellipse at 35% 72%,rgba(180,97,237,.19),transparent 38%);
  opacity:.55;animation:nebula-breathe 18s ease-in-out infinite alternate;
}
.space-stars-far{
  opacity:.65;background-size:347px 359px;
  background-image:
    radial-gradient(1px 1px at 7% 12%,#d4ddff 70%,transparent 100%),
    radial-gradient(1px 1px at 33% 62%,#bddcfa 70%,transparent 100%),
    radial-gradient(1px 1px at 74% 72%,#fff2dc 70%,transparent 100%),
    radial-gradient(.8px .8px at 52% 27%,#ddceff 70%,transparent 100%),
    radial-gradient(.8px .8px at 91% 45%,#d9eaff 70%,transparent 100%),
    radial-gradient(.7px .7px at 22% 88%,#f1dcff 70%,transparent 100%);
}
.space-stars-near{
  background-size:593px 617px;
  background-image:
    radial-gradient(1.6px 1.6px at 12% 22%,#fff 50%,transparent 100%),
    radial-gradient(2px 2px at 44% 84%,#fff1dd 45%,transparent 100%),
    radial-gradient(1.4px 1.4px at 82% 46%,#e4d8ff 50%,transparent 100%),
    radial-gradient(8px 1px at 12% 22%,rgba(183,216,255,.5),transparent 90%),
    radial-gradient(1px 8px at 12% 22%,rgba(183,216,255,.5),transparent 90%),
    radial-gradient(12px 12px at 12% 22%,rgba(112,174,255,.13),transparent 90%);
}
.space-scene[data-motion="on"] .space-layer{will-change:transform}
.space-scene[data-motion="off"] .space-nebula::after{animation-play-state:paused}
body[data-theme="bw"] .space-scene{background:#101216;filter:grayscale(1)}
body[data-theme="invert"] .space-scene{background:#edf1fc}
body[data-theme="invert"] .space-nebula{opacity:.22}
body[data-theme="invert"] .space-stars-far,
body[data-theme="invert"] .space-stars-near{filter:brightness(.35);opacity:.45}

/* The same color cycle and little rainbow strokes as the song-page blessing. */
.brand{gap:.5em;font-size:clamp(1.1rem,1.9vw,1.4rem);letter-spacing:.14em;text-transform:uppercase}
.theme-button{display:inline-grid;place-items:center;flex:0 0 44px;width:44px;height:44px;padding:0}
.theme-glyph{display:block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.theme-button[data-theme-mode="neon"] .theme-glyph{filter:drop-shadow(0 0 3px rgba(94,234,212,.45))}
body[data-theme="bw"] .theme-button[data-theme-mode="neon"] .theme-glyph{filter:grayscale(1)}
body[data-theme="invert"] .theme-button[data-theme-mode="neon"] .theme-glyph{filter:brightness(.65)}
.brand-wordmark,.footer-blessing-text{color:#bfe76c;animation:blessing-rainbow 10s linear infinite;text-shadow:0 0 14px rgba(163,230,53,.65),0 0 28px rgba(94,234,212,.4)}
.brand::before,.brand::after,.footer-blessing::before,.footer-blessing::after{
  content:"";width:.6em;height:2px;flex-shrink:0;
  background:linear-gradient(90deg,#f87171,#fbbf24,#86efac,#3b82f6,#c084fc);
  box-shadow:0 0 12px rgba(56,189,248,.6);
}
body[data-theme="bw"] .brand-wordmark,body[data-theme="bw"] .footer-blessing-text{animation:none;color:var(--ink);text-shadow:0 0 14px rgba(255,255,255,.3)}
body[data-theme="bw"] .brand::before,body[data-theme="bw"] .brand::after,body[data-theme="bw"] .footer-blessing::before,body[data-theme="bw"] .footer-blessing::after{background:#eee;box-shadow:none}
body[data-theme="invert"] .brand-wordmark,body[data-theme="invert"] .footer-blessing-text{animation:none;color:#6145a2;text-shadow:0 0 16px rgba(139,92,246,.25)}
@keyframes nebula-breathe{from{opacity:.35}to{opacity:.9}}
@keyframes blessing-rainbow{
  0%,100%{color:#f87171;text-shadow:0 0 14px rgba(248,113,113,.8),0 0 28px rgba(244,114,182,.55)}
  14%{color:#fb923c;text-shadow:0 0 14px rgba(251,146,60,.8),0 0 28px rgba(251,191,36,.55)}
  28%{color:#facc15;text-shadow:0 0 14px rgba(250,204,21,.75),0 0 28px rgba(163,230,53,.5)}
  42%{color:#4ade80;text-shadow:0 0 14px rgba(74,222,128,.75),0 0 28px rgba(45,212,191,.52)}
  57%{color:#38bdf8;text-shadow:0 0 16px rgba(56,189,248,.75),0 0 30px rgba(14,165,233,.5)}
  71%{color:#a855f7;text-shadow:0 0 16px rgba(168,85,247,.75),0 0 30px rgba(236,72,153,.55)}
  85%{color:#f472b6;text-shadow:0 0 16px rgba(244,114,182,.78),0 0 32px rgba(248,113,113,.52)}
}
@media (max-width:720px), (pointer:coarse){
  .space-layer{inset:-72px}
  .space-nebula::after{animation:none;opacity:.6}
}
@media (max-width:380px){.brand::before,.brand::after{display:none}}
@media (prefers-reduced-motion:reduce){
  .space-layer{transform:none !important;will-change:auto !important}
  .space-nebula::after,.brand-wordmark,.footer-blessing-text{animation:none}
}
html[data-space-paused] .brand-wordmark,html[data-space-paused] .footer-blessing-text{animation-play-state:paused}
