body{min-height:100vh;background:#05050b url('../img/radio-background-v2.png') center top/cover fixed no-repeat;overflow-x:hidden}
body:before{content:"";position:fixed;inset:0;z-index:0;background:linear-gradient(180deg,rgba(4,4,12,.22),rgba(4,4,12,.66) 68%,#08080d),radial-gradient(circle at 50% 35%,transparent 0 18%,rgba(3,3,10,.32) 75%);pointer-events:none}
.ambient{z-index:0;inset:-35%;background:conic-gradient(from 210deg at 50% 45%,transparent 0deg,color-mix(in srgb,var(--accent) 14%,transparent) 45deg,transparent 95deg,rgba(6,182,212,.12) 160deg,transparent 225deg);filter:blur(45px);animation:ambientSpin 24s linear infinite}
.ambient:after{content:"";position:absolute;inset:25%;border:1px solid rgba(255,255,255,.07);border-radius:50%;box-shadow:0 0 70px rgba(139,92,246,.18),inset 0 0 70px rgba(6,182,212,.08);animation:pulseRing 4s ease-in-out infinite}
.panel{background:color-mix(in srgb,var(--panel) 78%,transparent);border-color:rgba(255,255,255,.11);box-shadow:0 25px 80px rgba(0,0,0,.28)}
.hero{text-shadow:0 4px 30px rgba(0,0,0,.6)}
@keyframes ambientSpin{to{transform:rotate(360deg)}}
@keyframes pulseRing{50%{transform:scale(1.08);opacity:.45}}
@media(prefers-reduced-motion:reduce){.ambient,.ambient:after,.playing .visualizer b{animation:none}}

