mirror of
https://github.com/sudosylabs/vnidrop.git
synced 2026-08-05 02:29:55 +02:00
248 lines
5.1 KiB
CSS
248 lines
5.1 KiB
CSS
/* Hero transfer scene */
|
|
.hero-visual {
|
|
position: relative;
|
|
width: min(100%, 730px);
|
|
margin: 0;
|
|
}
|
|
|
|
.hero-stage {
|
|
--pointer-x: 0;
|
|
--pointer-y: 0;
|
|
position: relative;
|
|
width: 100%;
|
|
aspect-ratio: 1.13;
|
|
isolation: isolate;
|
|
perspective: 1200px;
|
|
}
|
|
|
|
.hero-grid {
|
|
position: absolute;
|
|
z-index: -3;
|
|
inset: 9% 2% 4% 7%;
|
|
border: 1px solid rgba(168, 85, 247, 0.14);
|
|
border-radius: 50%;
|
|
background-image:
|
|
linear-gradient(rgba(121, 82, 138, 0.07) 1px, transparent 1px),
|
|
linear-gradient(90deg, rgba(121, 82, 138, 0.07) 1px, transparent 1px);
|
|
background-size: 32px 32px;
|
|
transform: rotateX(64deg) rotateZ(-8deg) translateZ(-70px);
|
|
mask-image: radial-gradient(circle, black 10%, transparent 70%);
|
|
}
|
|
|
|
.hero-glow {
|
|
position: absolute;
|
|
z-index: -2;
|
|
border-radius: 50%;
|
|
filter: blur(60px);
|
|
pointer-events: none;
|
|
}
|
|
|
|
.hero-glow-one {
|
|
top: 22%;
|
|
right: 8%;
|
|
width: 37%;
|
|
aspect-ratio: 1;
|
|
background: rgba(168, 85, 247, 0.23);
|
|
transform: translate(calc(var(--pointer-x) * 12px), calc(var(--pointer-y) * 12px));
|
|
}
|
|
|
|
.hero-glow-two {
|
|
bottom: 8%;
|
|
left: 28%;
|
|
width: 30%;
|
|
aspect-ratio: 1;
|
|
background: rgba(126, 58, 236, 0.16);
|
|
transform: translate(calc(var(--pointer-x) * -9px), calc(var(--pointer-y) * -9px));
|
|
}
|
|
|
|
.hero-scene {
|
|
position: absolute;
|
|
z-index: 1;
|
|
inset: 1% -3% auto -1%;
|
|
width: 105%;
|
|
overflow: visible;
|
|
transform: rotateY(calc(var(--pointer-x) * 1.7deg)) rotateX(calc(var(--pointer-y) * -1.7deg));
|
|
transform-origin: center;
|
|
transition: transform 180ms ease-out;
|
|
}
|
|
|
|
.scene-laptop {
|
|
transform: translate(calc(var(--pointer-x) * -4px), calc(var(--pointer-y) * -4px));
|
|
transition: transform 200ms ease-out;
|
|
}
|
|
|
|
.scene-phone {
|
|
transform: translate(calc(var(--pointer-x) * 7px), calc(var(--pointer-y) * 5px));
|
|
transition: transform 200ms ease-out;
|
|
}
|
|
|
|
.scene-orbits {
|
|
transform-origin: 385px 325px;
|
|
animation: scene-orbits 30s linear infinite;
|
|
}
|
|
|
|
.laptop-files {
|
|
transform-origin: 190px 245px;
|
|
animation: laptop-files 6s ease-in-out infinite;
|
|
}
|
|
|
|
.conduit-energy {
|
|
animation: conduit-energy 2s linear infinite;
|
|
}
|
|
|
|
.approval-gate {
|
|
transform-origin: 440px 443px;
|
|
animation: gate-hover 5s ease-in-out infinite;
|
|
}
|
|
|
|
.received-file {
|
|
transform-origin: 616px 270px;
|
|
animation: received-file 7s cubic-bezier(0.34, 1.2, 0.55, 1) infinite;
|
|
}
|
|
|
|
.packet,
|
|
.packet-spark {
|
|
opacity: 0;
|
|
transform-box: fill-box;
|
|
transform-origin: center;
|
|
}
|
|
|
|
.packet-one {
|
|
animation: hero-packet-one 7s cubic-bezier(0.45, 0.05, 0.35, 1) 0.6s infinite;
|
|
}
|
|
|
|
.packet-two {
|
|
animation: hero-packet-two 7s cubic-bezier(0.45, 0.05, 0.35, 1) 3s infinite;
|
|
}
|
|
|
|
.packet-spark-one {
|
|
animation: hero-spark-one 7s ease 0.6s infinite;
|
|
}
|
|
|
|
.packet-spark-two {
|
|
animation: hero-spark-two 7s ease 3s infinite;
|
|
}
|
|
|
|
.hero-status {
|
|
position: absolute;
|
|
z-index: 5;
|
|
display: flex;
|
|
align-items: center;
|
|
border: 1px solid rgba(222, 211, 228, 0.95);
|
|
background: rgba(255, 255, 255, 0.9);
|
|
box-shadow: 0 15px 45px rgba(49, 27, 61, 0.11);
|
|
backdrop-filter: blur(12px);
|
|
transition: transform 180ms ease-out;
|
|
}
|
|
|
|
.hero-status-secure {
|
|
top: 2%;
|
|
right: 5%;
|
|
gap: 10px;
|
|
padding: 10px 13px 10px 10px;
|
|
border-radius: 14px;
|
|
transform: translate(calc(var(--pointer-x) * 12px), calc(var(--pointer-y) * 8px)) rotate(2deg);
|
|
animation: status-hover 6s ease-in-out infinite;
|
|
}
|
|
|
|
.status-icon {
|
|
display: grid;
|
|
width: 34px;
|
|
height: 34px;
|
|
place-items: center;
|
|
border-radius: 10px;
|
|
background: var(--brand-100);
|
|
color: var(--brand-600);
|
|
}
|
|
|
|
.status-icon svg {
|
|
width: 17px;
|
|
}
|
|
|
|
.hero-status strong,
|
|
.hero-status small {
|
|
display: block;
|
|
}
|
|
|
|
.hero-status strong {
|
|
color: #2b2530;
|
|
font-size: 10px;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.hero-status small {
|
|
color: #897f8e;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.hero-status-route {
|
|
top: 18%;
|
|
left: 9%;
|
|
gap: 8px;
|
|
padding: 7px 11px;
|
|
border-radius: 999px;
|
|
color: #534b57;
|
|
font-family: var(--font-mono);
|
|
font-size: 8px;
|
|
font-weight: 700;
|
|
letter-spacing: 0.04em;
|
|
transform: translate(calc(var(--pointer-x) * -8px), calc(var(--pointer-y) * -6px)) rotate(-3deg);
|
|
}
|
|
|
|
.status-pulse,
|
|
.live-dot {
|
|
display: inline-block;
|
|
width: 7px;
|
|
height: 7px;
|
|
border-radius: 50%;
|
|
background: #2bc477;
|
|
box-shadow: 0 0 0 4px rgba(43, 196, 119, 0.13);
|
|
animation: status-pulse 2.4s ease-in-out infinite;
|
|
}
|
|
|
|
.hero-file-label {
|
|
position: absolute;
|
|
z-index: 4;
|
|
bottom: 7%;
|
|
left: 7%;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 11px;
|
|
padding: 10px 13px;
|
|
border: 1px solid rgba(222, 211, 228, 0.95);
|
|
border-radius: 14px;
|
|
background: rgba(255, 255, 255, 0.9);
|
|
box-shadow: 0 15px 45px rgba(49, 27, 61, 0.11);
|
|
backdrop-filter: blur(12px);
|
|
transform: translate(calc(var(--pointer-x) * -10px), calc(var(--pointer-y) * -7px)) rotate(-2deg);
|
|
transition: transform 180ms ease-out;
|
|
}
|
|
|
|
.file-type-icon {
|
|
display: grid;
|
|
width: 37px;
|
|
height: 37px;
|
|
place-items: center;
|
|
border-radius: 10px;
|
|
background: linear-gradient(135deg, var(--brand-400), var(--brand-600));
|
|
color: white;
|
|
font-family: var(--font-mono);
|
|
font-size: 8px;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.hero-file-label strong,
|
|
.hero-file-label small {
|
|
display: block;
|
|
}
|
|
|
|
.hero-file-label strong {
|
|
font-size: 10px;
|
|
}
|
|
|
|
.hero-file-label small {
|
|
color: var(--ink-muted);
|
|
font-size: 8px;
|
|
}
|
|
|