teganmosi
Deploy Aria application with fixes for database, TTS, and WebSocket (LFS tracking applied)
f6d0a88 | /* ======================================== | |
| ARIA - VOICE CALL UI (Premium Aesthetics) | |
| ======================================== */ | |
| .voice-call-overlay { | |
| position: fixed; | |
| inset: 0; | |
| z-index: 1000; | |
| background: #020617; /* Deepest blue/black */ | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| padding: 2rem; | |
| text-align: center; | |
| overflow: hidden; | |
| font-family: 'Inter', sans-serif; | |
| } | |
| /* Atmospheric Background Elements */ | |
| .voice-call-bg { | |
| position: absolute; | |
| inset: 0; | |
| z-index: -1; | |
| overflow: hidden; | |
| } | |
| .voice-call-orb { | |
| position: absolute; | |
| border-radius: 50%; | |
| filter: blur(140px); | |
| opacity: 0.15; | |
| animation: orb-flow 25s infinite alternate ease-in-out; | |
| } | |
| .orb-gold { | |
| width: 60vw; | |
| height: 60vw; | |
| background: #F5CE4D; | |
| top: -20%; | |
| left: -10%; | |
| animation-duration: 30s; | |
| } | |
| .orb-blue { | |
| width: 50vw; | |
| height: 50vw; | |
| background: #6366f1; | |
| bottom: -10%; | |
| right: -5%; | |
| animation-duration: 35s; | |
| animation-delay: -5s; | |
| } | |
| .orb-purple { | |
| width: 40vw; | |
| height: 40vw; | |
| background: #a855f7; | |
| top: 40%; | |
| left: 30%; | |
| animation-duration: 40s; | |
| animation-delay: -10s; | |
| } | |
| /* Star/Particle Effect */ | |
| .voice-call-stars { | |
| position: absolute; | |
| inset: 0; | |
| background-image: | |
| radial-gradient(1px 1px at 20px 30px, #eee, rgba(0,0,0,0)), | |
| radial-gradient(1px 1px at 40px 70px, #fff, rgba(0,0,0,0)), | |
| radial-gradient(2px 2px at 50px 160px, #ddd, rgba(0,0,0,0)), | |
| radial-gradient(2px 2px at 90px 40px, #fff, rgba(0,0,0,0)), | |
| radial-gradient(1px 1px at 130px 80px, #fff, rgba(0,0,0,0)), | |
| radial-gradient(2px 2px at 160px 120px, #ddd, rgba(0,0,0,0)); | |
| background-repeat: repeat; | |
| background-size: 200px 200px; | |
| opacity: 0.1; | |
| animation: stars-twinkle 4s infinite alternate; | |
| } | |
| @keyframes stars-twinkle { | |
| from { opacity: 0.05; transform: scale(1); } | |
| to { opacity: 0.2; transform: scale(1.1); } | |
| } | |
| @keyframes orb-flow { | |
| 0% { transform: translate(0, 0) scale(1) rotate(0deg); } | |
| 50% { transform: translate(100px, 50px) scale(1.1) rotate(60deg); } | |
| 100% { transform: translate(-50px, 100px) scale(0.9) rotate(-30deg); } | |
| } | |
| /* Central Avatar & Pulse System */ | |
| .avatar-container { | |
| position: relative; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| margin-bottom: 3rem; | |
| transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1); | |
| } | |
| .avatar-container.speaking { | |
| transform: scale(1.05); | |
| } | |
| .avatar-glow { | |
| position: absolute; | |
| width: 300px; | |
| height: 300px; | |
| border-radius: 50%; | |
| background: radial-gradient(circle, rgba(245, 206, 77, 0.3) 0%, transparent 70%); | |
| opacity: 0.5; | |
| transition: all 0.5s ease; | |
| } | |
| .avatar-container.active .avatar-glow { | |
| animation: breathing-glow 4s infinite ease-in-out; | |
| } | |
| .avatar-container.speaking .avatar-glow { | |
| background: radial-gradient(circle, rgba(245, 206, 77, 0.6) 0%, transparent 70%); | |
| animation: resonance-glow 0.8s infinite alternate ease-in-out; | |
| } | |
| @keyframes breathing-glow { | |
| 0%, 100% { opacity: 0.3; transform: scale(1); } | |
| 50% { opacity: 0.5; transform: scale(1.2); } | |
| } | |
| @keyframes resonance-glow { | |
| 0% { opacity: 0.5; transform: scale(1.1); } | |
| 100% { opacity: 0.8; transform: scale(1.3); } | |
| } | |
| .avatar-image-wrapper { | |
| width: 240px; | |
| height: 240px; | |
| border-radius: 50%; | |
| padding: 8px; | |
| background: rgba(255, 255, 255, 0.05); | |
| backdrop-filter: blur(10px); | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| box-shadow: 0 0 50px rgba(0, 0, 0, 0.5); | |
| position: relative; | |
| z-index: 5; | |
| overflow: hidden; | |
| } | |
| .avatar-image { | |
| width: 100%; | |
| height: 100%; | |
| border-radius: 50%; | |
| object-fit: cover; | |
| transition: filter 1s ease; | |
| } | |
| .avatar-image.inactive { | |
| filter: grayscale(0.8) contrast(0.8); | |
| } | |
| /* Visualization Rings */ | |
| .ring { | |
| position: absolute; | |
| border: 1px solid rgba(245, 206, 77, 0.2); | |
| border-radius: 50%; | |
| pointer-events: none; | |
| } | |
| .ring-1 { width: 280px; height: 280px; animation: rotate-slow 20s infinite linear; } | |
| .ring-2 { width: 320px; height: 320px; border-style: dashed; animation: rotate-slow 30s infinite linear reverse; } | |
| .ring-3 { width: 400px; height: 400px; opacity: 0.1; animation: pulse-out 3s infinite ease-out; } | |
| @keyframes rotate-slow { | |
| from { transform: rotate(0deg); } | |
| to { transform: rotate(360deg); } | |
| } | |
| @keyframes pulse-out { | |
| 0% { transform: scale(1); opacity: 0.3; } | |
| 100% { transform: scale(1.5); opacity: 0; } | |
| } | |
| /* Typography & Info */ | |
| .voice-call-info { | |
| max-width: 600px; | |
| width: 100%; | |
| z-index: 10; | |
| } | |
| .status-label { | |
| font-size: 0.8rem; | |
| letter-spacing: 0.4em; | |
| color: #F5CE4D; | |
| text-transform: uppercase; | |
| font-weight: 800; | |
| margin-bottom: 0.5rem; | |
| opacity: 0.8; | |
| } | |
| .call-title { | |
| font-family: 'Playfair Display', serif; | |
| color: white; | |
| font-size: 3.5rem; | |
| margin-bottom: 2rem; | |
| letter-spacing: -0.02em; | |
| font-weight: 500; | |
| text-shadow: 0 10px 30px rgba(0,0,0,0.5); | |
| } | |
| .transcript-panel { | |
| min-height: 120px; | |
| padding: 2rem; | |
| border-radius: 32px; | |
| background: rgba(255, 255, 255, 0.03); | |
| backdrop-filter: blur(20px); | |
| border: 1px solid rgba(255, 255, 255, 0.08); | |
| color: rgba(255, 255, 255, 0.8); | |
| font-size: 1.25rem; | |
| line-height: 1.6; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-style: italic; | |
| font-weight: 300; | |
| box-shadow: 0 20px 80px rgba(0,0,0,0.4); | |
| transition: all 0.5s ease; | |
| animation: fade-in 1s ease-out; | |
| } | |
| @keyframes fade-in { | |
| from { opacity: 0; transform: translateY(20px); } | |
| to { opacity: 1; transform: translateY(0); } | |
| } | |
| /* Controls */ | |
| .controls-bar { | |
| margin-top: auto; | |
| margin-bottom: 3rem; | |
| display: flex; | |
| gap: 2.5rem; | |
| align-items: center; | |
| padding: 1.25rem 2.5rem; | |
| border-radius: 100px; | |
| background: rgba(255, 255, 255, 0.05); | |
| border: 1px solid rgba(255, 255, 255, 0.12); | |
| backdrop-filter: blur(25px); | |
| box-shadow: 0 25px 70px rgba(0,0,0,0.6); | |
| z-index: 100; | |
| animation: slide-up 0.8s cubic-bezier(0.16, 1, 0.3, 1); | |
| } | |
| @keyframes slide-up { | |
| from { transform: translateY(100px); opacity: 0; } | |
| to { transform: translateY(0); opacity: 1; } | |
| } | |
| .control-btn { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| cursor: pointer; | |
| transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); | |
| border: none; | |
| outline: none; | |
| } | |
| .control-btn:hover { | |
| transform: scale(1.1); | |
| } | |
| .btn-mute { | |
| width: 64px; | |
| height: 64px; | |
| border-radius: 50%; | |
| background: rgba(255, 255, 255, 0.1); | |
| color: white; | |
| } | |
| .btn-mute.muted { | |
| background: #F5CE4D; | |
| color: #020617; | |
| box-shadow: 0 0 30px rgba(245, 206, 77, 0.4); | |
| } | |
| .btn-end { | |
| width: 84px; | |
| height: 84px; | |
| border-radius: 50%; | |
| background: #ef4444; | |
| color: white; | |
| box-shadow: 0 0 50px rgba(239, 68, 68, 0.4); | |
| } | |
| .btn-end:hover { | |
| background: #f87171; | |
| box-shadow: 0 0 60px rgba(239, 68, 68, 0.6); | |
| transform: scale(1.1) rotate(90deg); | |
| } | |
| .encryption-text { | |
| position: absolute; | |
| bottom: 2rem; | |
| color: rgba(255, 255, 255, 0.4); | |
| font-size: 0.7rem; | |
| letter-spacing: 0.25em; | |
| display: flex; | |
| align-items: center; | |
| gap: 0.75rem; | |
| text-transform: uppercase; | |
| font-weight: 500; | |
| } | |
| .sparkle-icon { | |
| color: #F5CE4D; | |
| animation: pulse 2s infinite; | |
| } | |
| @keyframes pulse { | |
| 0%, 100% { opacity: 0.5; transform: scale(1); } | |
| 50% { opacity: 1; transform: scale(1.2); } | |
| } | |
| /* Audio Waveform Simulation */ | |
| .waveform-container { | |
| height: 40px; | |
| display: flex; | |
| align-items: center; | |
| gap: 4px; | |
| margin-bottom: 2rem; | |
| } | |
| .wave-bar { | |
| width: 4px; | |
| height: 8px; | |
| background: #F5CE4D; | |
| border-radius: 2px; | |
| transition: height 0.1s ease; | |
| } | |
| .wave-bar.speaking { | |
| animation: wave-bounce 0.5s infinite alternate ease-in-out; | |
| } | |
| @keyframes wave-bounce { | |
| from { height: 8px; } | |
| to { height: 40px; } | |
| } | |