/* Ambient motion stays underneath the page and never captures input. */
body { isolation: isolate; }
.ambient-background { position: fixed; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; background: radial-gradient(ellipse at 75% 58%, #4a19592b, transparent 65%); }
#signal-scene { display: block; width: 100%; height: 100%; opacity: 0; transition: opacity 1.4s ease; }
.scene-ready #signal-scene { opacity: .85; }
.ambient-vignette { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 40%, transparent 20%, #100c1729 75%, #100c1766 100%), linear-gradient(90deg, transparent, #100c1755 23%, #100c1755 62%, transparent); }
.site-header { background: #100c17c9; }
.ticker-track { display: flex; animation: transmission-scroll var(--ticker-duration, 55s) linear infinite; }
.ticker-sequence { flex-shrink: 0; white-space: nowrap; }
.cover-art::before { content: ''; position: absolute; z-index: 4; inset: -35% 0; pointer-events: none; background: linear-gradient(transparent 43%, #f8bfe808 47%, #f8bfe818 50%, transparent 54%); animation: cover-scan 7s ease-in-out infinite; }
.cover-stars { animation: star-breathe 6s ease-in-out infinite alternate; }
.cover-sun { animation: sun-breathe 8s ease-in-out infinite; }
.player-panel { position: relative; transition: border-color .3s, box-shadow .3s; }
.player-panel:hover { border-color: #805070; box-shadow: 0 10px 60px #03000533, 0 0 35px #ff68ac08; }
.episode-thumb { transition: transform .35s ease, box-shadow .35s ease; }
.episode-row:hover .episode-thumb { transform: rotate(-4deg) translateY(-2px); box-shadow: 0 4px 18px #f66eaf22; }
.episode-play:hover svg { transform: translateX(1px); }
.episode-row:not([hidden]) { animation: transmission-enter .4s ease both; }
.orbit { animation: orbit-turn 38s linear infinite; }
.orbit-one { --orbit-start: -30deg; }
.orbit-two { --orbit-start: 30deg; animation-duration: 46s; animation-direction: reverse; }
.orbit-three { --orbit-start: 90deg; animation-duration: 54s; }
.orbit-center { animation: transmitter-breathe 7s ease-in-out infinite; }
.support-inner::after { animation: support-beacon 9s ease-in-out infinite; }

@keyframes crt-float { 0%,100% { transform: translate3d(0, 3px, 0) rotate(-.25deg); } 50% { transform: translate3d(0, -5px, 0) rotate(.25deg); } }
@keyframes signal-glow { 0%,100% { opacity: .4; } 50% { opacity: 1; } }
@keyframes transmission-scroll { to { transform: translateX(calc(-1 * var(--ticker-distance, 0px))); } }
@keyframes cover-scan { 0% { transform: translateY(-55%); } 70%,100% { transform: translateY(55%); } }
@keyframes star-breathe { from { opacity: .3; } to { opacity: .65; } }
@keyframes sun-breathe { 0%,100% { filter: brightness(.95); } 50% { filter: brightness(1.12); } }
@keyframes transmission-enter { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: translateY(0); } }
@keyframes orbit-turn { from { transform: translate(-50%,-50%) rotate(var(--orbit-start)); } to { transform: translate(-50%,-50%) rotate(calc(var(--orbit-start) + 360deg)); } }
@keyframes transmitter-breathe { 0%,100% { box-shadow: 0 0 25px #d966b322; } 50% { box-shadow: 0 0 42px #d966b344; } }
@keyframes support-beacon { 0%,100% { transform: scale(.95); opacity: .6; } 50% { transform: scale(1.12); opacity: 1; } }

/* Pause ambient effects with device preferences and page visibility. */
html:not([data-motion="running"]) *, html:not([data-motion="running"]) *::before, html:not([data-motion="running"]) *::after { animation-play-state: paused !important; }
html:not([data-motion="running"]) .episode-row { animation: none; }
html:not([data-motion="running"]) .episode-row:hover .episode-thumb { transform: none; }
@media (max-width: 580px) {
  .scene-ready #signal-scene { opacity: .62; }
  @keyframes crt-float-mobile { 0%,100% { transform: translateY(2px); } 50% { transform: translateY(-4px); } }
}
@media (prefers-reduced-motion: reduce) {
  #signal-scene { transition: none; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .episode-row:hover .episode-thumb { transform: none; }
}
