/* 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; }