:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#edf2ff;background:#080b14;color-scheme:dark}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% -20%,#263a68,#080b14 65%)}button,input{font:inherit}button{border:0;border-radius:12px;padding:12px 15px;background:#7c9cff;color:#fff;font-weight:700}button.secondary{background:#283451}.shell{width:min(100%,1100px);min-height:100vh;margin:auto;padding:max(14px,env(safe-area-inset-top)) 16px max(14px,env(safe-area-inset-bottom));display:grid;grid-template-columns:250px 1fr;grid-template-rows:auto 1fr;gap:14px}header{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;padding:10px 3px;font-size:22px;letter-spacing:.12em}.offline{color:#f2ca66;font-size:13px;letter-spacing:0}.online{color:#65dfaa}.error{color:#ff9eaa}.running{color:#f2ca66}.panel,aside,.chat{background:#12192ddd;border:1px solid #2a3859;border-radius:20px;box-shadow:0 15px 45px #0004}aside{padding:12px}aside button{width:100%;margin-bottom:12px}nav{display:flex;flex-direction:column;gap:6px}.conversation{width:100%;text-align:left;background:transparent;border:1px solid transparent;padding:10px}.conversation.active{background:#293963;border-color:#506aa2}.chat{display:flex;flex-direction:column;min-height:70vh}.chat-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #2a3859;padding:14px 16px}.chat-head h1{font-size:18px;margin:0}.chat-head span{font-size:13px}.messages{flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:10px}.message{max-width:85%;padding:11px 14px;border-radius:16px;white-space:pre-wrap;word-break:break-word;line-height:1.45}.user{align-self:flex-end;background:#5f7fe1}.assistant{align-self:flex-start;background:#253250}.system{align-self:center;color:#f2ca66;font-size:13px}.empty{margin:auto;color:#aebde1}.notice{padding:10px 14px;color:#f2ca66}.confirmation{border:1px solid #d0a84f;background:#332b18;color:#fff;padding:12px;border-radius:12px}.confirmation button{margin-top:8px}.composer{display:flex;gap:8px;border-top:1px solid #2a3859;padding:12px}.composer input{flex:1;min-width:0;background:#0c1221;border:1px solid #344365;border-radius:12px;color:#fff;padding:12px}.hidden{display:none!important}@media(max-width:720px){.shell{display:flex;flex-direction:column;padding-left:10px;padding-right:10px}.shell>header{flex:none}.shell aside{order:2}.chat{order:1;min-height:calc(100vh - 190px);border-radius:17px}.messages{min-height:300px;padding:12px}.message{max-width:92%}.composer{position:sticky;bottom:0;background:#12192df2}.composer button{padding:11px 12px}}@media(min-width:721px) and (max-width:1100px){.shell{grid-template-columns:220px 1fr}}/* 9ter HUD — functional state visualization. */
.fx-grid{position:fixed;inset:0;pointer-events:none;opacity:.16;background-image:linear-gradient(#7ee8ff22 1px,transparent 1px),linear-gradient(90deg,#7ee8ff22 1px,transparent 1px);background-size:34px 34px;mask-image:radial-gradient(circle at 50% 38%,#000,transparent 78%)}
.core-wrap{position:fixed;z-index:0;left:50%;top:74px;transform:translateX(-50%);display:grid;place-items:center;pointer-events:none;opacity:.42}.core-wrap small{margin-top:8px;letter-spacing:.28em;font-size:9px;color:#8deaff}.jarvis-core{width:118px;height:118px;border:1px solid #74e8ff88;border-radius:50%;display:grid;place-items:center;box-shadow:0 0 28px #35cfff33,inset 0 0 24px #35cfff22;animation:corePulse 3s ease-in-out infinite}.jarvis-core:before,.jarvis-core:after,.jarvis-core i{content:"";position:absolute;border-radius:50%;border:1px solid #78eaff66}.jarvis-core:before{width:88px;height:88px;border-style:dashed;animation:spin 8s linear infinite}.jarvis-core:after{width:60px;height:60px;animation:spin 5s linear infinite reverse}.jarvis-core i{width:26px;height:26px;background:#7fefff22;box-shadow:0 0 22px #5de8ff}.hud-panels{position:fixed;z-index:20;right:max(12px,env(safe-area-inset-right));top:84px;width:min(360px,calc(100vw - 24px));display:grid;gap:10px;pointer-events:none}.hud-panel{pointer-events:auto;background:linear-gradient(135deg,#081525ee,#0b2033df);border:1px solid #66dcff77;border-left:3px solid #77e8ff;border-radius:4px 16px 4px 16px;padding:13px 15px;box-shadow:0 12px 40px #0008,0 0 24px #29cfff18;backdrop-filter:blur(14px);animation:hudIn .28s ease-out}.hud-panel h2{font-size:11px;letter-spacing:.2em;color:#8cecff;margin:0 0 8px}.hud-panel-body{white-space:pre-wrap;color:#dff8ff;line-height:1.4}.hud-panel.leaving{animation:hudOut .22s ease-in forwards}body[data-jarvis-state="listening"] .jarvis-core,body[data-jarvis-state="speech"] .jarvis-core{box-shadow:0 0 48px #5de8ff88,inset 0 0 32px #5de8ff44;animation-duration:.8s}body[data-jarvis-state="processing"] .jarvis-core:before,body[data-jarvis-state="tool"] .jarvis-core:before{animation-duration:1.4s}body[data-jarvis-state="speaking"] .jarvis-core{animation-duration:.55s}body[data-jarvis-state="error"] .jarvis-core{filter:saturate(.2)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes corePulse{50%{transform:scale(1.055)}}@keyframes hudIn{from{opacity:0;transform:translateX(24px) perspective(500px) rotateY(-6deg)}to{opacity:1;transform:none}}@keyframes hudOut{to{opacity:0;transform:translateX(30px)}}
@media(max-width:720px){.core-wrap{top:62px;opacity:.25}.jarvis-core{width:92px;height:92px}.jarvis-core:before{width:68px;height:68px}.jarvis-core:after{width:46px;height:46px}.hud-panels{top:66px}.shell{position:relative;z-index:2}}@media(prefers-reduced-motion:reduce){.jarvis-core,.jarvis-core:before,.jarvis-core:after,.hud-panel{animation:none!important}}
.quiet-toggle{border:1px solid #66dcff55;background:#081525aa;color:#dff8ff;border-radius:999px;padding:5px 8px;cursor:pointer}.quiet-toggle[aria-pressed="true"]{box-shadow:0 0 18px #5de8ff33}.chat-head{display:flex;align-items:center;gap:8px}.chat-head h1{margin-right:auto}

/* Voice-first cinematic HUD */
#messages{flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:10px;scrollbar-width:none}
#messages::-webkit-scrollbar{display:none}
#handsFree[aria-pressed="true"]{color:#8ff5ff;border-color:#7eeeff;box-shadow:0 0 20px #43dcff66,inset 0 0 14px #43dcff22}
body[data-handsfree="1"] .core-wrap{opacity:.95;top:18vh;z-index:5}
body[data-handsfree="1"] .jarvis-core{width:158px;height:158px;box-shadow:0 0 64px #35dfff66,inset 0 0 38px #35dfff33}
body[data-handsfree="1"] .jarvis-core:before{width:120px;height:120px}
body[data-handsfree="1"] .jarvis-core:after{width:82px;height:82px}
body[data-handsfree="1"] #messages{opacity:.16;filter:blur(.35px);transition:opacity .3s}
body[data-handsfree="1"] #messages:hover,body[data-handsfree="1"] #messages:focus-within{opacity:.72;filter:none}
body[data-handsfree="1"] .chat{background:linear-gradient(180deg,#09132399,#07101bd9);border-color:#3fdcff44;box-shadow:inset 0 0 80px #1ecfff0b,0 18px 60px #0007}
body[data-handsfree="1"] .hud-panels{top:auto;bottom:110px;left:50%;right:auto;transform:translateX(-50%);width:min(680px,calc(100vw - 28px))}
body[data-handsfree="1"] .hud-panel{border-radius:3px 22px 3px 22px;background:linear-gradient(135deg,#06111bea,#0b2436e8);box-shadow:0 20px 70px #000b,0 0 38px #32d9ff20}
body[data-handsfree="1"] .hud-panel h2{text-align:center;font-size:12px;letter-spacing:.34em}
body[data-handsfree="1"] .hud-panel-body{text-align:center;font-size:clamp(15px,2.4vw,19px);line-height:1.55}
@media(max-width:720px){body[data-handsfree="1"] aside{display:none}body[data-handsfree="1"] .chat{min-height:calc(100vh - 90px)}body[data-handsfree="1"] .core-wrap{top:17vh}body[data-handsfree="1"] .jarvis-core{width:138px;height:138px}body[data-handsfree="1"] #messages{opacity:.08}body[data-handsfree="1"] .composer{background:#07101bea;border-top-color:#4be0ff33}}


/* Voice-home v2: assistant first, chat only on demand. */
.voice-home{overflow:hidden;background:radial-gradient(circle at 50% 38%,#112b46 0,#091423 28%,#050912 68%,#03060c 100%)}
.voice-shell{position:relative;z-index:2;min-height:100svh;width:100%;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));display:flex;flex-direction:column}
.voice-header{display:flex;align-items:center;justify-content:space-between;padding:8px 4px;font-size:20px;letter-spacing:.22em;color:#dfeaff}.voice-header #network{font-size:14px;letter-spacing:.16em}
.voice-stage{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-height:0;padding:0 0 22px}
.voice-status{position:absolute;top:17%;left:50%;transform:translateX(-50%);display:grid;gap:8px;text-align:center;white-space:nowrap;color:#dffaff}.voice-status #state{font-size:16px;letter-spacing:.12em}.wake-hint{font-size:12px;letter-spacing:.16em;color:#79dff2aa}
.voice-home .core-wrap{top:31%;opacity:1;z-index:4}.voice-home .jarvis-core{width:min(46vw,190px);height:min(46vw,190px);border-color:#6eeaffaa;box-shadow:0 0 80px #34dfff55,inset 0 0 44px #35dfff2b}.voice-home .jarvis-core:before{width:74%;height:74%}.voice-home .jarvis-core:after{width:50%;height:50%}.voice-home .core-wrap small{font-size:10px;margin-top:15px;color:#8cecffbb}
.voice-controls{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:2px}.orb-control{width:48px;height:48px;padding:0;border-radius:50%;border:1px solid #6de8ff66;background:#071522aa;color:#dffaff;box-shadow:inset 0 0 18px #4ddfff10;font-size:18px}.orb-control[aria-pressed="true"]{border-color:#7ef1ff;color:#a8f7ff;box-shadow:0 0 24px #40ddff44,inset 0 0 18px #40ddff22}
.voice-home #notice{position:absolute;left:50%;bottom:86px;transform:translateX(-50%);width:min(680px,92vw);text-align:center;color:#f3cf7a;font-size:13px;z-index:12}
.voice-home .hud-panels{top:auto;bottom:104px;left:50%;right:auto;transform:translateX(-50%);width:min(680px,calc(100vw - 28px));z-index:20}.voice-home .hud-panel{text-align:center;border-radius:4px 24px 4px 24px}.voice-home .hud-panel h2{text-align:center;letter-spacing:.34em}.voice-home .hud-panel-body{text-align:center;font-size:clamp(15px,2.5vw,20px)}
.text-panel{position:fixed;z-index:30;inset:max(76px,calc(env(safe-area-inset-top) + 58px)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));display:none;flex-direction:column;overflow:hidden;background:#08101cf4;border:1px solid #55dcff55;border-radius:22px;box-shadow:0 22px 90px #000d;backdrop-filter:blur(22px)}
body[data-text-mode="1"] .text-panel{display:flex}body[data-text-mode="1"] .core-wrap{opacity:.12}body[data-text-mode="1"] .voice-status{opacity:.15}body[data-text-mode="1"] .voice-controls{z-index:40}
.text-panel-head{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid #2a3859}.text-panel-head h1{font-size:17px;margin:0 auto 0 0}.text-panel-head button{padding:8px 11px}.conversation-list{display:none;padding:8px 12px;border-bottom:1px solid #1c2c46;gap:6px;overflow:auto}.conversation-list:not(:empty){display:flex}.conversation-list .conversation{flex:0 0 auto;width:auto}.text-panel #messages{flex:1;min-height:0;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:10px}.text-panel #composer{display:flex;gap:8px;padding:12px;border-top:1px solid #2a3859;background:#07101bee}.text-panel #composer input{flex:1;min-width:0;background:#050a12;border:1px solid #344365;border-radius:12px;color:#fff;padding:12px}
@media(max-width:720px){.voice-shell{padding-left:16px;padding-right:16px}.voice-home .core-wrap{top:30%}.voice-home .jarvis-core{width:44vw;height:44vw}.voice-status{top:16%}.voice-controls{margin-bottom:8px}.voice-home .hud-panels{bottom:96px}.text-panel{inset:max(72px,calc(env(safe-area-inset-top) + 54px)) 8px max(8px,env(safe-area-inset-bottom))}.text-panel #composer{flex-wrap:wrap}.text-panel #composer input{flex-basis:55%}.text-panel #composer button{padding:10px 11px}}
@media(min-width:721px){.voice-home .jarvis-core{width:190px;height:190px}.voice-stage{padding-bottom:30px}}

/* JARVIS cinematic HUD v3 */

:root{--void:#02070b;--panel:#06121b;--cyan:#00d9ff;--cyan2:#7af2ff;--line:#0b4c60;--text:#e9fbff;--muted:#5c9dac;--ok:#39e69b}
.voice-home{background:radial-gradient(ellipse at 50% 42%,#073044 0,#03141e 24%,#020a10 52%,#010407 100%);color:var(--text)}
.voice-home:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 42%,transparent 0 18%,#00d9ff08 18.2%,transparent 18.8% 29%,#00d9ff05 29.2%,transparent 30%),linear-gradient(180deg,#00d9ff03,transparent 35%,#00d9ff03);mix-blend-mode:screen}
.hud-vignette{position:fixed;inset:0;pointer-events:none;z-index:1;box-shadow:inset 0 0 150px #000,inset 0 -90px 120px #0009}
.hud-scan{position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.11;background:repeating-linear-gradient(180deg,transparent 0 3px,#b7f7ff18 4px);mask-image:linear-gradient(transparent,#000 20%,#000 80%,transparent)}
.fx-grid{opacity:.12;background-size:42px 42px;transform:perspective(600px) rotateX(64deg) scale(1.7);transform-origin:50% 74%;inset:46% -30% -35%;mask-image:linear-gradient(#000,transparent 78%)}
.voice-header{position:relative;z-index:8;padding:8px 2px 14px;border-bottom:1px solid #0b3a49;font-size:17px;font-weight:600;letter-spacing:.38em;text-shadow:0 0 18px #45e6ff44}
.voice-header:after{content:"";position:absolute;left:0;bottom:-1px;width:74px;height:1px;background:var(--cyan);box-shadow:0 0 12px var(--cyan)}
.voice-header #network{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase}.voice-header #network.online{color:var(--ok)}
.telemetry{position:fixed;z-index:5;top:50%;display:flex;align-items:center;gap:9px;font:500 8px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.18em;color:#2f8497;pointer-events:none}.telemetry-left{left:10px;transform:translateY(-50%) rotate(-90deg) translateX(-50%);transform-origin:left top}.telemetry-right{right:10px;transform:translateY(-50%) rotate(90deg) translateX(50%);transform-origin:right top}.telemetry i{display:block;width:28px;height:1px;background:#17657a}
.voice-status{top:14.5%;gap:7px}.voice-status:before{content:"JARVIS // VOICE INTERFACE";font:500 8px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.28em;color:#347e8e}.voice-status #state{font-size:13px;font-weight:600;letter-spacing:.28em;color:#dffcff;text-shadow:0 0 16px #3ce8ff66}.wake-hint{font:400 10px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;color:#4e9aaa}
.voice-home .core-wrap{top:37%;filter:drop-shadow(0 0 26px #00d9ff22)}
.voice-home .core-wrap:before,.voice-home .core-wrap:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.voice-home .core-wrap:before{width:250px;height:250px;border:1px solid #0a5f7555;border-left-color:#43e6ff88;border-right-color:#43e6ff22;animation:spin 22s linear infinite}.voice-home .core-wrap:after{width:222px;height:222px;background:repeating-conic-gradient(from 8deg,#37ddff55 0 1deg,transparent 1deg 12deg);mask:radial-gradient(circle,transparent 0 48%,#000 49% 50%,transparent 51%);animation:spin 34s linear infinite reverse}
.voice-home .jarvis-core{position:relative;width:176px;height:176px;border:1px solid #27dfff99;background:radial-gradient(circle,#b8fbff 0 2%,#52ecff 3% 5%,#0c829c55 6% 10%,transparent 11% 27%,#00d9ff08 28% 48%,transparent 49%);box-shadow:0 0 10px #50ebff88,0 0 52px #00cfff38,inset 0 0 38px #00d9ff22}
.voice-home .jarvis-core:before{width:132px;height:132px;border:1px dashed #5eeeff99;box-shadow:inset 0 0 18px #00d9ff12}.voice-home .jarvis-core:after{width:94px;height:94px;border-color:#2fdfff77;border-style:solid dotted}
.jarvis-core i{width:42px;height:42px;border:1px solid #9af7ff;background:radial-gradient(circle,#e9ffff 0 7%,#66efff 8% 18%,#0bcbe7 20% 35%,#073a47 37% 48%,transparent 50%);box-shadow:0 0 10px #d8ffff,0 0 34px #00ddff,0 0 72px #00bdda88}
.jarvis-core b,.jarvis-core span{position:absolute;border-radius:50%;pointer-events:none}.jarvis-core b{width:154px;height:154px;border:7px double transparent;border-top-color:#43e9ff99;border-bottom-color:#0a617766;animation:spin 12s linear infinite}.jarvis-core span{width:112px;height:112px;border:3px solid transparent;border-left-color:#7df3ff;border-right-color:#138aa2;animation:spin 7s linear infinite reverse}
.core-wrap small{padding:5px 10px;border:1px solid #0b5265;background:#020a10cc;letter-spacing:.32em!important;font:600 8px/1 ui-monospace,SFMono-Regular,Menlo,monospace!important;color:#79edff!important;box-shadow:0 0 18px #00d9ff12}
body[data-jarvis-state="listening"] .jarvis-core,body[data-jarvis-state="speech"] .jarvis-core{transform:scale(1.035);box-shadow:0 0 16px #a8fbff,0 0 70px #00d9ff88,inset 0 0 45px #00d9ff33}body[data-jarvis-state="processing"] .jarvis-core b,body[data-jarvis-state="tool"] .jarvis-core b{animation-duration:2.2s}body[data-jarvis-state="speaking"] .jarvis-core i{animation:voiceGlow .7s ease-in-out infinite alternate}
@keyframes voiceGlow{to{transform:scale(1.22);filter:brightness(1.35)}}
.voice-controls{position:relative;z-index:10;gap:8px;margin:0;padding:8px;border:1px solid #0b3f4f;background:#020a10c7;box-shadow:0 16px 50px #000a,inset 0 0 30px #00d9ff08;backdrop-filter:blur(14px);clip-path:polygon(10px 0,calc(100% - 10px) 0,100% 10px,100% calc(100% - 10px),calc(100% - 10px) 100%,10px 100%,0 calc(100% - 10px),0 10px)}
.orb-control{width:68px;height:52px;border-radius:2px;padding:5px 4px;background:transparent;border:1px solid transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:#78b8c5;box-shadow:none}.orb-control small{font:500 7px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;text-transform:uppercase}.orb-control:active,.orb-control[aria-pressed="true"]{background:#06314099;border-color:#18cce8;color:#d9fbff;box-shadow:inset 0 0 20px #00d9ff18,0 0 14px #00d9ff18}
.control-icon{position:relative;display:block;width:20px;height:20px}.wake-icon{border:1px solid currentColor;border-radius:50%;box-shadow:inset 0 0 0 5px #020a10}.wake-icon:after{content:"";position:absolute;inset:5px;border-radius:50%;background:currentColor;box-shadow:0 0 10px currentColor}.organizer-icon:before{content:"";position:absolute;inset:2px;border:1px solid currentColor}.organizer-icon:after{content:"";position:absolute;left:6px;top:0;width:1px;height:20px;background:currentColor;box-shadow:7px 0 currentColor}.sound-icon:before{content:"";position:absolute;left:1px;top:7px;border-style:solid;border-width:4px 7px 4px 0;border-color:transparent currentColor transparent transparent;transform:rotate(180deg)}.sound-icon:after{content:")))";position:absolute;left:8px;top:2px;font:12px/16px ui-monospace,monospace;letter-spacing:-5px}.is-muted .sound-icon:after{content:"×";left:11px;letter-spacing:0;font-size:16px}.text-icon:before{content:"T";position:absolute;inset:1px;border:1px solid currentColor;font:600 12px/17px ui-monospace,monospace;text-align:center}
.voice-home .hud-panels{bottom:112px;width:min(560px,calc(100vw - 34px))}.voice-home .hud-panel{border:1px solid #12657a;border-left:2px solid #58ebff;border-radius:0;background:linear-gradient(90deg,#031018ee,#06202bee,#031018ee);box-shadow:0 18px 60px #000c,0 0 30px #00d9ff14;clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px)}.voice-home .hud-panel h2{font:600 8px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.32em;color:#5feaff}.voice-home .hud-panel-body{font-size:15px;line-height:1.5;color:#e7fbff}
.text-panel{background:#020910f7;border-color:#0d5a6d;border-radius:2px;box-shadow:0 25px 100px #000,inset 0 0 60px #00d9ff08;clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px)}
@media(max-width:720px){.voice-shell{padding:calc(env(safe-area-inset-top) + 12px) 14px calc(env(safe-area-inset-bottom) + 14px)}.voice-home .core-wrap{top:38%}.voice-home .core-wrap:before{width:218px;height:218px}.voice-home .core-wrap:after{width:196px;height:196px}.voice-home .jarvis-core{width:154px;height:154px}.jarvis-core b{width:136px;height:136px}.jarvis-core span{width:100px;height:100px}.voice-status{top:13.5%}.telemetry{opacity:.55}.voice-controls{margin-bottom:3px}.orb-control{width:66px;height:50px}.voice-home .hud-panels{bottom:105px}.voice-home #notice{bottom:91px}.text-panel{inset:max(70px,calc(env(safe-area-inset-top) + 52px)) 8px max(8px,env(safe-area-inset-bottom))}}
@media(max-height:680px){.voice-home .core-wrap{top:34%}.voice-status{top:12%}.voice-home .jarvis-core{width:132px;height:132px}.voice-home .core-wrap:before{width:190px;height:190px}.voice-home .core-wrap:after{width:170px;height:170px}}

/* v13 — voice-first animation: reactive mouth, no transcript overlay in normal voice mode. */
.voice-mouth{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:76px;height:28px;display:flex;align-items:center;justify-content:center;gap:4px;opacity:.12;transition:opacity .18s ease,transform .18s ease;pointer-events:none}
.voice-mouth em{display:block;width:3px;height:5px;border-radius:999px;background:#c7fbff;box-shadow:0 0 8px #50eaff;transform-origin:center;animation:none}
body[data-jarvis-state="speaking"] .voice-mouth{opacity:.95;transform:translate(-50%,-50%) scale(1.04)}
body[data-jarvis-state="speaking"] .voice-mouth em:nth-child(1){animation:mouthTalk .46s ease-in-out infinite alternate}
body[data-jarvis-state="speaking"] .voice-mouth em:nth-child(2){animation:mouthTalk .31s ease-in-out infinite alternate-reverse}
body[data-jarvis-state="speaking"] .voice-mouth em:nth-child(3){animation:mouthTalk .39s ease-in-out infinite alternate}
body[data-jarvis-state="speaking"] .voice-mouth em:nth-child(4){animation:mouthTalk .28s ease-in-out infinite alternate-reverse}
body[data-jarvis-state="speaking"] .voice-mouth em:nth-child(5){animation:mouthTalk .43s ease-in-out infinite alternate}
body[data-jarvis-state="listening"] .voice-mouth{opacity:.45}
body[data-jarvis-state="listening"] .voice-mouth em{height:3px;animation:listenBreath 1s ease-in-out infinite alternate}
@keyframes mouthTalk{from{height:4px;transform:scaleY(.75)}to{height:24px;transform:scaleY(1.08)}}
@keyframes listenBreath{to{height:8px;opacity:1}}

/* Ambient visual experiment: same JARVIS runtime, softer premium presence. */
body[data-visual="ambient"] .telemetry,body[data-visual="ambient"] .hud-scan{display:none}
body[data-visual="ambient"] .fx-grid{opacity:.035;filter:blur(1px)}
body[data-visual="ambient"] .core-wrap:before,body[data-visual="ambient"] .core-wrap:after{border:0;background:none;mask:none}
body[data-visual="ambient"] .jarvis-core{border:0;background:radial-gradient(circle at 42% 38%,#e9ffff 0 2%,#8df5ff 3% 8%,#44d8ff77 14%,#6d73ff44 37%,transparent 69%);box-shadow:0 0 45px #64eaff66,0 0 110px #586dff44,inset 0 0 55px #d6fbff22;animation:ambientBreath 4.8s ease-in-out infinite}
body[data-visual="ambient"] .jarvis-core:before{width:115%;height:115%;border:0;background:conic-gradient(from 30deg,#77efff00,#77efff55,#8a7cff22,#77efff00);filter:blur(13px);animation:spin 13s linear infinite}
body[data-visual="ambient"] .jarvis-core:after{width:82%;height:82%;border:0;background:radial-gradient(ellipse at 65% 35%,#bdfcff44,transparent 55%);filter:blur(9px);animation:ambientDrift 5.5s ease-in-out infinite alternate}
body[data-visual="ambient"] .jarvis-core b,body[data-visual="ambient"] .jarvis-core span{border:0;box-shadow:none;background:none}
body[data-visual="ambient"] .jarvis-core i{width:44%;height:44%;border:0;background:radial-gradient(circle,#ffffff 0 3%,#bafaff 5% 12%,#5de6ff66 22%,transparent 68%);filter:blur(.2px);box-shadow:0 0 36px #7ef3ff88}
body[data-visual="ambient"] .core-wrap small{border:0;background:transparent;box-shadow:none;letter-spacing:.23em!important;color:#bcefffaa!important}
body[data-visual="ambient"][data-jarvis-state="listening"] .jarvis-core{transform:scale(1.06);box-shadow:0 0 60px #6ff1ff99,0 0 135px #536cff55}
body[data-visual="ambient"][data-jarvis-state="processing"] .jarvis-core:before{animation-duration:4s}
body[data-visual="ambient"][data-jarvis-state="speaking"] .jarvis-core{animation-duration:1.15s}
@keyframes ambientBreath{0%,100%{transform:scale(.97)}50%{transform:scale(1.04)}}
@keyframes ambientDrift{from{transform:translate(-6px,5px) scale(.94)}to{transform:translate(7px,-4px) scale(1.07)}}
