@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&display=swap";body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--glass-bg: rgba(10, 10, 12, .6);--glass-border: rgba(255, 255, 255, .08);--glass-highlight: rgba(255, 255, 255, .15);--accent-primary: #00f0ff;--accent-secondary: #7000ff;--text-primary: #ffffff;--text-secondary: rgba(255, 255, 255, .6);--danger: #ff2a6d;--success: #05ffa1;--font-ui: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", monospace;--ease-out-expo: cubic-bezier(.19, 1, .22, 1)}body{margin:0;padding:0;background-color:#030303;color:var(--text-primary);font-family:var(--font-ui);height:100vh;height:100dvh;width:100vw;overflow:hidden;position:fixed;touch-action:none}.jarvis-bg-animation{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:-1;background:radial-gradient(circle at 50% 50%,#0a0a0a,#000);overflow:hidden}.matrix-title{position:absolute;top:20px;left:50%;transform:translate(-50%);z-index:100;display:flex;align-items:baseline;gap:6px}.matrix-title .matrix-text{font-family:JetBrains Mono,monospace;font-size:2rem;font-weight:500;letter-spacing:2px;color:#0f0;text-shadow:0 0 2px #00ff00,0 0 8px rgba(0,255,0,.5);display:flex}.matrix-title .glitch-letter{display:inline-block;position:relative;animation:letterGlitch 2s infinite}.matrix-title .glitch-letter:nth-child(odd){animation-duration:1.8s}.matrix-title .glitch-letter:nth-child(2n){animation-duration:2.2s}.matrix-title .matrix-subtitle{font-family:JetBrains Mono,monospace;font-size:1.2rem;font-weight:400;color:#0d0;text-shadow:0 0 2px #00ff00;opacity:.8}@keyframes letterGlitch{0%,85%,to{transform:translate(0) skew(0);opacity:1;color:#0f0}86%{transform:translate(-2px,1px) skew(-2deg);color:red;opacity:.9}88%{transform:translate(2px,-1px) skew(2deg);color:#00f;opacity:.8}90%{transform:translate(-1px,2px) skew(-1deg);color:#0f0}92%{transform:translate(1px,-2px) skew(1deg);color:#f0f;opacity:.9}94%{transform:translate(0) skew(0);color:#0f0;opacity:1}}.jarvis-interface{display:flex;flex-direction:column;height:100vh;height:100dvh;position:relative;overflow:hidden}.jarvis-interface .main-viewport{flex-grow:1;position:relative;z-index:1}.hud-panel-left{position:absolute;top:0;left:0;height:100%;width:400px;background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-right:1px solid var(--glass-border);display:flex;flex-direction:column;z-index:300;transition:transform .4s var(--ease-out-expo);box-shadow:10px 0 40px #00000080;transform:translate(0)}.hud-panel-left.collapsed{transform:translate(-100%)}@media(max-width:768px){.hud-panel-left{width:100%}}.hud-panel-right{position:absolute;top:0;right:0;height:100%;width:400px;background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-left:1px solid var(--glass-border);display:flex;flex-direction:column;z-index:300;transition:transform .4s var(--ease-out-expo);box-shadow:-10px 0 40px #00000080;transform:translate(0)}.hud-panel-right.collapsed{transform:translate(100%);border-left:none;width:400px}@media(max-width:768px){.hud-panel-right{width:100%}}.hud-bottom-deck{position:absolute;bottom:0;left:0;right:0;width:auto;box-sizing:border-box;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:12px;padding-bottom:24px;z-index:200;pointer-events:none}.hud-bottom-deck>*{pointer-events:all}@media(max-width:768px){.hud-bottom-deck{gap:8px;padding-bottom:16px}}.camera-preview{width:160px;height:120px;border-radius:12px;overflow:hidden;border:2px solid rgba(255,255,255,.2);box-shadow:0 4px 20px #0006;background:#000}.camera-preview video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.camera-preview.hidden{display:none!important}@media(max-width:768px){.camera-preview{width:120px;height:90px;border-radius:8px}}.hidden{display:none!important}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#fff3}.api-key-screen{position:fixed;top:0;left:0;width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;background-color:#030303;z-index:9999}.api-key-container{position:relative;background:#0a0f14b3;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(0,255,0,.2);box-shadow:0 0 40px #00ff001a;padding:3rem 4rem;border-radius:16px;text-align:center;max-width:480px;width:90%;animation:fadeIn .5s ease-out}.api-key-container .matrix-title{position:relative;top:0;left:0;transform:none;justify-content:center;margin-bottom:2rem}.api-key-container p{font-family:var(--font-mono);color:var(--text-secondary);margin-bottom:1.5rem;font-size:.9rem;letter-spacing:.5px}.api-key-container form{display:flex;flex-direction:column;gap:1.5rem;align-items:center}.api-key-container .api-input{width:100%;background:#0006;border:1px solid rgba(255,255,255,.1);color:var(--success);font-family:var(--font-mono);font-size:1rem;padding:1rem;border-radius:8px;outline:none;text-align:center;transition:all .3s ease}.api-key-container .api-input:focus{border-color:var(--success);box-shadow:0 0 15px #05ffa133;transform:scale(1.02)}.api-key-container .api-input::placeholder{color:#fff3}.api-key-container button.action-button{background:#00ff001a;color:var(--success);border:1px solid var(--success);padding:.8rem 2rem;font-family:var(--font-mono);font-weight:600;font-size:1rem;border-radius:8px;cursor:pointer;text-transform:uppercase;letter-spacing:1px;transition:all .2s ease}.api-key-container button.action-button:hover{background:var(--success);color:#000;box-shadow:0 0 20px #05ffa166;transform:translateY(-2px)}.api-key-container .get-key-link{display:block;margin-top:1.5rem;font-family:var(--font-ui);color:#fff6;text-decoration:none;font-size:.8rem;transition:color .2s}.api-key-container .get-key-link:hover{color:var(--accent-primary);text-decoration:underline}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.logger{color:var(--gray-300);width:100%;max-width:100%;display:block}.logger .logger-list{padding:0 0 0 25px;overflow-x:hidden;width:calc(100% - 45px)}.logger .user h4{color:var(--Green-500)}.logger .model h4{color:var(--Blue-500)}.logger .rich-log{display:flex;justify-content:center;gap:4px}.logger .rich-log pre{overflow-x:auto}.logger .rich-log{display:block}.logger .rich-log h4{font-size:14px;text-transform:uppercase;padding:8px 0;margin:0}.logger .rich-log h5{margin:0;padding-bottom:8px;border-bottom:1px solid var(--Neutral-20)}.logger .rich-log .part{background:#ffffff0d;border:1px solid var(--Neutral-20);padding:14px;margin-bottom:4px;color:var(--text);border-radius:8px}.logger .plain-log>*{padding-right:4px}.logger .inline-code:not(:last-child){font-style:italic}.logger .inline-code:not(:last-child):after{content:", "}.logger li{display:block;padding:8px 0;color:var(--Neutral-50, #707577);font-family:Space Mono;font-size:14px;font-style:normal;font-weight:400;line-height:normal}.logger li .timestamp{width:70px;flex-grow:0;flex-shrink:0;color:var(--Neutral-50)}.logger li .source{flex-shrink:0;font-weight:700}.logger li.source-server,.logger li.receive{color:var(--Blue-500)}.logger li.source-client,.logger li.send:not(.source-server){color:var(--Green-500)}.logger li .count{background-color:var(--Neutral-5);font-size:x-small;padding:.3em .5em;line-height:1em;vertical-align:middle;border-radius:8px;color:var(--Blue-500)}.logger li .message{flex-grow:1;color:var(--Neutral-50)}.visualizer-container{display:flex;align-items:center;justify-content:center;flex-grow:1;height:100%;margin:0 1rem;position:relative;min-width:100px}.wave-visualizer{display:flex;align-items:center;justify-content:center;gap:4px;height:100%;width:100%}.wave-visualizer .wave-bar{width:4px;background:var(--accent-blue);border-radius:4px;box-shadow:0 0 8px var(--accent-blue);transition:height .05s ease;min-height:4px}.waiting-dots{display:flex;gap:4px;align-items:center}.waiting-dots .dot{width:6px;height:6px;background-color:var(--gray-500);border-radius:50%;animation:pulse-dot 1.4s infinite ease-in-out both}.waiting-dots .dot:nth-child(1){animation-delay:-.32s}.waiting-dots .dot:nth-child(2){animation-delay:-.16s}@keyframes pulse-dot{0%,80%,to{transform:scale(0);opacity:.4}40%{transform:scale(1);opacity:1;background-color:var(--accent-blue);box-shadow:0 0 5px var(--accent-blue)}}.side-panel{width:100%;height:100%;display:flex;flex-direction:column;font-family:var(--font-mono);font-size:13px;color:var(--text-secondary);position:relative}.side-panel .panel-header{flex-shrink:0;height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid var(--glass-border);position:relative;background:#0006}.side-panel .panel-header:after{content:"";position:absolute;bottom:-1px;left:0;width:100%;height:1px;background:linear-gradient(90deg,transparent,var(--accent-primary),transparent);opacity:.5}.side-panel .panel-header .panel-title{font-family:var(--font-mono);font-weight:500;font-size:16px;letter-spacing:2px;text-transform:uppercase;color:var(--accent-primary);text-shadow:0 0 10px rgba(0,240,255,.3);display:flex;align-items:center;gap:10px}.side-panel .panel-header .panel-title:before{content:">";color:var(--accent-secondary)}.side-panel .panel-header .close-btn{background:transparent;border:1px solid transparent;color:var(--text-secondary);cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s ease}.side-panel .panel-header .close-btn .material-symbols-outlined{font-size:20px}.side-panel .panel-header .close-btn:hover{color:#ff2a6d;background:#ff2a6d1a;border-color:#ff2a6d4d;box-shadow:0 0 15px #ff2a6d33;transform:rotate(90deg)}.side-panel .indicators{padding:16px 24px}.side-panel .indicators .jarvis-indicator{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#0006;border:1px solid var(--glass-border);border-radius:4px}.side-panel .indicators .jarvis-indicator .status-text{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:1px;color:var(--text-secondary)}.side-panel .indicators .jarvis-indicator .status-text.active{color:#0f0;text-shadow:0 0 8px rgba(0,255,0,.5)}.side-panel .indicators .jarvis-indicator .visualizer-container{display:flex;align-items:center;gap:2px;height:16px}.side-panel .indicators .jarvis-indicator .visualizer-container .bar{width:3px;background:#0f0;min-height:4px}.side-panel .indicators .jarvis-indicator .visualizer-container .dot{width:4px;height:4px;background:var(--text-secondary);opacity:.3;animation:pulse 1s infinite alternate}.side-panel .indicators .jarvis-indicator .visualizer-container .dot:nth-child(2){animation-delay:.2s}.side-panel .indicators .jarvis-indicator .visualizer-container .dot:nth-child(3){animation-delay:.4s}.side-panel .side-panel-container{flex-grow:1;overflow-y:auto;padding:0 16px 20px;scrollbar-gutter:stable}@media(max-width:768px){.side-panel .side-panel-container{padding-bottom:120px}}.side-panel .input-container{padding:16px 20px;border-top:1px solid var(--glass-border);background:#0009;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.side-panel .input-container .input-content{position:relative;display:flex;align-items:flex-end;background:#0a0a0c99;border:1px solid var(--glass-border);border-radius:4px;padding:8px 12px;transition:all .2s ease}.side-panel .input-container .input-content:focus-within{border-color:var(--accent-primary);box-shadow:0 0 15px #00f0ff26}.side-panel .input-container .input-content .input-area{flex-grow:1;background:transparent;border:none;color:var(--text-primary);font-family:var(--font-mono);font-size:13px;padding:8px 4px;resize:none;outline:none;max-height:100px;min-height:24px;line-height:1.5}.side-panel .input-container .input-content .input-area::placeholder{color:transparent}.side-panel .input-container .input-content .input-content-placeholder{position:absolute;left:16px;top:16px;pointer-events:none;color:var(--text-secondary);font-size:13px;font-family:var(--font-mono);opacity:.5;text-transform:uppercase}.side-panel .input-container .input-content .input-content-placeholder.hidden{display:none}.side-panel .input-container .input-content .send-button{background:none;border:none;color:var(--accent-primary);cursor:pointer;padding:4px;margin-bottom:4px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s}.side-panel .input-container .input-content .send-button:hover{color:#fff;text-shadow:0 0 10px var(--accent-primary)}.side-panel .input-container .input-content .send-button .material-symbols-outlined{font-size:20px}@keyframes pulse{0%{opacity:.3}to{opacity:1}}.side-panel-responses,.side-panel-requests,.top{display:none}.settings-panel{display:flex;flex-direction:column;width:100%;height:100%;font-family:var(--font-mono);color:var(--text-primary);background:#050508f2}.settings-panel .settings-header{flex-shrink:0;height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid var(--glass-border);background:#0009;position:relative}.settings-panel .settings-header:after{content:"";position:absolute;bottom:-1px;left:0;width:100%;height:1px;background:linear-gradient(90deg,transparent,var(--accent-primary),transparent);opacity:.8;box-shadow:0 0 10px var(--accent-primary)}.settings-panel .settings-header h3{margin:0;font-family:var(--font-mono);font-size:16px;font-weight:500;text-transform:uppercase;letter-spacing:2px;color:var(--accent-primary);text-shadow:0 0 10px rgba(0,240,255,.4);display:flex;align-items:center;gap:10px}.settings-panel .settings-header h3:before{content:"//";color:var(--accent-secondary);font-weight:700}.settings-panel .settings-header .close-btn{background:transparent;border:1px solid transparent;color:var(--text-secondary);cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.settings-panel .settings-header .close-btn .material-symbols-outlined{font-size:20px}.settings-panel .settings-header .close-btn:hover{color:var(--danger);background:#ff2a6d26;border-color:#ff2a6d66;box-shadow:0 0 10px #ff2a6d33;transform:rotate(90deg)}.settings-panel .settings-content{flex-grow:1;overflow-y:auto;padding:24px 24px 120px;scrollbar-gutter:stable}.settings-panel .settings-content.disabled{opacity:.5;pointer-events:none;filter:grayscale(1)}.settings-panel .settings-content .connected-indicator{margin-bottom:24px;padding:12px 16px;background:#ff2a6d1a;border:1px solid var(--danger);border-radius:4px;color:var(--danger);font-size:11px;display:flex;align-items:center;gap:8px;font-family:var(--font-mono);letter-spacing:.5px}.settings-panel .settings-content .connected-indicator:before{content:"LOCKED";font-weight:700}.settings-panel .settings-content .connected-indicator p{margin:0}.settings-panel .settings-content .section{margin-bottom:32px}.settings-panel .settings-content .section .section-title{display:block;margin-bottom:16px;font-size:11px;text-transform:uppercase;letter-spacing:2px;color:var(--accent-secondary);font-weight:700;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:8px}.settings-panel .settings-content .section .select-group{margin-bottom:16px}.settings-panel .settings-content .section .select-group label{display:block;margin-bottom:8px;font-size:11px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px}.settings-panel .settings-content .mode-selectors{display:flex;flex-direction:column;gap:16px}.settings-panel .settings-content .mode-selectors label{display:block;margin-bottom:8px;font-size:11px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px}.settings-panel .settings-content .mode-selectors select{width:100%;background:#0009;border:1px solid var(--glass-border);border-radius:4px;padding:12px;color:var(--text-primary);font-family:var(--font-mono);font-size:13px;cursor:pointer;transition:all .2s}.settings-panel .settings-content .mode-selectors select:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 15px #00f0ff26}.settings-panel .settings-content .mode-selectors select option{background:#050508;color:#fff;padding:8px}.settings-panel .settings-content .media-devices{display:flex;flex-direction:column;gap:20px}.settings-panel .settings-content .media-devices .device-selector label{display:block;margin-bottom:8px;font-size:11px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px}.settings-panel .settings-content .media-devices .device-selector .device-select{width:100%;background:#0009;border:1px solid var(--glass-border);border-radius:4px;padding:12px;color:var(--text-primary);font-family:var(--font-mono);font-size:13px;cursor:pointer;transition:all .2s}.settings-panel .settings-content .media-devices .device-selector .device-select:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 15px #00f0ff26}.settings-panel .settings-content .media-devices .device-selector .device-select:disabled{opacity:.5;cursor:not-allowed}.settings-panel .settings-content .media-devices .device-selector .device-select option{background:#050508;color:#fff}.settings-panel .settings-content .media-devices .device-selector .no-cam-warning{margin-top:8px;font-size:11px;color:var(--danger);background:#ff2a6d1a;padding:8px;border-radius:4px;border:1px solid rgba(255,42,109,.3);display:flex;align-items:center;gap:8px}.settings-panel .settings-content .media-devices .reset-mic-btn{margin-top:12px;display:flex;align-items:center;gap:8px;padding:12px 16px;background:#00f0ff0d;border:1px solid var(--accent-primary);border-radius:4px;color:var(--accent-primary);font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:1px;cursor:pointer;transition:all .2s ease;width:100%;justify-content:center}.settings-panel .settings-content .media-devices .reset-mic-btn:hover{background:#00f0ff26;box-shadow:0 0 15px #00f0ff33;transform:translateY(-1px)}.settings-panel .settings-content .media-devices .reset-mic-btn .material-symbols-outlined{font-size:18px}.settings-panel .settings-content textarea.system{width:90%;min-height:200px;background:#0009;border:1px solid var(--glass-border);border-radius:4px;padding:16px;color:var(--text-primary);font-family:var(--font-mono);font-size:13px;resize:vertical;line-height:1.6}.settings-panel .settings-content textarea.system:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 15px #00f0ff1a}.settings-panel .settings-content textarea.system::placeholder{color:var(--text-secondary);opacity:.5}.settings-panel .settings-content .function-declarations .fd-row{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.05)}.settings-panel .settings-content .function-declarations .fd-row .fd-row-name{color:var(--accent-primary);font-family:var(--font-mono);font-weight:600;font-size:13px;display:block;margin-bottom:4px}.settings-panel .settings-content .function-declarations .fd-row .fd-row-args{display:block;color:var(--text-secondary);font-size:11px;margin-bottom:8px;font-family:var(--font-mono)}.settings-panel .settings-content .function-declarations .fd-row .fd-row-args span{display:inline-block;background:#ffffff1a;padding:2px 6px;border-radius:4px;margin-right:4px}.settings-panel .settings-content .function-declarations .fd-row .fd-row-description{background:transparent;border:none;border-bottom:1px solid var(--glass-border);color:var(--text-primary);padding:8px 0;width:100%;font-family:var(--font-ui);font-size:13px;transition:all .2s}.settings-panel .settings-content .function-declarations .fd-row .fd-row-description:focus{outline:none;border-color:var(--accent-primary);background:#0000004d}.action-button{display:flex;align-items:center;justify-content:center;background:var(--Neutral-20);color:var(--Neutral-60);font-size:1.25rem;line-height:1.75rem;text-transform:lowercase;text-decoration:none;animation:opacity-pulse 3s ease-in infinite;transition:all .2s ease-in-out;width:48px;height:48px;border-radius:18px;border:1px solid rgba(0,0,0,0);-webkit-user-select:none;user-select:none;cursor:pointer}.action-button:focus{border:2px solid var(--Neutral-20);outline:2px solid var(--Neutral-80)}.action-button.outlined{background:var(--Neutral-2);border:1px solid var(--Neutral-20)}.action-button .no-action{pointer-events:none}.action-button:hover{background:#0000;border:1px solid var(--Neutral-20)}.action-button.connected{background:var(--Blue-800);color:var(--Blue-500)}.action-button.connected:hover{border:1px solid var(--Blue-500)}@property --volume{syntax: "length"; inherit: false; initial-value: 0px;}.disabled .mic-button:before,.mic-button.disabled:before{background:#0000}.mic-button{position:relative;background-color:var(--accent-red);z-index:1;color:#000;transition:all .2s ease-in}.mic-button:focus{border:2px solid var(--Neutral-20);outline:2px solid var(--Red-500)}.mic-button:hover{background-color:var(--Red-400)}.mic-button:before{position:absolute;z-index:-1;top:calc(var(--volume) * -1);left:calc(var(--volume) * -1);display:block;content:"";opacity:.35;background-color:var(--Red-500);width:calc(100% + var(--volume) * 2);height:calc(100% + var(--volume) * 2);border-radius:24px;transition:all .02s ease-in-out}.mic-warning{position:absolute;top:-50px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:8px 16px;background:#ff6464e6;color:#fff;border-radius:8px;font-size:14px;font-weight:500;white-space:nowrap;box-shadow:0 4px 12px #0000004d;animation:fadeIn .3s ease-out;z-index:100}.mic-warning .material-symbols-outlined{font-size:18px}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.connect-toggle:focus{border:2px solid var(--Neutral-20);outline:2px solid var(--Neutral-80)}.connect-toggle:not(.connected){background-color:var(--Blue-500);color:var(--Neutral-5)}.control-tray{background:#141417b3;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);border-radius:24px;padding:12px 24px;display:flex;align-items:center;justify-content:center;gap:16px;box-shadow:0 10px 40px #0000004d;transition:all .3s cubic-bezier(.19,1,.22,1);margin-bottom:24px}.control-tray:hover{background:#19191ccc;border-color:#ffffff26;box-shadow:0 15px 50px #0006;transform:translateY(-2px)}.control-tray canvas{display:none}.control-tray .action-button{width:48px;height:48px;border-radius:50%;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:var(--text-primary, #fff);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.control-tray .action-button:hover:not(.disabled){background:#ffffff1a;transform:scale(1.05)}.control-tray .action-button:active:not(.disabled){transform:scale(.95)}.control-tray .action-button.active{background:var(--accent-primary, #00f0ff);color:#000;box-shadow:0 0 20px #00f0ff66;border-color:transparent}.control-tray .action-button.disabled{opacity:.5;cursor:not-allowed}.control-tray .action-button span{font-size:24px}.control-tray .connect-toggle{width:72px;height:72px;background:var(--accent-primary);color:#000;box-shadow:0 0 30px #00f3ff99;border:4px solid rgba(255,255,255,.2);margin:0 8px;pointer-events:auto!important;flex-shrink:0}.control-tray .connect-toggle:hover{transform:scale(1.05);background:#fff;box-shadow:0 0 50px #00f3ffe6}.control-tray .connect-toggle:not(.connected){background-color:red;color:#fff;box-shadow:0 0 20px #ff000080}.control-tray .connect-toggle.connected{background:#ff2a6d;box-shadow:0 0 30px #ff2a6d99}.control-tray .connect-toggle .material-symbols-outlined{font-size:36px}@media(max-width:768px){.control-tray{padding:8px 16px;gap:8px;border-radius:20px;justify-content:center;overflow-x:auto;scrollbar-width:none}.control-tray::-webkit-scrollbar{display:none}.control-tray .screen-share-button,.control-tray .link-button{display:none!important}.control-tray .action-button{width:44px;height:44px;flex-shrink:0}.control-tray .action-button span{font-size:22px}.control-tray .connect-toggle{width:56px;height:56px;margin:0 8px;flex-shrink:0}.control-tray .connect-toggle .material-symbols-outlined{font-size:28px}}.actions-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;width:100%}.actions-nav.disabled>*:not(.connect-toggle){opacity:.5;pointer-events:none}.action-group{display:flex;align-items:center;gap:12px}.action-group.left-actions{justify-content:flex-end}.action-group.right-actions{justify-content:flex-start}.play-container{display:flex;justify-content:center;align-items:center}@media(max-width:768px){.actions-nav{grid-template-columns:auto auto auto;gap:8px;width:auto}.action-group{gap:8px;flex-wrap:nowrap}}@keyframes opacity-pulse{0%{opacity:.9}50%{opacity:1}to{opacity:.9}}.central-visualizer{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;display:flex;align-items:center;justify-content:center}.central-visualizer .jarvis-circle-container{position:relative;width:60vmin;height:60vmin;max-width:300px;max-height:300px;display:flex;align-items:center;justify-content:center}.central-visualizer .jarvis-circle-container.user-speaking .eye{border-color:#00f0ff;box-shadow:0 0 20px #00f0ff,inset 0 0 10px #005055;background:#001414cc}.central-visualizer .jarvis-circle-container.user-speaking .pupil{background:#00f0ff;box-shadow:0 0 15px #fff;width:25px;height:35px}.central-visualizer .jarvis-circle-container.user-speaking .core-circle{background:#fff!important;box-shadow:0 0 50px #fff,inset 0 0 20px #00f0ff}.central-visualizer .jarvis-circle-container.user-speaking .cat-mouth{filter:drop-shadow(0 0 5px #00f0ff)}.central-visualizer .jarvis-circle-container.user-speaking .mouth-curve{border-color:#00f0ff}.central-visualizer .jarvis-circle-container.user-speaking .ring-dynamic,.central-visualizer .jarvis-circle-container.user-speaking .ring-dynamic-outer{border-color:#00f0ff;opacity:.8!important}.central-visualizer .jarvis-circle-container.user-speaking .ring-static{border-color:#00f0ff66;animation-duration:5s!important}.central-visualizer .jarvis-circle-container.ai-speaking .eye{height:55px;box-shadow:0 0 30px red,inset 0 0 15px red}.central-visualizer .jarvis-circle-container.ai-speaking .pupil{box-shadow:0 0 25px #faa;width:15px}.central-visualizer .jarvis-circle-container.ai-speaking .core-circle{box-shadow:0 0 60px red,inset 0 0 30px #fff}.central-visualizer .jarvis-circle-container.ai-speaking .cat-mouth{opacity:1}.central-visualizer .jarvis-circle-container.ai-speaking .mouth-curve{border-bottom-width:8px;box-shadow:0 0 20px red}.central-visualizer .jarvis-circle-container .core-circle{width:20%;height:20%;background:red;border-radius:50%;box-shadow:0 0 50px red,inset 0 0 30px #500;z-index:20;transition:all .1s ease-out;animation:unstable-pulse 3s infinite}.central-visualizer .jarvis-circle-container .cat-face-container{position:absolute;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;width:100%;height:100%}.central-visualizer .jarvis-circle-container .cat-eyes-row{display:flex;gap:40px;justify-content:center;align-items:center}.central-visualizer .jarvis-circle-container .cat-mouth{margin-top:5px}.central-visualizer .jarvis-circle-container .cat-mouth.wave-mouth{width:120px;height:30px}.central-visualizer .jarvis-circle-container .cat-mouth.wave-mouth .wave-svg{width:100%;height:100%}.central-visualizer .jarvis-circle-container .cat-mouth.wave-mouth .wave-line{stroke:red;filter:drop-shadow(0 0 8px rgba(255,0,0,.6));transition:d .05s ease-out}.central-visualizer .jarvis-circle-container.ai-speaking .cat-mouth.wave-mouth .wave-line{stroke:#f33;filter:drop-shadow(0 0 15px rgba(255,0,0,.9));stroke-width:5}.central-visualizer .jarvis-circle-container.user-speaking .cat-mouth.wave-mouth .wave-line{stroke:#00f0ff;filter:drop-shadow(0 0 12px rgba(0,240,255,.7))}.central-visualizer .jarvis-circle-container .eye{width:90px;height:50px;background:#0a0000e6;border:3px solid #ff0000;border-radius:0 100%;transform:rotate(15deg);box-shadow:0 0 20px red,inset 0 0 15px #500;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center;transition:all .2s ease-out}.central-visualizer .jarvis-circle-container .eye.right{transform:rotate(-15deg) scaleX(-1);border-radius:0 100%}.central-visualizer .jarvis-circle-container .pupil{width:6px;height:40px;background:red;border-radius:50%;box-shadow:0 0 10px red;transition:all .1s ease-out;transform:rotate(-15deg)}.central-visualizer .jarvis-circle-container .eye.right .pupil{transform:rotate(-15deg)}.central-visualizer .jarvis-circle-container .eye.left{border-radius:0 70%;transform:rotate(10deg)}.central-visualizer .jarvis-circle-container .eye.left .pupil{transform:rotate(-10deg)}.central-visualizer .jarvis-circle-container .eye.right{border-radius:70% 0;transform:rotate(-10deg)}.central-visualizer .jarvis-circle-container .eye.right .pupil{transform:rotate(10deg)}.central-visualizer .jarvis-circle-container .ring-static-1{position:absolute;width:50%;height:50%;border:1px dashed rgba(255,0,0,.3);border-radius:50%;animation:spin 20s linear infinite}.central-visualizer .jarvis-circle-container .ring-static-2{position:absolute;width:65%;height:65%;border:1px dotted rgba(255,0,0,.2);border-radius:50%;animation:spin-reverse 25s linear infinite}.central-visualizer .jarvis-circle-container .ring-static-3{position:absolute;width:80%;height:80%;border:1px solid rgba(255,0,0,.1);border-radius:50%;animation:spin 35s linear infinite}.central-visualizer .jarvis-circle-container .ripple-ring{position:absolute;border-radius:50%;border:2px solid #ff0000;opacity:0}.central-visualizer .jarvis-circle-container .ripple-ring.r1{width:30%;height:30%;animation:ripple-out 2s infinite}.central-visualizer .jarvis-circle-container .ripple-ring.r2{width:30%;height:30%;animation:ripple-out 2s infinite .5s}.central-visualizer .jarvis-circle-container .ripple-ring.r3{width:30%;height:30%;animation:ripple-out 2s infinite 1s}.central-visualizer .jarvis-circle-container .ring-dynamic{position:absolute;width:40%;height:40%;border:4px solid #ff2a2a;border-radius:50%;opacity:.2;box-shadow:0 0 20px red;transition:all .1s ease-out}.central-visualizer .jarvis-circle-container .ring-dynamic-outer{position:absolute;width:73%;height:73%;border:1px solid #800000;border-radius:50%;opacity:.1;transition:all .1s ease-out}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin-reverse{0%{transform:rotate(360deg)}to{transform:rotate(0)}}@keyframes unstable-pulse{0%{transform:scale(1);filter:brightness(1)}5%{transform:scale(1.02);filter:brightness(1.2)}10%{transform:scale(.98)}to{transform:scale(1);filter:brightness(1)}}@keyframes ripple-out{0%{transform:scale(1);opacity:.8;border-width:4px}to{transform:scale(3);opacity:0;border-width:0px}}
