155 lines
4.2 KiB
Plaintext
155 lines
4.2 KiB
Plaintext
|
|
.home-right-visual {
|
||
|
|
position: relative;
|
||
|
|
width: 100%;
|
||
|
|
height: 100%;
|
||
|
|
min-height: 300px;
|
||
|
|
display: flex;
|
||
|
|
align-items: center;
|
||
|
|
justify-content: center;
|
||
|
|
perspective: 1200px;
|
||
|
|
z-index: 0;
|
||
|
|
pointer-events: none;
|
||
|
|
|
||
|
|
&__glow {
|
||
|
|
position: absolute;
|
||
|
|
border-radius: 50%;
|
||
|
|
filter: blur(50px);
|
||
|
|
z-index: -1;
|
||
|
|
pointer-events: none;
|
||
|
|
animation: pulseGlow 6s ease-in-out infinite alternate;
|
||
|
|
|
||
|
|
&--main {
|
||
|
|
width: 280px;
|
||
|
|
height: 280px;
|
||
|
|
background: rgba(103, 103, 244, 0.18);
|
||
|
|
top: 50%;
|
||
|
|
left: 50%;
|
||
|
|
transform: translate(-50%, -50%);
|
||
|
|
}
|
||
|
|
|
||
|
|
&--secondary {
|
||
|
|
width: 180px;
|
||
|
|
height: 180px;
|
||
|
|
background: rgba(165, 214, 255, 0.25);
|
||
|
|
top: 15%;
|
||
|
|
right: 15%;
|
||
|
|
animation-delay: -2s;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
&__soundwave {
|
||
|
|
position: relative;
|
||
|
|
width: 380px;
|
||
|
|
height: 160px;
|
||
|
|
display: flex;
|
||
|
|
align-items: center;
|
||
|
|
justify-content: center;
|
||
|
|
gap: 4px;
|
||
|
|
z-index: 2;
|
||
|
|
|
||
|
|
.home-right-visual__bar {
|
||
|
|
width: 5px;
|
||
|
|
height: 100%;
|
||
|
|
background: linear-gradient(180deg, rgba(165, 214, 255, 0.95) 0%, rgba(103, 103, 244, 0.95) 100%);
|
||
|
|
border-radius: 999px;
|
||
|
|
transform-origin: center;
|
||
|
|
/* The base transform uses the envelope to shape the bell curve */
|
||
|
|
transform: scaleY(calc(0.05 + 0.1 * var(--envelope)));
|
||
|
|
animation: soundwave-bounce var(--duration) ease-in-out infinite alternate;
|
||
|
|
/* Sweep delay creates the wave-like motion */
|
||
|
|
animation-delay: calc(-0.1s * var(--index));
|
||
|
|
box-shadow: 0 0 12px rgba(103, 103, 244, 0.25);
|
||
|
|
will-change: transform;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
&__drop {
|
||
|
|
position: absolute;
|
||
|
|
background: linear-gradient(145deg, rgba(255, 255, 255, 0.8) 0%, rgba(240, 240, 255, 0.3) 100%);
|
||
|
|
backdrop-filter: blur(16px);
|
||
|
|
-webkit-backdrop-filter: blur(16px);
|
||
|
|
border: 1px solid rgba(255, 255, 255, 0.7);
|
||
|
|
box-shadow:
|
||
|
|
0 12px 40px rgba(103, 103, 244, 0.15),
|
||
|
|
inset 0 0 20px rgba(255, 255, 255, 0.95),
|
||
|
|
inset 4px 4px 10px rgba(255, 255, 255, 0.6);
|
||
|
|
animation: floatDrop 6s ease-in-out infinite;
|
||
|
|
transform-style: preserve-3d;
|
||
|
|
overflow: hidden;
|
||
|
|
|
||
|
|
&-inner {
|
||
|
|
position: absolute;
|
||
|
|
width: 150%;
|
||
|
|
height: 150%;
|
||
|
|
top: -25%;
|
||
|
|
left: -25%;
|
||
|
|
background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.8) 0%, transparent 60%);
|
||
|
|
pointer-events: none;
|
||
|
|
transform: rotate(-45deg);
|
||
|
|
}
|
||
|
|
|
||
|
|
&--1 {
|
||
|
|
width: 80px;
|
||
|
|
height: 80px;
|
||
|
|
top: 10%;
|
||
|
|
right: 12%;
|
||
|
|
animation-duration: 7s;
|
||
|
|
animation-name: floatDrop1;
|
||
|
|
}
|
||
|
|
|
||
|
|
&--2 {
|
||
|
|
width: 120px;
|
||
|
|
height: 110px;
|
||
|
|
bottom: -10%;
|
||
|
|
left: -5%;
|
||
|
|
animation-duration: 9s;
|
||
|
|
animation-delay: -4s;
|
||
|
|
animation-name: floatDrop3;
|
||
|
|
background: linear-gradient(145deg, rgba(255, 255, 255, 0.6) 0%, rgba(180, 180, 255, 0.25) 100%);
|
||
|
|
}
|
||
|
|
|
||
|
|
&--3 {
|
||
|
|
width: 50px;
|
||
|
|
height: 50px;
|
||
|
|
top: -5%;
|
||
|
|
left: 35%;
|
||
|
|
animation-duration: 8s;
|
||
|
|
animation-delay: -3s;
|
||
|
|
animation-name: floatDrop5;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
@keyframes soundwave-bounce {
|
||
|
|
0% {
|
||
|
|
transform: scaleY(calc(0.05 + 0.1 * var(--envelope)));
|
||
|
|
opacity: 0.5;
|
||
|
|
}
|
||
|
|
100% {
|
||
|
|
transform: scaleY(calc(0.1 + 0.85 * var(--envelope)));
|
||
|
|
opacity: 1;
|
||
|
|
filter: brightness(1.2);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
@keyframes pulseGlow {
|
||
|
|
0% { transform: translate(-50%, -50%) scale(0.85); opacity: 0.5; }
|
||
|
|
100% { transform: translate(-50%, -50%) scale(1.15); opacity: 1; }
|
||
|
|
}
|
||
|
|
|
||
|
|
@keyframes floatDrop1 {
|
||
|
|
0%, 100% { transform: translateY(0) rotate(0deg); border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%; }
|
||
|
|
33% { transform: translateY(-22px) rotate(12deg); border-radius: 50% 50% 60% 40% / 50% 40% 70% 40%; }
|
||
|
|
66% { transform: translateY(12px) rotate(-8deg); border-radius: 30% 70% 50% 50% / 30% 60% 40% 60%; }
|
||
|
|
}
|
||
|
|
|
||
|
|
@keyframes floatDrop3 {
|
||
|
|
0%, 100% { transform: translateY(0) scale(1); border-radius: 50% 50% 30% 70% / 60% 40% 60% 40%; }
|
||
|
|
50% { transform: translateY(-28px) scale(1.02); border-radius: 30% 70% 50% 50% / 40% 60% 40% 60%; }
|
||
|
|
}
|
||
|
|
|
||
|
|
@keyframes floatDrop5 {
|
||
|
|
0%, 100% { transform: translateY(0) scale(1) rotate(0deg); border-radius: 45% 55% 65% 35% / 45% 45% 55% 55%; }
|
||
|
|
50% { transform: translateY(20px) scale(0.95) rotate(-10deg); border-radius: 55% 45% 35% 65% / 55% 55% 45% 45%; }
|
||
|
|
}
|