| .rayContainer { |
| |
| --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%); |
|
|
| |
| --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; |
| |
|
|
| :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; |
| } |
| } |
|
|