.ov-scene{position:relative;overflow:hidden;pointer-events:none;font-family:var(--ov-font);color:var(--ov-title);background:transparent;box-sizing:border-box}
.ov-scene *{box-sizing:border-box}.ov-scene [hidden]{display:none!important}
.ov-position{position:absolute;width:var(--ov-width);max-width:100%}
.ov-card{position:relative;display:flex;align-items:center;gap:var(--ov-gap);width:var(--ov-width);height:var(--ov-height);padding:var(--ov-padding);border-radius:var(--ov-radius);border:var(--ov-border-width) solid var(--ov-border);box-shadow:var(--ov-shadow);opacity:0;isolation:isolate;overflow:hidden}
.ov-background{position:absolute;inset:0;z-index:-1;border-radius:inherit}
.ov-art{width:var(--ov-art-size);height:var(--ov-art-size);flex:0 0 auto;border-radius:var(--ov-art-radius);background:var(--ov-art-gradient);overflow:hidden}
.ov-art img{display:block;width:100%;height:100%;object-fit:cover}
.ov-copy{flex:1;min-width:0;text-align:var(--ov-align);text-shadow:var(--ov-text-shadow)}
.ov-label{font-size:calc(var(--ov-label-size) * var(--ov-type-scale));font-weight:700;letter-spacing:2px;color:var(--ov-label);margin-bottom:8px;overflow-wrap:anywhere}
.ov-title{font-size:calc(var(--ov-title-size) * var(--ov-type-scale));font-weight:var(--ov-weight);line-height:1.2;letter-spacing:var(--ov-spacing);text-transform:var(--ov-case);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.ov-title span{display:inline-block}.ov-artist{font-size:calc(var(--ov-artist-size) * var(--ov-type-scale));color:var(--ov-artist);margin-top:6px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ov-requester,.ov-status{font-size:12px;color:var(--ov-artist);margin-top:7px;overflow-wrap:anywhere}.ov-status{color:var(--ov-accent);letter-spacing:1px;font-size:10px}
.ov-progress{height:30px;margin-top:14px;background:#ffffff18;border-radius:4px;overflow:hidden;position:relative}.ov-progress>div:first-child{height:100%;background:var(--ov-accent);transition:width .1s linear;opacity:.18}.ov-bars{position:absolute;inset:2px 0 0;display:flex;align-items:flex-end;gap:2px;background:transparent!important;opacity:1!important;z-index:2}.ov-bars i{display:block;flex:1;min-width:2px;background:var(--ov-visualizer-gradient);border-radius:2px 2px 0 0;transition:height .15s ease,opacity .15s ease}.ov-scene[data-playing=true] .ov-bars i{animation:ovBarPulse .7s ease-in-out infinite alternate;animation-delay:calc(var(--bar-index, 0) * -35ms)}.ov-scene[data-visualizer=off] .ov-bars{display:none}.ov-scene[data-visualizer=dots] .ov-bars{align-items:center;gap:5px}.ov-scene[data-visualizer=dots] .ov-bars i{width:7px;max-width:7px;height:7px!important;border-radius:50%;animation:none}.ov-scene[data-visualizer=dots] .ov-progress>div:first-child{opacity:0}.ov-scene[data-visualizer=linejump] .ov-bars,.ov-scene[data-visualizer=linewave] .ov-bars{align-items:center;gap:3px;overflow:visible}.ov-scene[data-visualizer=linejump] .ov-bars i,.ov-scene[data-visualizer=linewave] .ov-bars i{height:2px!important;border-radius:999px;animation:none}.ov-scene[data-visualizer=rays] .ov-bars{inset:1px 8% 0;justify-content:center;overflow:visible}.ov-scene[data-visualizer=rays] .ov-bars i{flex:0 1 7px;transform-origin:50% 100%;border-radius:999px 999px 0 0}.ov-scene[data-visualizer=spectrum] .ov-bars{gap:1px}@keyframes ovBarPulse{from{filter:brightness(.8)}to{filter:brightness(1.35)}}
.ov-times{display:flex;justify-content:space-between;margin-top:6px;font-size:10px;color:var(--ov-artist);font-variant-numeric:tabular-nums}
.ov-scene[data-layout=stacked] .ov-card{flex-direction:column}.ov-scene[data-layout=stacked] .ov-copy{width:100%}
.ov-scene[data-overflow=wrap] .ov-title{white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ov-scene[data-overflow=wrap] .ov-title span{display:inline}
.ov-scene[data-overflow=marquee] .ov-title{text-overflow:clip}.ov-scene[data-overflow=marquee] .ov-overflows span{animation:ov-marquee var(--ov-marquee-speed) ease-in-out infinite alternate}
.ov-scene[data-artmotion=spin] .ov-art{animation:ov-spin 18s linear infinite}.ov-scene[data-artmotion=pulse] .ov-art{animation:ov-pulse 3s ease-in-out infinite}
.ov-scene[data-playing=false] .ov-art,.ov-scene[data-playing=false] .ov-title span{animation-play-state:paused}
.ov-particles{position:absolute;inset:0;z-index:2;overflow:hidden;border-radius:inherit;pointer-events:none}.ov-particles i{position:absolute;left:var(--particle-x);top:var(--particle-y);display:block;width:5px;height:5px;border-radius:50%;background:var(--ov-particle-color);box-shadow:0 0 10px color-mix(in srgb,var(--ov-particle-color) 75%,transparent);opacity:0;animation-delay:var(--particle-delay)!important}.ov-scene[data-particles=off] .ov-particles{display:none}.ov-scene[data-particles=ambient] .ov-particles i{animation:ovParticleAmbient 4.8s ease-in-out infinite}.ov-scene[data-particles=sparkles] .ov-particles i{border-radius:1px;animation:ovParticleSpark 3.2s ease-in-out infinite}.ov-scene[data-particles=light-streaks] .ov-particles i{width:74px;height:2px;border-radius:999px;background:linear-gradient(90deg,transparent,var(--ov-particle-color),transparent);box-shadow:0 0 13px var(--ov-particle-color);animation:ovParticleStreak 5.8s cubic-bezier(.2,.7,.2,1) infinite}.ov-scene[data-particles=fireflies] .ov-particles i{animation:ovParticleFirefly 5.4s ease-in-out infinite}.ov-scene[data-particles=stardust] .ov-particles i{width:3px;height:3px;animation:ovParticleDust 4s linear infinite}.ov-scene[data-playing=false] .ov-particles i{animation-play-state:paused}
@keyframes ovParticleAmbient{0%,100%{opacity:.08;transform:translateY(8px) scale(.65)}50%{opacity:.72;transform:translateY(-10px) scale(1)}}@keyframes ovParticleSpark{0%,100%{opacity:0;transform:rotate(0) scale(.2)}45%{opacity:.9;transform:rotate(90deg) scale(1.35)}60%{opacity:.25;transform:rotate(145deg) scale(.5)}}@keyframes ovParticleStreak{0%,72%,100%{opacity:0;transform:translate(-150px,45px) rotate(-18deg) scaleX(.35)}78%{opacity:.92}94%{opacity:0;transform:translate(220px,-70px) rotate(-18deg) scaleX(1.15)}}@keyframes ovParticleFirefly{0%,100%{opacity:.08;transform:translate(-7px,9px)}35%{opacity:.9;transform:translate(8px,-13px)}72%{opacity:.35;transform:translate(16px,2px)}}@keyframes ovParticleDust{0%{opacity:0;transform:translateY(22px) translateX(-5px)}25%{opacity:.75}100%{opacity:0;transform:translateY(-65px) translateX(16px)}}
.ov-scene.ov-reduced *{animation:none!important;transition:none!important}
@keyframes ov-marquee{0%,15%{transform:translateX(0)}85%,100%{transform:translateX(var(--ov-scroll))}}
@keyframes ov-spin{to{transform:rotate(360deg)}}@keyframes ov-pulse{50%{transform:scale(.92)}}
.ov-banner-layer{position:absolute;inset:0;z-index:30;pointer-events:none;overflow:hidden;font-family:var(--ov-font,Manrope,Arial,sans-serif)}
.ov-banner-layer[hidden]{display:none}.ov-banner{position:absolute;display:flex;align-items:center;gap:20px;width:min(var(--bn-width),calc(100% - 96px));min-height:92px;padding:17px 24px;border:1px solid color-mix(in srgb,var(--bn-accent) 38%,#ffffff33);border-radius:20px;color:var(--bn-text);background:color-mix(in srgb,var(--bn-bg) 92%,transparent);box-shadow:0 20px 60px #0008,0 1px 0 #ffffff24 inset;isolation:isolate;overflow:hidden;opacity:0;transform-origin:center}
.ov-banner-layer[data-placement^=top] .ov-banner{top:48px}.ov-banner-layer[data-placement^=bottom] .ov-banner{bottom:48px}.ov-banner-layer[data-placement=top-left] .ov-banner,.ov-banner-layer[data-placement=bottom-left] .ov-banner{left:48px}.ov-banner-layer[data-placement=top-center] .ov-banner,.ov-banner-layer[data-placement=bottom-center] .ov-banner,.ov-banner-layer[data-placement=center] .ov-banner{left:50%;translate:-50% 0}.ov-banner-layer[data-placement=top-right] .ov-banner,.ov-banner-layer[data-placement=bottom-right] .ov-banner{right:48px}.ov-banner-layer[data-placement=center] .ov-banner{top:50%;translate:-50% -50%}
.ov-banner-layer[data-placement=free] .ov-banner{left:var(--bn-x);top:var(--bn-y);width:min(var(--bn-width),calc(100% - var(--bn-x)));height:min(var(--bn-height),calc(100% - var(--bn-y)));min-height:72px}
.ov-banner-glow{position:absolute;inset:-80% 34% -90% -8%;z-index:-1;background:radial-gradient(circle,color-mix(in srgb,var(--bn-accent) 45%,transparent),transparent 68%);filter:blur(12px)}
.ov-banner-logo{width:62px;height:62px;flex:0 0 auto;border-radius:16px;object-fit:cover;border:1px solid #ffffff42;box-shadow:0 8px 22px #0006}.ov-banner-copy{min-width:0;display:grid;gap:4px}.ov-banner-copy strong{font-size:var(--bn-font);line-height:1.1;letter-spacing:-.035em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ov-banner-copy span{color:var(--bn-subtext);font-size:max(13px,calc(var(--bn-font) * .48));line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ov-banner-edge{position:absolute;inset:0 auto 0 0;width:5px;background:linear-gradient(180deg,var(--bn-accent),color-mix(in srgb,var(--bn-accent) 25%,#fff));box-shadow:0 0 22px var(--bn-accent)}
.ov-banner-particles{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.ov-banner-particles i{position:absolute;left:var(--bn-px);top:var(--bn-py);display:block;width:5px;height:5px;border-radius:50%;background:var(--bn-particle);box-shadow:0 0 10px color-mix(in srgb,var(--bn-particle) 78%,transparent);opacity:0;animation-delay:var(--bn-pd)!important}.ov-banner-layer[data-particles=off] .ov-banner-particles{display:none}.ov-banner-layer[data-particles=sparkles] .ov-banner-particles i{border-radius:1px;animation:bnSparkle 3s ease-in-out infinite}.ov-banner-layer[data-particles=confetti] .ov-banner-particles i{width:4px;height:9px;border-radius:2px;animation:bnConfetti 4.1s linear infinite}.ov-banner-layer[data-particles=light-streaks] .ov-banner-particles i{width:110px;height:2px;border-radius:999px;background:linear-gradient(90deg,transparent,var(--bn-particle),transparent);box-shadow:0 0 15px var(--bn-particle);animation:bnLightStreak 5.6s cubic-bezier(.2,.7,.2,1) infinite}.ov-banner-layer[data-particles=embers] .ov-banner-particles i{animation:bnEmber 3.8s ease-out infinite}.ov-banner-layer[data-particles=orbit] .ov-banner-particles i{animation:bnOrbit 5.4s ease-in-out infinite}
.ov-banner-layer[data-style=solid] .ov-banner{background:var(--bn-bg);backdrop-filter:none}.ov-banner-layer[data-style=gradient] .ov-banner{background:linear-gradient(115deg,var(--bn-bg),color-mix(in srgb,var(--bn-accent) 34%,var(--bn-bg)))}.ov-banner-layer[data-style=transparent] .ov-banner{background:transparent;border-color:transparent;box-shadow:none;text-shadow:0 3px 12px #000}.ov-banner-layer[data-style=glass] .ov-banner{backdrop-filter:blur(18px) saturate(1.25);background:color-mix(in srgb,var(--bn-bg) 78%,transparent)}.ov-banner-layer[data-style=ticker] .ov-banner{width:calc(100% - 96px);border-radius:11px;padding-block:13px;min-height:72px}.ov-banner-layer[data-style=ticker] .ov-banner-copy{overflow:hidden}.ov-banner-layer[data-style=ticker] .ov-banner-copy strong{display:inline-block;max-width:none;overflow:visible;text-overflow:clip;animation:bnTicker 14s linear infinite}.ov-banner-layer[data-style=ticker] .ov-banner-copy span{display:none}
.ov-banner.is-live .ov-banner-edge{animation:bnEdge 1.15s ease-in-out infinite alternate}.ov-banner.is-live .ov-banner-logo{animation:bnLogo 2.4s ease-in-out infinite}.ov-banner-layer[data-enter=neon-trail] .ov-banner.is-live,.ov-banner-layer[data-enter=glitch] .ov-banner.is-live{border-color:var(--bn-accent)}.ov-banner-layer[data-enter=split-reveal] .ov-banner-copy>*{animation:bnTextReveal .72s cubic-bezier(.2,.8,.2,1) both}.ov-banner-layer[data-enter=split-reveal] .ov-banner-copy span{animation-delay:.13s}.ov-banner-layer[data-enter=cinematic] .ov-banner-copy strong{text-transform:uppercase;letter-spacing:.05em}.ov-banner-layer[data-enter=glitch] .ov-banner-copy strong{text-shadow:3px 0 #00e5ff,-3px 0 #ff2f74}
@keyframes bnEdge{from{filter:brightness(.8);transform:scaleY(.72)}to{filter:brightness(1.45);transform:scaleY(1)}}@keyframes bnLogo{50%{transform:translateY(-3px);box-shadow:0 12px 28px #0008,0 0 18px color-mix(in srgb,var(--bn-accent) 45%,transparent)}}@keyframes bnTextReveal{from{opacity:0;transform:translateX(28px);filter:blur(7px)}to{opacity:1;transform:none;filter:none}}@keyframes bnTicker{from{transform:translateX(110%)}to{transform:translateX(-110%)}}
@keyframes bnSparkle{0%,100%{opacity:0;transform:scale(.2) rotate(0)}45%{opacity:.95;transform:scale(1.4) rotate(90deg)}}@keyframes bnConfetti{0%{opacity:0;transform:translateY(-35px) rotate(0)}15%{opacity:.9}100%{opacity:0;transform:translateY(130px) rotate(460deg)}}@keyframes bnLightStreak{0%,68%,100%{opacity:0;transform:translate(-180px,55px) rotate(-16deg) scaleX(.35)}75%{opacity:.95}94%{opacity:0;transform:translate(300px,-75px) rotate(-16deg) scaleX(1.2)}}@keyframes bnEmber{0%{opacity:0;transform:translateY(20px) scale(.5)}35%{opacity:.9}100%{opacity:0;transform:translate(18px,-90px) scale(.1)}}@keyframes bnOrbit{0%,100%{opacity:.12;transform:translate(-12px,3px) scale(.65)}45%{opacity:.9;transform:translate(15px,-12px) scale(1.2)}75%{opacity:.42;transform:translate(28px,7px) scale(.8)}}
.ov-reduced .ov-banner *{animation:none!important}
