diff --git a/plugin/contents/ui/dancer.html b/plugin/contents/ui/dancer.html index ce4bafa..e9c919e 100644 --- a/plugin/contents/ui/dancer.html +++ b/plugin/contents/ui/dancer.html @@ -31,6 +31,7 @@ html, body { filter: blur(80px); pointer-events: none; animation: nebulaFloat ease-in-out infinite; + transition: background 3.5s ease; } .nebula-a { width: 500px; height: 350px; @@ -184,7 +185,11 @@ html, body { max-width: 80vw; overflow: hidden; opacity: 0; - transition: opacity 0.8s; + transition: opacity 0.8s, top 0.8s ease; +} +body.balada .music-ticker { + /* acima do VU meter: bottom 5% + 70px barras + 10px gap */ + top: calc(100% - 5% - 70px - 10px - 28px); } .music-icon { color: #ff44aa; @@ -772,14 +777,13 @@ html, body { left: 50%; bottom: 41.5%; transform: translateX(-50%) translateY(50%); + transition: + bottom 2.8s cubic-bezier(0.16, 1, 0.3, 1), + transform 2.8s cubic-bezier(0.16, 1, 0.3, 1), + background 7s ease, + box-shadow 7s ease; + /* listras geradas por JS — ver buildSunStripes() */ background: - repeating-linear-gradient( - to bottom, - transparent 0px, - transparent 13px, - rgba(20, 0, 50, 0.72) 13px, - rgba(20, 0, 50, 0.72) 17px - ), linear-gradient(rgba(0,0,0,0.35), rgba(0,0,0,0.28)), linear-gradient(to bottom, #fff9cc 0%, @@ -842,6 +846,155 @@ html, body { to { transform: translateY(-38px) scaleX(0.88); opacity: 0.45; } } +/* ============================================================ + BALADA — SOL VIRA DISCO (raios giram ao redor do centro) + ============================================================ */ + +/* Sol sobe para o céu */ +body.balada .synthwave-sun { + bottom: 70%; + transform: translateX(-50%) translateY(0); + /* background fica no #sunBaladaBg para crossfade suave via opacidade */ + box-shadow: + 0 0 10px 2px rgba(255,113,206,0.18), + 0 0 28px 6px rgba(185,103,255,0.10), + 0 0 60px 12px rgba(1,205,254,0.05), + 0 0 120px 25px rgba(185,103,255,0.03); +} + + +/* Overlay de balada — fade in/out suave sobre o fundo retrowave */ +#sunBaladaBg { + position: absolute; + inset: 0; + border-radius: 50%; + pointer-events: none; + opacity: 0; + transition: opacity 9s ease; + background: radial-gradient(circle at 40% 35%, #2a0050 0%, #08000f 100%); +} +body.balada #sunBaladaBg { opacity: 1; } + +/* Listras orgânicas do sol retrowave — geradas por buildSunStripes() */ +#sunStripes { + position: absolute; + inset: 0; + border-radius: 50%; + pointer-events: none; + opacity: 1; + transition: opacity 9s ease; +} +body.balada #sunStripes { opacity: 0; } + +/* Linhas do globo desenhadas via canvas JS — ver drawGlobe() */ +body.balada .synthwave-sun::before { display: none; } + +/* Halo vaporwave — mais discreto */ +body.balada .synthwave-sun::after { + inset: -50%; + background: radial-gradient(ellipse at 50% 50%, + rgba(255,113,206,0.12) 0%, + rgba(185,103,255,0.08) 38%, + rgba(1,205,254,0.04) 60%, + transparent 74% + ); + animation: haloBreath 4s ease-in-out infinite alternate; + filter: blur(22px); +} +@keyframes haloBreath { + from { transform: scale(0.97); opacity: 0.5; } + to { transform: scale(1.06); opacity: 0.85; } +} + +/* Raios: container centrado no sol (140px = raio de 280px) */ +.sun-rays-wrap { + position: absolute; + top: 140px; left: 140px; + width: 0; height: 0; + pointer-events: none; + opacity: 0; + transition: opacity 1.8s ease 1s; +} +body.balada .sun-rays-wrap { opacity: 1; } + +.sun-ray { + position: absolute; + top: -1.5px; left: 0; + height: 3px; + transform-origin: left center; + border-radius: 0 3px 3px 0; +} + +/* ============================================================ + BALADA — REFLETORES (SPOTLIGHTS) + ============================================================ */ +.spotlight-wrap { + position: absolute; inset: 0; + pointer-events: none; + z-index: 41; + opacity: 0; + transition: opacity 2.2s ease 0.6s; +} +body.balada .spotlight-wrap { opacity: 1; } + +.spl { + position: absolute; + top: 0; +} +.spl::after { + content: ''; + position: absolute; + top: -60px; /* começa acima da tela — esconde o corte da geometria */ + left: -35px; + width: 70px; height: calc(68vh + 60px); + clip-path: polygon(22% 0%, 78% 0%, 100% 100%, 0% 100%); + transform-origin: 50% 60px; /* pivô na borda superior da tela */ + opacity: 0.12; +} +.spl-1 { left: 15%; } +.spl-1::after { background: linear-gradient(rgba(255,113,206,0.9),transparent); animation: sws1 9s ease-in-out infinite; } +.spl-2 { left: 50%; } +.spl-2::after { background: linear-gradient(rgba(1,205,254,0.9),transparent); animation: sws2 11s ease-in-out infinite; animation-delay:-3s; } +.spl-3 { left: 85%; } +.spl-3::after { background: linear-gradient(rgba(185,103,255,0.9),transparent); animation: sws1 8s ease-in-out infinite; animation-delay:-2s; } +.spl-4 { left: 30%; } +.spl-4::after { background: linear-gradient(rgba(5,255,161,0.9),transparent); animation: sws3 13s ease-in-out infinite; animation-delay:-5s; } +.spl-5 { left: 70%; } +.spl-5::after { background: linear-gradient(rgba(255,251,150,0.9),transparent); animation: sws2 10s ease-in-out infinite; animation-delay:-7s; } + +@keyframes sws1 { 0%,100%{ transform:rotate(-20deg); } 50%{ transform:rotate(20deg); } } +@keyframes sws2 { 0%,100%{ transform:rotate(24deg); } 50%{ transform:rotate(-24deg); } } +@keyframes sws3 { 0%,100%{ transform:rotate(-14deg); } 50%{ transform:rotate(30deg); } } + +/* ============================================================ + BALADA — PARTÍCULAS DE LUZ + STROBE + ============================================================ */ +.disco-dot { + position: absolute; + border-radius: 50%; + pointer-events: none; + animation: discoDotFly linear forwards; +} +@keyframes discoDotFly { + 0% { opacity:0; transform:translate(0,0) scale(0); } + 8% { opacity:1; transform:translate(var(--tx1),var(--ty1)) scale(1); } + 90% { opacity:0.85; transform:translate(var(--tx2),var(--ty2)) scale(0.6); } + 100%{ opacity:0; transform:translate(var(--tx3),var(--ty3)) scale(0); } +} +.strobe { + position: fixed; inset: 0; + background: white; opacity: 0; + pointer-events: none; z-index: 9990; + mix-blend-mode: overlay; +} + +/* ============================================================ + BALADA — SOBRESCRITAS DO AMBIENTE + ============================================================ */ +body.balada .nebula-a { background: radial-gradient(ellipse, rgba(255,0,100,0.22), transparent 70%); } +body.balada .nebula-b { background: radial-gradient(ellipse, rgba(180,0,255,0.18), transparent 70%); } +body.balada .nebula-c { background: radial-gradient(ellipse, rgba(255,140,0,0.14), transparent 70%); } + @@ -856,8 +1009,12 @@ html, body { - -
+ +
+
+
+
+
@@ -901,9 +1058,24 @@ html, body {
+ +
+
+
+
+
+
+
+ + +
+
+ +
+