Spaces:
Running
Running
.rayContainer { | |
// Theme-specific colors | |
--ray-color-primary: color-mix(in srgb, var(--primary-color), transparent 30%); | |
--ray-color-secondary: color-mix(in srgb, var(--secondary-color), transparent 30%); | |
--ray-color-accent: color-mix(in srgb, var(--accent-color), transparent 30%); | |
// Theme-specific gradients | |
--ray-gradient-primary: radial-gradient(var(--ray-color-primary) 0%, transparent 70%); | |
--ray-gradient-secondary: radial-gradient(var(--ray-color-secondary) 0%, transparent 70%); | |
--ray-gradient-accent: radial-gradient(var(--ray-color-accent) 0%, transparent 70%); | |
position: fixed; | |
inset: 0; | |
overflow: hidden; | |
animation: fadeIn 1.5s ease-out; | |
pointer-events: none; | |
z-index: 0; | |
// background-color: transparent; | |
:global(html[data-theme='dark']) & { | |
mix-blend-mode: screen; | |
} | |
:global(html[data-theme='light']) & { | |
mix-blend-mode: multiply; | |
} | |
} | |
.lightRay { | |
position: absolute; | |
border-radius: 100%; | |
:global(html[data-theme='dark']) & { | |
mix-blend-mode: screen; | |
} | |
:global(html[data-theme='light']) & { | |
mix-blend-mode: multiply; | |
opacity: 0.4; | |
} | |
} | |
.ray1 { | |
width: 600px; | |
height: 800px; | |
background: var(--ray-gradient-primary); | |
transform: rotate(65deg); | |
top: -500px; | |
left: -100px; | |
filter: blur(80px); | |
opacity: 0.6; | |
animation: float1 15s infinite ease-in-out; | |
} | |
.ray2 { | |
width: 400px; | |
height: 600px; | |
background: var(--ray-gradient-secondary); | |
transform: rotate(-30deg); | |
top: -300px; | |
left: 200px; | |
filter: blur(60px); | |
opacity: 0.6; | |
animation: float2 18s infinite ease-in-out; | |
} | |
.ray3 { | |
width: 500px; | |
height: 400px; | |
background: var(--ray-gradient-accent); | |
top: -320px; | |
left: 500px; | |
filter: blur(65px); | |
opacity: 0.5; | |
animation: float3 20s infinite ease-in-out; | |
} | |
.ray4 { | |
width: 400px; | |
height: 450px; | |
background: var(--ray-gradient-secondary); | |
top: -350px; | |
left: 800px; | |
filter: blur(55px); | |
opacity: 0.55; | |
animation: float4 17s infinite ease-in-out; | |
} | |
.ray5 { | |
width: 350px; | |
height: 500px; | |
background: var(--ray-gradient-primary); | |
transform: rotate(-45deg); | |
top: -250px; | |
left: 1000px; | |
filter: blur(45px); | |
opacity: 0.6; | |
animation: float5 16s infinite ease-in-out; | |
} | |
.ray6 { | |
width: 300px; | |
height: 700px; | |
background: var(--ray-gradient-accent); | |
transform: rotate(75deg); | |
top: -400px; | |
left: 600px; | |
filter: blur(75px); | |
opacity: 0.45; | |
animation: float6 19s infinite ease-in-out; | |
} | |
.ray7 { | |
width: 450px; | |
height: 600px; | |
background: var(--ray-gradient-primary); | |
transform: rotate(45deg); | |
top: -450px; | |
left: 350px; | |
filter: blur(65px); | |
opacity: 0.55; | |
animation: float7 21s infinite ease-in-out; | |
} | |
.ray8 { | |
width: 380px; | |
height: 550px; | |
background: var(--ray-gradient-secondary); | |
transform: rotate(-60deg); | |
top: -380px; | |
left: 750px; | |
filter: blur(58px); | |
opacity: 0.6; | |
animation: float8 14s infinite ease-in-out; | |
} | |
@keyframes float1 { | |
0%, | |
100% { | |
transform: rotate(65deg) translate(0, 0); | |
} | |
25% { | |
transform: rotate(70deg) translate(30px, 20px); | |
} | |
50% { | |
transform: rotate(60deg) translate(-20px, 40px); | |
} | |
75% { | |
transform: rotate(68deg) translate(-40px, 10px); | |
} | |
} | |
@keyframes float2 { | |
0%, | |
100% { | |
transform: rotate(-30deg) scale(1); | |
} | |
33% { | |
transform: rotate(-25deg) scale(1.1); | |
} | |
66% { | |
transform: rotate(-35deg) scale(0.95); | |
} | |
} | |
@keyframes float3 { | |
0%, | |
100% { | |
transform: translate(0, 0) rotate(0deg); | |
} | |
25% { | |
transform: translate(40px, 20px) rotate(5deg); | |
} | |
75% { | |
transform: translate(-30px, 40px) rotate(-5deg); | |
} | |
} | |
@keyframes float4 { | |
0%, | |
100% { | |
transform: scale(1) rotate(0deg); | |
} | |
50% { | |
transform: scale(1.15) rotate(10deg); | |
} | |
} | |
@keyframes float5 { | |
0%, | |
100% { | |
transform: rotate(-45deg) translate(0, 0); | |
} | |
33% { | |
transform: rotate(-40deg) translate(25px, -20px); | |
} | |
66% { | |
transform: rotate(-50deg) translate(-25px, 20px); | |
} | |
} | |
@keyframes float6 { | |
0%, | |
100% { | |
transform: rotate(75deg) scale(1); | |
filter: blur(75px); | |
} | |
50% { | |
transform: rotate(85deg) scale(1.1); | |
filter: blur(65px); | |
} | |
} | |
@keyframes float7 { | |
0%, | |
100% { | |
transform: rotate(45deg) translate(0, 0); | |
opacity: 0.55; | |
} | |
50% { | |
transform: rotate(40deg) translate(-30px, 30px); | |
opacity: 0.65; | |
} | |
} | |
@keyframes float8 { | |
0%, | |
100% { | |
transform: rotate(-60deg) scale(1); | |
} | |
25% { | |
transform: rotate(-55deg) scale(1.05); | |
} | |
75% { | |
transform: rotate(-65deg) scale(0.95); | |
} | |
} | |
@keyframes fadeIn { | |
from { | |
opacity: 0; | |
} | |
to { | |
opacity: 1; | |
} | |
} | |