:root { --bg-color: #0b0f14; --text-primary: #ffffff; --btn-hold: #2d3135; --btn-end: #ea4335; } /* RESET EVERYTHING */ body, html, .gradio-container { background-color: var(--bg-color) !important; margin: 0 !important; padding: 0 !important; width: 100vw !important; height: 100vh !important; overflow: hidden !important; } /* Hide all Gradio native elements (footer, noise, logos) */ footer, .footer, .svelte-1t38q2d, .icon-button, .wrap.svelte-1t38q2d { display: none !important; } /* Force our container to be a fixed overlay */ .gemini-live-container { position: fixed !important; top: 0; left: 0; width: 100vw; height: 100vh; background: var(--bg-color); z-index: 9999; display: flex; flex-direction: column; align-items: center; justify-content: space-between; } /* Clean up internal Gradio wrappers */ .gemini-live-container>div { background: transparent !important; border: none !important; box-shadow: none !important; width: 100%; } /* --- HEADER --- */ .header-bar { position: absolute; top: 40px; left: 0; width: 100%; display: flex; justify-content: center; z-index: 50; pointer-events: none; } .live-indicator { background: rgba(45, 49, 53, 0.5); padding: 8px 16px; border-radius: 20px; display: flex; align-items: center; gap: 8px; color: #fff; font-size: 14px; font-weight: 500; backdrop-filter: blur(10px); } .live-icon { width: 16px; height: 16px; fill: #fff; } /* --- TRANSCRIPT --- */ .transcript-area { position: absolute; top: 40%; left: 50%; transform: translate(-50%, -50%); width: 90%; max-width: 600px; text-align: center; z-index: 40; pointer-events: none; } .live-transcript { font-size: 28px; color: #fff; line-height: 1.4; font-family: 'Google Sans', sans-serif; text-shadow: 0 4px 12px rgba(0, 0, 0, 0.5); } .transcript-history { font-size: 16px; color: rgba(255, 255, 255, 0.5); margin-bottom: 20px; } /* --- BOTTOM VISUALIZER --- */ .visualizer-area { position: absolute; bottom: 0; left: 0; width: 100%; height: 350px; z-index: 10; pointer-events: none; overflow: hidden; background: linear-gradient(to top, #1e252f 0%, transparent 100%); } .wave-glow { position: absolute; bottom: -80px; left: 50%; transform: translateX(-50%); width: 150%; height: 300px; background: radial-gradient(50% 50% at 50% 50%, rgba(66, 133, 244, 0.5) 0%, rgba(0, 0, 0, 0) 100%); filter: blur(40px); animation: pulse-wave 4s ease-in-out infinite alternate; } @keyframes pulse-wave { 0% { opacity: 0.5; transform: translateX(-50%) scale(1); } 100% { opacity: 0.8; transform: translateX(-50%) scale(1.1); } } /* --- CONTROLS --- */ .controls-bar { position: absolute; bottom: 50px; left: 0; width: 100%; display: flex; justify-content: center; gap: 60px; z-index: 60; } .control-btn { display: flex; flex-direction: column; align-items: center; gap: 10px; cursor: pointer; position: relative; width: 80px; } .btn-circle { width: 72px; height: 72px; border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: transform 0.1s; } .btn-circle:active { transform: scale(0.95); } .btn-hold .btn-circle { background-color: var(--btn-hold); } .btn-end .btn-circle { background-color: var(--btn-end); } .btn-label { font-size: 14px; color: rgba(255, 255, 255, 0.7); } .icon-hold { width: 24px; height: 24px; background: #fff; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24px' viewBox='0 -960 960 960' width='24px'%3E%3Cpath d='M560-200v-560h160v560H560Zm-320 0v-560h160v560H240Z'/%3E%3C/svg%3E") no-repeat center; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24px' viewBox='0 -960 960 960' width='24px'%3E%3Cpath d='M560-200v-560h160v560H560Zm-320 0v-560h160v560H240Z'/%3E%3C/svg%3E") no-repeat center; } .icon-end { width: 24px; height: 24px; background: #fff; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24px' viewBox='0 -960 960 960' width='24px'%3E%3Cpath d='m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z'/%3E%3C/svg%3E") no-repeat center; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24px' viewBox='0 -960 960 960' width='24px'%3E%3Cpath d='m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z'/%3E%3C/svg%3E") no-repeat center; } /* Audio Overlay on Hold Button */ .audio-interface { position: absolute !important; top: 0; left: 0; width: 100% !important; height: 100% !important; opacity: 0 !important; cursor: pointer; z-index: 100; }