*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body,#root{color:#e0e0f0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0a0a1a;width:100%;height:100%;font-family:Noto Sans SC,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}body{width:100%;height:100%;position:fixed}::-webkit-scrollbar{width:0;height:0}.font-orbitron{font-family:Orbitron,monospace}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}@keyframes slideUp{0%{opacity:0;transform:translate(-50%)translateY(20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes ripple{0%{opacity:.6;transform:scale(.8)}to{opacity:0;transform:scale(2.5)}}.immersive-root{-webkit-user-select:none;user-select:none;background:#050510;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;inset:0;overflow:hidden}.camera-bg{z-index:0;opacity:0;transition:opacity .8s;position:absolute;inset:0}.camera-bg--active{opacity:1}.camera-video{object-fit:cover;filter:brightness(.35)saturate(.6);width:100%;height:100%;transform:scaleX(-1)}.camera-fallback{position:absolute;inset:0}.camera-fallback-bg{background:radial-gradient(at 50% 60%,#1a0a3a 0%,#050510 70%);width:100%;height:100%}.immersive-overlay{z-index:1;pointer-events:none;background:radial-gradient(80% 60% at 50% 55%,#0a0a1e8c 0%,#050510d9 100%);position:absolute;inset:0}.particle-field{z-index:2;pointer-events:none;position:absolute;inset:0;overflow:hidden}.particle{left:var(--x);width:var(--size);height:var(--size);animation:particleRise 12s var(--delay) infinite linear;background:#00dcff80;border-radius:50%;position:absolute;bottom:-10px}@keyframes particleRise{0%{opacity:0;transform:translateY(0)scale(1)}10%{opacity:.7}90%{opacity:.3}to{opacity:0;transform:translateY(-100vh)scale(.3)}}.bubbles-container{z-index:10;pointer-events:none;flex-direction:column;justify-content:flex-end;align-items:stretch;gap:8px;width:min(92%,480px);max-height:42vh;padding:0 0 12px;display:flex;position:absolute;bottom:calc(50% + 140px);left:50%;overflow:hidden;transform:translate(-50%);-webkit-mask-image:linear-gradient(#0000 0%,#000 20% 100%);mask-image:linear-gradient(#0000 0%,#000 20% 100%)}.bubble{letter-spacing:.02em;-webkit-backdrop-filter:blur(16px)saturate(1.4);pointer-events:auto;border-radius:18px;max-width:min(88%,420px);padding:10px 16px;font-size:15px;line-height:1.55;animation:.35s cubic-bezier(.34,1.56,.64,1) both bubbleIn}.bubble--user{color:#e8d8ff;text-align:right;background:#783cdc61;border:1px solid #a064ff59;border-bottom-right-radius:6px;align-self:flex-end}.bubble--assistant{color:#d0f4ff;background:#00b4dc33;border:1px solid #00dcff47;border-bottom-left-radius:6px;align-self:flex-start}.bubble--new{animation:.4s cubic-bezier(.34,1.56,.64,1) both bubbleIn}@keyframes bubbleIn{0%{opacity:0;transform:translateY(10px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.bubble-text{word-break:break-word;white-space:pre-wrap}.bubble-cursor{vertical-align:middle;background:currentColor;width:2px;height:1em;margin-left:2px;animation:.7s step-end infinite cursorBlink;display:inline-block}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}.eyes-center{z-index:5;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.looi-eyes-wrap{flex-direction:column;justify-content:center;align-items:center;padding:20px;transition:transform .3s;display:flex;position:relative}.looi-eyes-row{justify-content:center;align-items:flex-end;gap:36px;display:flex}.looi-eye-outer{width:240px;height:240px;position:relative}.looi-eye{transform-origin:50%;width:100%;height:100%;transition:transform .1s}.looi-eye-svg{width:100%;height:100%;display:block}.looi-eyes-glow{pointer-events:none;background:radial-gradient(#00c8ff1f 0%,#0000 70%);border-radius:50%;animation:3s ease-in-out infinite glowPulse;position:absolute;inset:-30px}@keyframes glowPulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}.looi-mouth-wrap{justify-content:center;margin-top:8px;display:flex}.looi-mouth-svg{filter:drop-shadow(0 0 6px #00d4e866);width:60px;height:20px;display:block}.looi-eyes--speaking .looi-mouth-svg{filter:drop-shadow(0 0 10px #00f0ffb3)}.looi-eyes--happy .looi-mouth-svg{filter:drop-shadow(0 0 10px #0fc9)}.looi-eyes--thinking .looi-mouth-svg{filter:drop-shadow(0 0 4px #8899bb4d)}.looi-eyes--listening .looi-mouth-svg{filter:drop-shadow(0 0 8px #22d3ee80)}.looi-eyes--sleepy .looi-mouth-svg{filter:drop-shadow(0 0 3px #4683)}.looi-state-label{letter-spacing:.15em;color:#00dcffb3;white-space:nowrap;text-transform:uppercase;font-family:Orbitron,monospace;font-size:11px;position:absolute;bottom:-24px;left:50%;transform:translate(-50%)}.looi-blush{opacity:0;pointer-events:none;z-index:10;border-radius:50%;width:60px;height:30px;transition:opacity .3s;position:absolute}.looi-blush--left{background:radial-gradient(#ff64828c 0%,#ff507833 50%,#0000 70%);bottom:50px;left:calc(50% - 150px)}.looi-blush--right{background:radial-gradient(#ff64828c 0%,#ff507833 50%,#0000 70%);bottom:50px;right:calc(50% - 150px)}.looi-shy .looi-blush{opacity:1;animation:.4s ease-in-out 3 alternate blushPulse}.looi-shy{animation:.4s ease-in-out 2 shyShake}.looi-shy .looi-eyes-glow{background:radial-gradient(#ff78a033 0%,#ff508c14 50%,#0000 70%)!important}.looi-shy .looi-state-label{color:#ff96b4e6!important}.looi-shy .looi-mouth-svg{filter:drop-shadow(0 0 8px #ff78a099)!important}@keyframes shyShake{0%{transform:translate(0)rotate(0)}15%{transform:translate(-6px)rotate(-2deg)}30%{transform:translate(5px)rotate(1.5deg)}45%{transform:translate(-4px)rotate(-1deg)}60%{transform:translate(3px)rotate(.8deg)}75%{transform:translate(-2px)rotate(-.5deg)}to{transform:translate(0)rotate(0)}}@keyframes blushPulse{0%{opacity:.5;transform:scale(1)}to{opacity:1;transform:scale(1.15)}}.looi-wiggle{animation:.6s ease-in-out cuteWiggle}@keyframes cuteWiggle{0%{transform:translate(0)rotate(0)}20%{transform:translate(-5px)rotate(-1.5deg)}40%{transform:translate(4px)rotate(1.2deg)}60%{transform:translate(-3px)rotate(-.8deg)}80%{transform:translate(2px)rotate(.5deg)}to{transform:translate(0)rotate(0)}}.looi-eyes--idle .looi-eye-rect{filter:drop-shadow(0 0 12px #00dcff99)}.looi-eyes--idle .looi-eyes-glow{opacity:.6}.looi-eyes--thinking .looi-eye-rect{fill:#89b;filter:drop-shadow(0 0 8px #89b6);transition:fill .4s,filter .4s}.looi-eyes--thinking .looi-eye-outer{animation:2s ease-in-out infinite thinkSquint}@keyframes thinkSquint{0%,to{transform:scaleY(1)}50%{transform:scaleY(.85)}}.looi-eyes--thinking .looi-eyes-glow{background:radial-gradient(#8899bb1a 0%,#0000 70%)}.looi-eyes--speaking .looi-eye-rect{filter:drop-shadow(0 0 20px #00f0ffe6)drop-shadow(0 0 40px #00c8ff66)}.looi-eyes--speaking .looi-eye-outer{animation:.6s ease-in-out infinite alternate speakPulse}@keyframes speakPulse{0%{transform:scale(1)}to{transform:scale(1.06)}}.looi-eyes--speaking .looi-eyes-glow{opacity:1;background:radial-gradient(#00f0ff33 0%,#0000 70%)}.looi-eyes--happy .looi-eye-rect{fill:#0fc;filter:drop-shadow(0 0 24px #0fcc)drop-shadow(0 0 12px #b400ff66);transition:fill .3s}.looi-eyes--happy .looi-eye-outer{animation:.5s cubic-bezier(.34,1.56,.64,1) both happyBounce}@keyframes happyBounce{0%{transform:scale(.95)}60%{transform:scale(1.1)}to{transform:scale(1.05)}}.looi-eyes--happy .looi-eyes-glow{opacity:1;background:radial-gradient(#00ffcc2e 0%,#b400ff14 50%,#0000 70%)}.looi-eyes--listening .looi-eye-rect{fill:#22d3ee;filter:drop-shadow(0 0 16px #22d3eeb3);transition:fill .3s}.looi-eyes--listening .looi-eye-outer{animation:1.2s ease-in-out infinite listenRing}@keyframes listenRing{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.looi-eyes--listening .looi-eyes-glow{animation:1.2s ease-in-out infinite listenGlowPulse}@keyframes listenGlowPulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}.looi-eyes--sleepy .looi-eye-rect{fill:#468;filter:drop-shadow(0 0 6px #4466884d);transition:fill .6s}.looi-eyes--sleepy .looi-eye-outer{animation:3s ease-in-out infinite sleepyDroop}@keyframes sleepyDroop{0%,to{transform:scaleY(.4)}50%{transform:scaleY(.2)}}.looi-eyes--sleepy .looi-eyes-glow{opacity:.2}.controls-bar{bottom:max(32px, env(safe-area-inset-bottom,32px));z-index:20;align-items:center;gap:20px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.ctrl-btn{cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;justify-content:center;align-items:center;transition:transform .2s,opacity .2s;display:flex;position:relative}.ctrl-btn:active{transform:scale(.92)}.ctrl-btn:disabled{opacity:.4;cursor:not-allowed}.ctrl-btn--text,.ctrl-btn--camera{color:#ffffffb3;-webkit-backdrop-filter:blur(12px);background:#ffffff14;border:1px solid #ffffff26;border-radius:50%;width:44px;height:44px}.ctrl-btn--text svg,.ctrl-btn--camera svg{width:18px;height:18px}.ctrl-btn--text:hover,.ctrl-btn--camera:hover{color:#fff;background:#ffffff24}.ctrl-btn--cam-on{color:#00e5ff!important;background:#00c8ff26!important;border-color:#00c8ff66!important}.ctrl-btn--mic{color:#fff;background:linear-gradient(135deg,#7c3aed,#2563eb);border:2px solid #fff3;border-radius:50%;width:46px;height:46px;box-shadow:0 4px 20px #7c3aed80,0 0 #7c3aed4d}.ctrl-btn--mic svg{width:14px;height:14px}.ctrl-btn--mic:hover{box-shadow:0 6px 28px #7c3aedb3,0 0 #7c3aed4d}.ctrl-btn--active{animation:1.5s ease-in-out infinite micActive;background:linear-gradient(135deg,#dc2626,#9333ea)!important;box-shadow:0 4px 20px #dc262680,0 0 #dc26264d!important}@keyframes micActive{0%,to{box-shadow:0 4px 20px #dc262680,0 0 #dc262666}50%{box-shadow:0 4px 28px #dc2626b3,0 0 0 10px #dc262600}}.ctrl-btn--sending{animation:.8s ease-in-out infinite sendingPulse}@keyframes sendingPulse{0%,to{opacity:1}50%{opacity:.6}}.mic-ripple{pointer-events:none;border:2px solid #dc262680;border-radius:50%;animation:1.2s ease-out infinite micRipple;position:absolute;inset:-4px}@keyframes micRipple{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1.6)}}.input-panel{bottom:max(120px, calc(env(safe-area-inset-bottom,32px) + 88px));z-index:20;width:min(90%,420px);animation:.3s cubic-bezier(.34,1.56,.64,1) both slideUp;position:absolute;left:50%;transform:translate(-50%)}.input-wrap{-webkit-backdrop-filter:blur(20px);background:#0f0f23d9;border:1px solid #7850ff66;border-radius:28px;align-items:center;gap:8px;padding:8px 8px 8px 20px;display:flex;box-shadow:0 8px 32px #0006}.text-input{color:#e8e0ff;letter-spacing:.02em;caret-color:#a78bfa;background:0 0;border:none;outline:none;flex:1;font-family:Noto Sans SC,sans-serif;font-size:15px}.text-input::placeholder{color:#c8b4ff66}.send-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#7c3aed,#2563eb);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;transition:transform .2s,opacity .2s;display:flex}.send-btn svg{width:16px;height:16px}.send-btn:hover{transform:scale(1.08)}.send-btn:active{transform:scale(.93)}.send-btn:disabled{opacity:.4;cursor:not-allowed}.voice-preview{bottom:max(116px, calc(env(safe-area-inset-bottom,32px) + 84px));z-index:15;-webkit-backdrop-filter:blur(12px);background:#dc262626;border:1px solid #dc26264d;border-radius:20px;max-width:min(90%,400px);padding:8px 16px;animation:.2s both fadeIn;position:absolute;left:50%;transform:translate(-50%)}.voice-preview-text{color:#ffc8c8e6;text-align:center;letter-spacing:.02em;font-size:13px;display:block}.camera-hint{top:max(16px, env(safe-area-inset-top,16px));z-index:20;color:#ffffff80;white-space:nowrap;background:#00000080;border:1px solid #ffffff1a;border-radius:20px;padding:6px 14px;font-size:12px;animation:.5s 2s both fadeIn;position:absolute;left:50%;transform:translate(-50%)}@media (width<=480px){.looi-eye-outer{width:160px;height:160px}.looi-eyes-row{gap:24px}.looi-mouth-svg{width:48px;height:16px}.ctrl-btn--mic{width:42px;height:42px}.ctrl-btn--mic svg{width:13px;height:13px}.ctrl-btn--text,.ctrl-btn--camera{width:40px;height:40px}.bubble{padding:9px 14px;font-size:14px}.bubbles-container{bottom:calc(50% + 110px)}.looi-blush{width:40px;height:20px}.looi-blush--left{bottom:38px;left:calc(50% - 120px)}.looi-blush--right{bottom:38px;right:calc(50% - 120px)}}@media (width>=768px){.looi-eye-outer{width:280px;height:280px}.looi-eyes-row{gap:44px}.looi-mouth-svg{width:70px;height:24px}.ctrl-btn--mic{width:50px;height:50px}.ctrl-btn--mic svg{width:16px;height:16px}.bubbles-container{bottom:calc(50% + 160px)}.looi-blush{width:70px;height:35px}.looi-blush--left{bottom:55px;left:calc(50% - 195px)}.looi-blush--right{bottom:55px;right:calc(50% - 195px)}}@media (height<=500px) and (orientation:landscape){.looi-eye-outer{width:120px;height:120px}.looi-eyes-row{gap:20px}.looi-mouth-svg{width:44px;height:14px}.controls-bar{bottom:16px}.bubbles-container{max-height:35vh;bottom:calc(50% + 90px)}.looi-blush{width:35px;height:18px}}
/* Looi canonical lifelike frame-eye animation patch: border/shape is the eye, no pupils */
.looi-eyes-wrap{will-change:transform,filter;animation:looiAliveFloat 4.8s ease-in-out infinite!important;transform-origin:center center}.looi-eyes-wrap:hover{filter:drop-shadow(0 0 26px rgba(0,240,255,.34))}.looi-eye-outer{will-change:transform,filter;transition:transform .24s cubic-bezier(.2,1.35,.4,1),filter .24s ease}.looi-eye{will-change:transform,filter;transition:transform .16s cubic-bezier(.2,1.35,.4,1),filter .24s ease}.looi-eye-svg{filter:drop-shadow(0 0 18px rgba(0,240,255,.35));transition:filter .22s ease}.looi-eyes-wrap:active{animation:looiTapShy .65s cubic-bezier(.2,1.5,.4,1)!important}.looi-eyes-wrap:active .looi-eye{transform:scaleY(.38) scaleX(1.04)!important}.looi-eyes-wrap:active .looi-blush{opacity:1!important}.looi-eyes-wrap:before,.looi-eyes-wrap:after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff,#00f0ff 48%,transparent 74%);box-shadow:0 0 22px rgba(0,240,255,.7);opacity:0;pointer-events:none;z-index:12}.looi-eyes-wrap:before{left:18%;top:38%}.looi-eyes-wrap:after{right:18%;top:46%;animation-delay:.18s}.looi-eyes-wrap.looi-eyes--speaking:before,.looi-eyes-wrap.looi-eyes--thinking:after{animation:looiSpark 1.3s ease-in-out infinite}.looi-eyes--idle .looi-eye-outer:first-child{animation:looiLookLeft 7.2s ease-in-out infinite}.looi-eyes--idle .looi-eye-outer:nth-child(2){animation:looiLookRight 7.2s ease-in-out infinite}.looi-eyes--listening .looi-eye-outer{animation:looiListenLean 1.45s ease-in-out infinite!important}.looi-eyes--thinking{animation:looiThinkingDrift 2.2s ease-in-out infinite!important}.looi-eyes--thinking .looi-eye{filter:brightness(.72) saturate(.8);transform:scaleY(.36)!important}.looi-eyes--speaking .looi-eye-outer:first-child{animation:looiTalkLeft .42s ease-in-out infinite alternate!important}.looi-eyes--speaking .looi-eye-outer:nth-child(2){animation:looiTalkRight .38s ease-in-out infinite alternate!important}.looi-eyes--happy .looi-eye{transform:scaleY(.52) scaleX(1.06)!important;filter:brightness(1.24) saturate(1.35)}.looi-eyes--happy .looi-eyes-glow{animation:looiHappyGlow 1.1s ease-in-out 2!important}.looi-eyes--sleepy .looi-eye{transform:scaleY(.18)!important;filter:brightness(.48) saturate(.65)}.looi-shy .looi-eye{transform:scaleY(.28) scaleX(1.08)!important}.looi-wiggle .looi-eye-outer:first-child{animation:looiMicroPanic .5s ease-in-out 2!important}.looi-wiggle .looi-eye-outer:nth-child(2){animation:looiMicroPanic .5s ease-in-out 2 reverse!important}@keyframes looiAliveFloat{0%,100%{transform:translateY(0) rotate(0deg) scale(1)}50%{transform:translateY(-7px) rotate(.6deg) scale(1.012)}}@keyframes looiLookLeft{0%,76%,100%{transform:translate(0,0) rotate(0)}82%{transform:translate(-10px,2px) rotate(-2deg)}88%{transform:translate(7px,-1px) rotate(1.4deg)}}@keyframes looiLookRight{0%,76%,100%{transform:translate(0,0) rotate(0)}82%{transform:translate(-6px,1px) rotate(-1.2deg)}88%{transform:translate(11px,-2px) rotate(2deg)}}@keyframes looiListenLean{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-4px) scale(1.035)}}@keyframes looiThinkingDrift{0%,100%{transform:translate(-50%,-50%) translateX(0) rotate(0)}25%{transform:translate(-50%,-50%) translateX(-12px) rotate(-1.5deg)}75%{transform:translate(-50%,-50%) translateX(12px) rotate(1.5deg)}}@keyframes looiTalkLeft{from{transform:translateY(0) scale(1)}to{transform:translateY(-8px) scale(1.035,.94)}}@keyframes looiTalkRight{from{transform:translateY(-2px) scale(1)}to{transform:translateY(7px) scale(.98,1.04)}}@keyframes looiHappyGlow{0%,100%{transform:scale(1);opacity:.8}50%{transform:scale(1.12);opacity:1}}@keyframes looiTapShy{0%,100%{transform:translateY(0) rotate(0) scale(1)}25%{transform:translateX(-7px) rotate(-2deg) scale(.96,1.04)}55%{transform:translateX(6px) rotate(1.6deg) scale(1.03,.97)}}@keyframes looiSpark{0%,100%{opacity:0;transform:translateY(12px) scale(.45)}35%{opacity:1;transform:translateY(-18px) scale(1)}70%{opacity:.45;transform:translateY(-4px) scale(.7)}}@keyframes looiMicroPanic{0%,100%{transform:translate(0) rotate(0)}25%{transform:translate(-8px,2px) rotate(-2deg)}70%{transform:translate(8px,-3px) rotate(2deg)}}

/* Looi backend state binding patch */
:root[data-looi-state="comforting"] .looi-eyes-wrap{animation:looiComfortFloat 6s ease-in-out infinite!important;filter:drop-shadow(0 0 20px rgba(0,240,255,.22)) brightness(.88)}
:root[data-looi-state="comforting"] .looi-eye-svg{filter:drop-shadow(0 0 12px rgba(0,240,255,.22))!important;opacity:.86}
:root[data-looi-state="excited"] .looi-eyes-wrap{animation:looiExcitedBounce 1.2s ease-in-out infinite!important;filter:drop-shadow(0 0 36px rgba(0,240,255,.55)) brightness(1.18)}
:root[data-looi-state="excited"] .looi-eye-svg{filter:drop-shadow(0 0 26px rgba(0,240,255,.58))!important}
:root[data-looi-state="shy"] .looi-eye{animation:looiStateShyBlink 1.1s ease-in-out 1!important;transform-origin:center center}
:root[data-looi-state="thinking"] .looi-eyes-wrap{animation:looiThinkingDrift 2.4s ease-in-out infinite!important;filter:drop-shadow(0 0 18px rgba(0,240,255,.28)) brightness(.95)}
:root[data-looi-state="thinking"] .looi-eye{transform:scaleY(.72)}
:root[data-looi-state="speaking"] .looi-eye-outer:nth-child(1){animation:looiSpeakingBounce .42s ease-in-out infinite alternate!important}
:root[data-looi-state="speaking"] .looi-eye-outer:nth-child(2){animation:looiSpeakingBounce .42s ease-in-out infinite alternate-reverse!important}
@keyframes looiComfortFloat{0%,100%{transform:translateY(0) scale(.98)}50%{transform:translateY(4px) scale(.96)}}
@keyframes looiExcitedBounce{0%,100%{transform:translateY(0) scale(1)}45%{transform:translateY(-7px) scale(1.035)}70%{transform:translateY(2px) scale(1.01)}}
@keyframes looiStateShyBlink{0%,100%{transform:scaleY(1)}30%{transform:scaleY(.18)}55%{transform:scaleY(.08)}80%{transform:scaleY(.55)}}
@keyframes looiThinkingDrift{0%,100%{transform:translateX(0) rotate(0deg)}35%{transform:translateX(-8px) rotate(-1deg)}70%{transform:translateX(8px) rotate(1deg)}}
@keyframes looiSpeakingBounce{from{transform:translateY(0) scaleY(.96)}to{transform:translateY(-5px) scaleY(1.04)}}

/* Looi auto voice UI patch */
#looi-auto-voice-btn{position:fixed;right:18px;bottom:calc(22px + env(safe-area-inset-bottom));z-index:99999;border:1px solid rgba(0,240,255,.42);border-radius:999px;padding:12px 16px;background:rgba(3,12,28,.72);color:#dffcff;font-weight:700;font-size:14px;letter-spacing:.04em;box-shadow:0 0 24px rgba(0,240,255,.22),inset 0 0 18px rgba(0,240,255,.08);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
#looi-auto-voice-btn[data-on="1"]{background:linear-gradient(135deg,rgba(0,240,255,.22),rgba(124,58,237,.22));box-shadow:0 0 32px rgba(0,240,255,.42),0 0 60px rgba(124,58,237,.2)}
:root[data-looi-auto="on"] .looi-eyes-wrap{filter:drop-shadow(0 0 30px rgba(0,240,255,.38))}
@media(max-width:640px){#looi-auto-voice-btn{right:14px;bottom:calc(16px + env(safe-area-inset-bottom));font-size:13px;padding:11px 14px}}


/* Looi state label + recovery UI patch */
#looi-state-recovery{position:fixed;left:50%;top:calc(18px + env(safe-area-inset-top));transform:translateX(-50%);z-index:99998;display:flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid rgba(0,240,255,.32);border-radius:999px;background:rgba(3,12,28,.58);color:#dffcff;font-size:12px;font-weight:700;letter-spacing:.06em;box-shadow:0 0 22px rgba(0,240,255,.18),inset 0 0 16px rgba(0,240,255,.06);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);pointer-events:auto}.looi-state-dot{width:7px;height:7px;border-radius:50%;background:#00f0ff;box-shadow:0 0 12px rgba(0,240,255,.9);animation:looiStateDotPulse 1.4s ease-in-out infinite}.looi-retry-btn{display:none;border:1px solid rgba(0,240,255,.28);border-radius:999px;background:rgba(0,240,255,.08);color:#dffcff;font-size:11px;font-weight:700;padding:4px 8px}#looi-state-recovery[data-state="error"] .looi-retry-btn,:root[data-looi-recovery="offline"] #looi-state-recovery .looi-retry-btn,:root[data-looi-recovery="error"] #looi-state-recovery .looi-retry-btn{display:inline-flex}#looi-state-recovery[data-state="comforting"]{border-color:rgba(125,211,252,.34);background:rgba(3,18,38,.62)}#looi-state-recovery[data-state="excited"] .looi-state-dot{background:#7dd3fc;box-shadow:0 0 16px rgba(125,211,252,.95)}#looi-state-recovery[data-state="shy"] .looi-state-dot{background:#f0abfc;box-shadow:0 0 16px rgba(240,171,252,.8)}#looi-state-recovery[data-state="error"]{border-color:rgba(248,113,113,.42);background:rgba(42,8,18,.68)}#looi-state-recovery[data-state="error"] .looi-state-dot{background:#f87171;box-shadow:0 0 16px rgba(248,113,113,.9)}:root[data-looi-recovery="retry"] #looi-state-recovery{animation:looiRecoveryNudge .45s ease}:root[data-looi-recovery="online"] #looi-state-recovery{border-color:rgba(74,222,128,.45)}@keyframes looiStateDotPulse{0%,100%{opacity:.55;transform:scale(.86)}50%{opacity:1;transform:scale(1.18)}}@keyframes looiRecoveryNudge{0%,100%{transform:translateX(-50%) translateY(0)}35%{transform:translateX(-50%) translateY(-3px)}70%{transform:translateX(-50%) translateY(2px)}}@media(max-width:640px){#looi-state-recovery{top:calc(12px + env(safe-area-inset-top));font-size:11px;padding:8px 11px}}

/* Looi visible auto voice transcript patch */
#looi-auto-transcript{position:fixed;left:50%;bottom:calc(86px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:99998;min-width:min(92vw,520px);max-width:92vw;padding:12px 14px;border:1px solid rgba(0,240,255,.28);border-radius:18px;background:rgba(3,10,24,.78);color:#dffcff;font:500 13px/1.45 'Noto Sans SC',system-ui,sans-serif;box-shadow:0 0 28px rgba(0,240,255,.18);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);pointer-events:none}.looi-auto-line{min-height:18px;white-space:normal;word-break:break-word}.looi-auto-status{color:rgba(180,245,255,.82);font-size:12px}.looi-auto-heard{color:#67e8f9}.looi-auto-reply{color:#fff;margin-top:3px}@media(max-width:640px){#looi-auto-transcript{bottom:calc(74px + env(safe-area-inset-bottom));font-size:12px;padding:10px 12px}}

/* Looi camera visible helper patch */
#looi-camera-helper{position:fixed;left:14px;top:calc(14px + env(safe-area-inset-top));z-index:99997;width:132px;border:1px solid rgba(0,240,255,.28);border-radius:18px;background:rgba(3,10,24,.58);box-shadow:0 0 26px rgba(0,240,255,.16);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);overflow:hidden;color:#dffcff;font:500 11px/1.35 'Noto Sans SC',system-ui,sans-serif}#looi-camera-helper-video{display:block;width:132px;height:96px;object-fit:cover;background:#020617;transform:scaleX(-1)}#looi-camera-helper-status{padding:8px 8px 4px;min-height:30px;color:rgba(220,252,255,.9)}#looi-camera-helper-btn,#looi-camera-observe-btn{width:calc(100% - 12px);margin:4px 6px 8px;border:1px solid rgba(0,240,255,.34);border-radius:999px;background:rgba(0,240,255,.12);color:#dffcff;font:800 11px/1 'Noto Sans SC',system-ui,sans-serif;padding:7px 6px}#looi-camera-observe-btn{margin-top:0;background:rgba(124,58,237,.16)}#looi-camera-observe-btn:disabled{opacity:.55}#looi-camera-helper[data-on="1"] #looi-camera-helper-status{color:#67e8f9}#looi-camera-helper[data-on="1"]{border-color:rgba(0,240,255,.5);box-shadow:0 0 32px rgba(0,240,255,.24)}@media(max-width:640px){#looi-camera-helper{width:118px;left:10px;top:calc(10px + env(safe-area-inset-top))}#looi-camera-helper-video{width:118px;height:84px}}


/* Soul Sync hotfix 20260506: auto-transcript-statebar-merge
   Put auto voice text beside/under the top Looi state bar so it never covers typing. */
#looi-auto-transcript{
  top:calc(18px + env(safe-area-inset-top)) !important;
  bottom:auto !important;
  left:calc(50% + 118px) !important;
  right:auto !important;
  transform:none !important;
  z-index:99997 !important;
  min-width:0 !important;
  width:min(46vw,360px) !important;
  max-width:calc(100vw - 24px) !important;
  padding:8px 12px !important;
  border-radius:18px !important;
  pointer-events:none !important;
}
#looi-auto-transcript .looi-auto-line{min-height:14px !important;font-size:11px !important;line-height:1.28 !important;}
#looi-auto-transcript .looi-auto-heard,
#looi-auto-transcript .looi-auto-reply{white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;}
.input-panel{bottom:max(118px, calc(env(safe-area-inset-bottom,32px) + 92px)) !important;z-index:40 !important;}
.voice-preview{bottom:max(176px, calc(env(safe-area-inset-bottom,32px) + 150px)) !important;z-index:35 !important;}
#looi-auto-voice-btn{z-index:30 !important;}
#ss-huawei-text-fallback{bottom:calc(132px + env(safe-area-inset-bottom)) !important;z-index:45 !important;}
@media(max-width:640px){
  #looi-auto-transcript{
    top:calc(48px + env(safe-area-inset-top)) !important;
    left:50% !important;
    right:auto !important;
    transform:translateX(-50%) !important;
    width:min(92vw,420px) !important;
    max-width:min(92vw,420px) !important;
    padding:7px 10px !important;
  }
}


/* Soul Sync hotfix 20260506: transcript-statebar-real-fusion
   The chat state text and auto voice transcript are one top bar now. */
#looi-state-recovery.looi-statebar-has-transcript{
  top:calc(18px + env(safe-area-inset-top)) !important;
  left:50% !important;
  transform:translateX(-50%) !important;
  z-index:99998 !important;
  display:grid !important;
  grid-template-columns:auto 1fr auto !important;
  grid-template-areas:"dot state retry" "transcript transcript transcript" !important;
  align-items:center !important;
  gap:4px 8px !important;
  width:min(92vw,520px) !important;
  max-width:92vw !important;
  border-radius:18px !important;
  padding:8px 12px !important;
}
#looi-state-recovery.looi-statebar-has-transcript .looi-state-dot{grid-area:dot !important;}
#looi-state-recovery.looi-statebar-has-transcript .looi-state-text{grid-area:state !important;min-width:0 !important;}
#looi-state-recovery.looi-statebar-has-transcript .looi-retry-btn{grid-area:retry !important;}
#looi-state-recovery.looi-statebar-has-transcript .looi-state-transcript{grid-area:transcript !important;min-width:0 !important;width:100% !important;}
#looi-state-recovery .looi-state-transcript .looi-auto-line{min-height:13px !important;font-size:11px !important;line-height:1.25 !important;white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;color:rgba(223,252,255,.88) !important;}
#looi-state-recovery .looi-state-transcript .looi-auto-heard{color:#67e8f9 !important;}
#looi-state-recovery .looi-state-transcript .looi-auto-reply{color:#fff !important;}
#looi-auto-transcript{display:none !important;}
.input-panel{bottom:max(118px, calc(env(safe-area-inset-bottom,32px) + 92px)) !important;z-index:40 !important;}
.voice-preview{bottom:max(176px, calc(env(safe-area-inset-bottom,32px) + 150px)) !important;z-index:35 !important;}
@media(max-width:640px){
  #looi-state-recovery.looi-statebar-has-transcript{top:calc(12px + env(safe-area-inset-top)) !important;width:min(94vw,420px) !important;padding:7px 10px !important;}
}


/* Looi camera bubble integration patch */
.bubbles-container{pointer-events:none!important;overflow:visible!important;max-height:52vh!important;-webkit-mask-image:none!important;mask-image:none!important}.looi-camera-bubble{pointer-events:auto!important;align-self:flex-start;width:min(86vw,280px);max-width:280px;padding:10px 12px 12px!important;margin-bottom:6px;border:1px solid rgba(0,220,255,.38)!important;background:rgba(3,10,24,.62)!important;box-shadow:0 0 26px rgba(0,240,255,.16);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.looi-camera-title{font:800 12px/1.2 'Noto Sans SC',system-ui,sans-serif;color:#dffcff;margin-bottom:7px;letter-spacing:.08em}#looi-camera-bubble-video{display:block;width:100%;height:124px;object-fit:cover;border-radius:14px;background:radial-gradient(circle at 50% 45%,rgba(0,220,255,.12),rgba(2,6,23,.98));border:1px solid rgba(0,240,255,.22);filter:brightness(.9) saturate(1.05)}#looi-camera-bubble-video[data-ready="1"]{box-shadow:inset 0 0 0 1px rgba(103,232,249,.18)}#looi-camera-bubble-status{min-height:18px;margin:7px 0;color:rgba(220,252,255,.9);font:500 12px/1.4 'Noto Sans SC',system-ui,sans-serif;word-break:break-word}.looi-camera-actions{display:flex;gap:6px}.looi-camera-actions button{flex:1;border:1px solid rgba(0,240,255,.34);border-radius:999px;background:rgba(0,240,255,.12);color:#dffcff;font:800 11px/1 'Noto Sans SC',system-ui,sans-serif;padding:7px 4px}.looi-camera-actions button:nth-child(2){background:rgba(124,58,237,.18)}.looi-camera-actions button:disabled{opacity:.55}#looi-camera-status{position:fixed;left:50%;top:calc(14px + env(safe-area-inset-top));transform:translateX(-50%);z-index:80;max-width:min(86vw,420px);padding:8px 12px;border-radius:999px;background:rgba(3,10,24,.78);border:1px solid rgba(0,240,255,.28);box-shadow:0 0 22px rgba(0,240,255,.16);color:#dffcff;font:700 12px/1.3 'Noto Sans SC',system-ui,sans-serif;opacity:0;pointer-events:none;transition:opacity .2s}#looi-camera-status[data-show="1"]{opacity:1}.camera-bg--active{opacity:.82!important}.camera-video{filter:brightness(.78) saturate(1.05)!important}@media(max-width:640px){.looi-camera-bubble{width:min(84vw,240px);max-width:240px;padding:9px 10px 10px!important}#looi-camera-bubble-video{height:104px}.bubbles-container{bottom:calc(50% + 126px)!important}}

/* Emergency mobile UI cleanup: reduce visual clutter and avoid blank camera/video cards */
.looi-eye-outer{width:clamp(96px,26vw,150px)!important;height:clamp(96px,26vw,150px)!important}.looi-eyes-row{gap:clamp(18px,6vw,28px)!important}.looi-eyes-wrap{padding:10px!important}.looi-eye-svg{filter:drop-shadow(0 0 12px rgba(0,220,255,.28))!important}.looi-eye-rect{opacity:.34!important;filter:none!important;stroke:rgba(130,245,255,.55)!important;stroke-width:3!important;fill:rgba(0,190,220,.16)!important}.eyes-center{top:48%!important}.looi-state-label{bottom:-18px!important;color:rgba(160,245,255,.78)!important;font-size:10px!important}.looi-eyes-glow{opacity:.35!important;inset:-18px!important}.camera-bg--active{opacity:.34!important}.camera-video{filter:brightness(.72) saturate(.95)!important}.looi-camera-bubble{display:none!important}html[data-looi-camera="on"] .looi-camera-bubble,html[data-looi-camera="error"] .looi-camera-bubble,html[data-looi-camera="requesting"] .looi-camera-bubble{display:block!important}.looi-camera-bubble{width:min(78vw,220px)!important;max-width:220px!important;padding:8px 9px!important;background:rgba(3,10,24,.52)!important;box-shadow:0 0 18px rgba(0,240,255,.10)!important}.looi-camera-title{font-size:11px!important;margin-bottom:5px!important}#looi-camera-bubble-video{height:82px!important;background:rgba(2,8,20,.72)!important}#looi-camera-bubble-video:not([data-ready="1"]){display:none!important}.looi-camera-actions{gap:5px!important}.looi-camera-actions button{padding:6px 3px!important;font-size:10px!important}.bubbles-container{bottom:calc(50% + 120px)!important;max-height:34vh!important;gap:6px!important}.bubble{font-size:13px!important;line-height:1.45!important;padding:8px 12px!important;border-radius:15px!important}.camera-hint{display:none!important}@media(max-width:640px){.eyes-center{top:47%!important}.looi-eye-outer{width:92px!important;height:92px!important}.looi-eyes-row{gap:18px!important}.bubbles-container{bottom:calc(50% + 94px)!important;width:min(90vw,360px)!important}.controls-bar{bottom:max(18px,calc(env(safe-area-inset-bottom,0px) + 18px))!important}.looi-camera-bubble{width:min(72vw,200px)!important}.looi-camera-actions button:nth-child(3){display:none!important}}

/* Big eyes + unified chat/status/voice fusion */
.looi-eye-outer{width:240px!important;height:240px!important}.looi-eyes-row{gap:36px!important}.looi-eyes-wrap{padding:20px!important}.looi-eye-svg{filter:none!important}.looi-eye-rect{opacity:1!important;filter:url(#eyeGlowLeft)!important;stroke:none!important;stroke-width:0!important;fill:inherit}.looi-eye-outer:nth-child(2) .looi-eye-rect{filter:url(#eyeGlowRight)!important}.looi-eyes-glow{opacity:.72!important;inset:-30px!important}.eyes-center{top:50%!important}.looi-state-label{bottom:-24px!important;color:#00dcffb3!important;font-size:11px!important}.bubbles-container{bottom:calc(50% + 150px)!important;max-height:44vh!important;overflow:visible!important;-webkit-mask-image:none!important;mask-image:none!important;gap:8px!important}.bubble{font-size:15px!important;line-height:1.55!important;padding:10px 16px!important;border-radius:18px!important}.looi-chat-status-bubble{order:-20;align-self:flex-start;display:flex;align-items:center;gap:8px;color:#d0f4ff;background:rgba(0,180,220,.18)!important;border:1px solid rgba(0,220,255,.28)!important;border-radius:18px 18px 18px 6px!important;padding:8px 13px!important;font:700 13px/1.3 'Noto Sans SC',system-ui,sans-serif;box-shadow:0 0 18px rgba(0,220,255,.08)}.looi-chat-status-dot{width:7px;height:7px;border-radius:50%;background:#22d3ee;box-shadow:0 0 10px rgba(34,211,238,.8);flex:0 0 auto}.looi-chat-status-text{white-space:nowrap}.looi-chat-transcript{order:999;position:relative!important;inset:auto!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;transform:none!important;z-index:auto!important;width:auto!important;min-width:0!important;max-width:min(88%,420px)!important;margin:0!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;align-self:flex-start;pointer-events:auto!important;color:#d0f4ff!important;font:500 13px/1.45 'Noto Sans SC',system-ui,sans-serif}.looi-chat-transcript .looi-auto-line{display:none;margin:4px 0;padding:8px 12px;border-radius:16px;background:rgba(0,180,220,.16);border:1px solid rgba(0,220,255,.22);word-break:break-word;white-space:normal}.looi-chat-transcript .looi-auto-line:not(:empty){display:block}.looi-chat-transcript .looi-auto-status{color:rgba(190,245,255,.88);font-size:12px}.looi-chat-transcript .looi-auto-heard{color:#e8d8ff;background:rgba(120,60,220,.20);border-color:rgba(160,100,255,.25);border-bottom-right-radius:6px;align-self:flex-end}.looi-chat-transcript .looi-auto-reply{color:#fff;border-bottom-left-radius:6px}#looi-state-recovery{display:none!important}.looi-state-transcript{display:none!important}#looi-auto-transcript{display:block}.camera-hint{display:none!important}@media(max-width:640px){.looi-eye-outer{width:190px!important;height:190px!important}.looi-eyes-row{gap:28px!important}.looi-eyes-wrap{padding:14px!important}.bubbles-container{bottom:calc(50% + 128px)!important;width:min(92vw,420px)!important;max-height:38vh!important}.looi-chat-status-bubble{font-size:12px!important;padding:7px 11px!important}.bubble{font-size:14px!important;padding:9px 13px!important}.looi-chat-transcript{max-width:min(88%,360px)!important}}


/* Soul Sync hotfix 20260506: chatbox composer polish
   Keep manual text input clearly separated from bottom controls on /chat. */
.immersive-root .input-panel{
  bottom:max(148px, calc(env(safe-area-inset-bottom,32px) + 122px)) !important;
  z-index:60 !important;
  width:min(92vw,460px) !important;
}
.immersive-root .input-wrap{
  border-radius:24px !important;
  border-color:rgba(124,92,252,.46) !important;
  background:rgba(10,12,28,.92) !important;
  box-shadow:0 18px 54px rgba(0,0,0,.42),0 0 24px rgba(124,92,252,.16) !important;
}
.immersive-root .controls-bar{
  bottom:max(24px, calc(env(safe-area-inset-bottom,0px) + 24px)) !important;
  z-index:45 !important;
}
.immersive-root:has(.input-panel) .controls-bar{
  opacity:.42 !important;
  transform:translateX(-50%) scale(.92) !important;
}
.immersive-root:has(.input-panel) #looi-auto-voice-btn{
  opacity:.58 !important;
}
.immersive-root .bubbles-container{
  top:max(66px, calc(env(safe-area-inset-top,0px) + 58px)) !important;
  bottom:auto !important;
  max-height:min(34vh,260px) !important;
  overflow:visible !important;
}
#looi-state-recovery{
  pointer-events:none !important;
}
@media(max-width:640px){
  .immersive-root .input-panel{
    bottom:max(132px, calc(env(safe-area-inset-bottom,0px) + 112px)) !important;
    width:min(92vw,420px) !important;
  }
  .immersive-root .input-wrap{
    padding:7px 7px 7px 16px !important;
  }
  .immersive-root .text-input{
    font-size:16px !important;
  }
  .immersive-root .controls-bar{
    bottom:max(18px, calc(env(safe-area-inset-bottom,0px) + 18px)) !important;
  }
  .immersive-root .bubbles-container{
    top:max(58px, calc(env(safe-area-inset-top,0px) + 50px)) !important;
    max-height:30vh !important;
  }
  #looi-auto-voice-btn{
    bottom:max(14px, calc(env(safe-area-inset-bottom,0px) + 14px)) !important;
  }
}
@media(max-height:560px){
  .immersive-root .input-panel{
    bottom:max(94px, calc(env(safe-area-inset-bottom,0px) + 84px)) !important;
  }
  .immersive-root .bubbles-container{
    max-height:28vh !important;
  }
}


/* Soul Sync hotfix 20260506: hide-duplicate-top-thinking-status
   Keep only the in-chat thinking/status bubble; remove the extra top floating bar. */
#looi-state-recovery{
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
}
#looi-state-recovery.looi-statebar-has-transcript{
  display:none !important;
  visibility:hidden !important;
}
.immersive-root .bubbles-container{
  top:max(24px, calc(env(safe-area-inset-top,0px) + 18px)) !important;
}
@media(max-width:640px){
  .immersive-root .bubbles-container{
    top:max(18px, calc(env(safe-area-inset-top,0px) + 14px)) !important;
  }
}


/* Soul Sync hotfix 20260506: auto-voice-transcript-visible-in-chat
   Auto voice subtitles are part of the current chat surface, not a hidden old overlay. */
#looi-auto-transcript.looi-chat-transcript{
  display:block !important;
  visibility:visible !important;
  position:relative !important;
  inset:auto !important;
  left:auto !important;
  right:auto !important;
  top:auto !important;
  bottom:auto !important;
  transform:none !important;
  z-index:auto !important;
  width:auto !important;
  min-width:0 !important;
  max-width:min(88%,420px) !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  align-self:flex-start !important;
  pointer-events:auto !important;
  color:#d0f4ff !important;
}
#looi-auto-transcript.looi-chat-transcript .looi-auto-line{
  display:none !important;
  margin:4px 0 !important;
  padding:8px 12px !important;
  border-radius:16px !important;
  background:rgba(0,180,220,.16) !important;
  border:1px solid rgba(0,220,255,.22) !important;
  word-break:break-word !important;
  white-space:normal !important;
}
#looi-auto-transcript.looi-chat-transcript .looi-auto-line:not(:empty){
  display:block !important;
}
#looi-auto-transcript.looi-chat-transcript .looi-auto-status{
  color:rgba(190,245,255,.88) !important;
  font-size:12px !important;
}
#looi-auto-transcript.looi-chat-transcript .looi-auto-heard{
  color:#e8d8ff !important;
  background:rgba(120,60,220,.20) !important;
  border-color:rgba(160,100,255,.25) !important;
  border-bottom-right-radius:6px !important;
  align-self:flex-end !important;
}
#looi-auto-transcript.looi-chat-transcript .looi-auto-reply{
  color:#fff !important;
  border-bottom-left-radius:6px !important;
}

/* Soul Sync hotfix 20260506: subtitle-history-scroll
   Allow users to scroll subtitle/chat bubbles upward to read earlier conversation. */
.immersive-root .bubbles-container{
  pointer-events:auto !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  -webkit-overflow-scrolling:touch !important;
  overscroll-behavior:contain !important;
  touch-action:pan-y !important;
  scrollbar-width:thin !important;
  scrollbar-color:rgba(103,232,249,.42) transparent !important;
  padding-right:6px !important;
  -webkit-mask-image:none !important;
  mask-image:none !important;
}
.immersive-root .bubbles-container::-webkit-scrollbar{
  width:4px !important;
  height:4px !important;
}
.immersive-root .bubbles-container::-webkit-scrollbar-thumb{
  background:rgba(103,232,249,.42) !important;
  border-radius:999px !important;
}
.immersive-root .bubbles-container .bubble,
.immersive-root .bubbles-container .looi-chat-transcript,
.immersive-root .bubbles-container .looi-chat-status-bubble{
  pointer-events:auto !important;
}
@media(max-width:640px){
  .immersive-root .bubbles-container{
    max-height:36vh !important;
  }
}
.immersive-root .bubbles-container .bubble,
.immersive-root .bubbles-container .looi-chat-transcript,
.immersive-root .bubbles-container .looi-chat-status-bubble{
  flex-shrink:0 !important;
}
.immersive-root .bubbles-container{
  justify-content:flex-start !important;
}

/* Soul Sync hotfix 20260506: camera-card-no-subtitle-overlap
   Put the camera/vision card after subtitles and constrain long vision JSON so it never covers top text. */
.immersive-root .looi-camera-bubble{
  order:900 !important;
  margin-top:8px !important;
  max-height:min(24vh,180px) !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  -webkit-overflow-scrolling:touch !important;
  overscroll-behavior:contain !important;
}
.immersive-root .looi-camera-bubble #looi-camera-bubble-video{
  max-height:72px !important;
}
.immersive-root .looi-camera-bubble #looi-camera-bubble-status{
  max-height:54px !important;
  overflow:auto !important;
  -webkit-overflow-scrolling:touch !important;
  word-break:break-word !important;
}
@media(max-width:640px){
  .immersive-root .looi-camera-bubble{
    width:min(70vw,190px) !important;
    max-width:190px !important;
    max-height:22vh !important;
    padding:7px 8px !important;
  }
  .immersive-root .looi-camera-title{font-size:10px !important;margin-bottom:4px !important;}
  .immersive-root .looi-camera-bubble #looi-camera-bubble-video{max-height:58px !important;}
  .immersive-root .looi-camera-actions button{font-size:10px !important;padding:6px 3px !important;}
}
.immersive-root #looi-auto-transcript.looi-chat-transcript{
  order:50 !important;
}
.immersive-root .looi-camera-bubble{
  order:900 !important;
}

/* Soul Sync hotfix 20260506: hide-redundant-camera-bubble
   The background video already shows the camera; no extra camera card should cover subtitles. */
.looi-camera-bubble{
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
}
#looi-camera-helper{
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
}
#looi-camera-status{
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
}


/* Soul Sync hotfix 20260506: restore-camera-bg-visible
   Camera view belongs to the virtual background. Keep it visible when active, without showing extra cards. */
.immersive-root .camera-bg.camera-bg--active,
html[data-looi-camera="on"] .immersive-root .camera-bg{
  opacity:.72 !important;
  visibility:visible !important;
  display:block !important;
  z-index:0 !important;
}
.immersive-root .camera-bg.camera-bg--active .camera-video,
html[data-looi-camera="on"] .immersive-root .camera-video{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  filter:brightness(.72) saturate(.95) !important;
}
.immersive-root .immersive-overlay{
  background:radial-gradient(80% 60% at 50% 55%,rgba(10,10,30,.42) 0%,rgba(5,5,16,.58) 100%) !important;
}


/* Soul Sync hotfix 20260506: restore-camera-bg-visible-v2 final cascade order */
html[data-looi-camera="on"] .camera-bg,
html[data-looi-camera="on"] .immersive-root .camera-bg,
.immersive-root .camera-bg.camera-bg--active{
  opacity:.72 !important;
  visibility:visible !important;
  display:block !important;
  z-index:0 !important;
}
html[data-looi-camera="on"] .camera-bg .camera-video,
html[data-looi-camera="on"] .immersive-root .camera-video,
.immersive-root .camera-bg.camera-bg--active .camera-video{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  filter:brightness(.72) saturate(.95) !important;
}
html[data-looi-camera="on"] .immersive-overlay,
.immersive-root:has(.camera-bg.camera-bg--active) .immersive-overlay{
  background:radial-gradient(80% 60% at 50% 55%,rgba(10,10,30,.34) 0%,rgba(5,5,16,.50) 100%) !important;
}

/* Soul Sync 20260506: soul-chat-controller-final-overrides */
#looi-camera-bubble,.looi-camera-bubble,#looi-camera-helper,#looi-camera-status{
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
  opacity:0 !important;
  max-width:0 !important;
  max-height:0 !important;
  overflow:hidden !important;
}
html[data-looi-camera="on"] .camera-bg,
html[data-looi-camera="on"] .immersive-root .camera-bg,
.immersive-root .camera-bg.camera-bg--active{
  opacity:.72 !important;
  visibility:visible !important;
  display:block !important;
  z-index:0 !important;
}
html[data-looi-camera="on"] .camera-bg .camera-video,
html[data-looi-camera="on"] .immersive-root .camera-video,
.immersive-root .camera-bg.camera-bg--active .camera-video{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  filter:brightness(.72) saturate(.95) !important;
}
.immersive-root .bubbles-container{
  pointer-events:auto !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  -webkit-overflow-scrolling:touch !important;
  overscroll-behavior:contain !important;
  touch-action:pan-y !important;
  justify-content:flex-start !important;
  -webkit-mask-image:none !important;
  mask-image:none !important;
}
.immersive-root .bubbles-container .bubble,
.immersive-root .bubbles-container .looi-chat-transcript,
.immersive-root .bubbles-container .looi-chat-status-bubble{
  pointer-events:auto !important;
  flex-shrink:0 !important;
}

/* Soul Sync hotfix 20260506: fast-voice-status-restore
   Restore immediate in-chat answering/speaking feedback after controller cleanup. */
#looi-auto-transcript.looi-chat-transcript{
  display:block !important;
  order:40 !important;
  opacity:1 !important;
}
#looi-auto-transcript.looi-chat-transcript .looi-auto-status:not(:empty){
  display:inline-flex !important;
  align-items:center !important;
  gap:6px !important;
  animation:ss-status-pulse 1.05s ease-in-out infinite alternate !important;
}
#looi-auto-transcript.looi-chat-transcript .looi-auto-status:not(:empty)::before{
  content:'✦';
  color:#67e8f9;
}
@keyframes ss-status-pulse{from{opacity:.76}to{opacity:1}}

/* Soul Sync hotfix 20260507: subtitle-scrollfix-voice-reply */
.immersive-root .bubbles-container{
  pointer-events:auto !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  -webkit-overflow-scrolling:touch !important;
  overscroll-behavior:contain !important;
  touch-action:pan-y !important;
  scrollbar-width:thin !important;
  justify-content:flex-start !important;
  scroll-behavior:smooth !important;
}
.immersive-root .bubbles-container .bubble,
.immersive-root .bubbles-container .looi-chat-transcript,
.immersive-root .bubbles-container .looi-chat-status-bubble{
  flex-shrink:0 !important;
  pointer-events:auto !important;
}


/* Soul Sync 20260507: doubao-streaming-subtitle-history */
.soul-doubao-subtitle-history{
  position:absolute !important;
  left:50% !important;
  top:24px !important;
  transform:translateX(-50%) !important;
  z-index:18 !important;
  width:min(92vw,480px) !important;
  max-height:min(24vh,168px) !important;
  pointer-events:none !important;
  -webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 18px, #000 calc(100% - 4px)) !important;
  mask-image:linear-gradient(to bottom, transparent 0, #000 18px, #000 calc(100% - 4px)) !important;
}
.soul-doubao-subtitle-list{
  max-height:min(24vh,168px) !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  overscroll-behavior:contain !important;
  -webkit-overflow-scrolling:touch !important;
  touch-action:pan-y !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:flex-start !important;
  align-items:stretch !important;
  gap:7px !important;
  padding:0 4px 10px 4px !important;
  pointer-events:auto !important;
  scrollbar-width:thin !important;
  scrollbar-color:rgba(103,232,249,.38) transparent !important;
}
.soul-doubao-subtitle-line{
  flex:0 0 auto !important;
  max-width:86% !important;
  padding:8px 11px !important;
  border-radius:15px !important;
  color:#eaf6ff !important;
  font:500 13px/1.45 'Noto Sans SC',system-ui,sans-serif !important;
  letter-spacing:.01em !important;
  word-break:break-word !important;
  white-space:pre-wrap !important;
  box-shadow:0 8px 22px rgba(0,0,0,.16) !important;
  backdrop-filter:blur(12px) !important;
  -webkit-backdrop-filter:blur(12px) !important;
}
.soul-doubao-subtitle-user{
  align-self:flex-end !important;
  background:rgba(124,58,237,.24) !important;
  border:1px solid rgba(167,139,250,.32) !important;
  border-bottom-right-radius:6px !important;
  text-align:left !important;
}
.soul-doubao-subtitle-ai{
  align-self:flex-start !important;
  background:rgba(6,182,212,.18) !important;
  border:1px solid rgba(103,232,249,.28) !important;
  border-bottom-left-radius:6px !important;
}
.soul-doubao-subtitle-line[data-final="0"]{
  opacity:.78 !important;
}
#looi-auto-transcript.soul-doubao-status .looi-auto-heard,
#looi-auto-transcript.soul-doubao-status .looi-auto-reply{
  display:none !important;
}
#looi-auto-transcript.soul-doubao-status{
  pointer-events:none !important;
}
@media(max-width:640px){
  .soul-doubao-subtitle-history{top:18px !important;width:min(92vw,420px) !important;max-height:min(24vh,156px) !important;}
  .soul-doubao-subtitle-list{max-height:min(24vh,156px) !important;gap:6px !important;}
  .soul-doubao-subtitle-line{font-size:12px !important;line-height:1.42 !important;padding:7px 10px !important;max-width:88% !important;}
}


/* Soul Sync 20260507: doubao-subtitle-overlap-cleanup */
html[data-soul-doubao-subtitles="on"] .immersive-root .bubbles-container > .bubble,
html[data-soul-doubao-subtitles="on"] .immersive-root .bubbles-container > .looi-chat-status-bubble{
  display:none !important;
}
html[data-soul-doubao-subtitles="on"] .immersive-root .bubbles-container{
  pointer-events:none !important;
  max-height:0 !important;
  height:0 !important;
  min-height:0 !important;
  overflow:hidden !important;
  padding:0 !important;
  gap:0 !important;
}
html[data-soul-doubao-subtitles="on"] #looi-auto-transcript.looi-chat-transcript{
  display:none !important;
}
.soul-doubao-subtitle-history{
  background:linear-gradient(180deg,rgba(3,10,24,.30),rgba(3,10,24,.10)) !important;
  border-radius:18px !important;
  padding:2px 0 !important;
}
.soul-doubao-subtitle-list{
  scroll-padding-bottom:10px !important;
}


/* Soul Sync 20260518: soul-app-chat-remove-eye-underline-20260518 */
.looi-state-label{
  display:none !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}
.looi-mouth-wrap,.looi-mouth-svg{
  display:none !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}
@media (max-width:640px){
  /* soul-app-chat-mobile-polish-20260518 */
  .immersive-root{min-height:100svh !important;overflow:hidden !important;}
  .eyes-center{top:47% !important;width:100vw !important;}
  .looi-eyes-wrap{padding:12px !important;max-width:100vw !important;}
  .looi-eyes-row{gap:clamp(16px,5.5vw,26px) !important;max-width:96vw !important;}
  .looi-eye-outer{width:clamp(104px, 34vw, 156px) !important;height:clamp(104px, 34vw, 156px) !important;}
  .looi-eyes-glow{inset:-18px !important;opacity:.48 !important;}
  .immersive-root .controls-bar{bottom:max(14px, calc(env(safe-area-inset-bottom,0px) + 14px)) !important;gap:16px !important;}
  #looi-auto-voice-btn{right:12px !important;bottom:max(14px, calc(env(safe-area-inset-bottom,0px) + 14px)) !important;padding:10px 12px !important;font-size:13px !important;}
  #looi-memory-dock{top:calc(10px + env(safe-area-inset-top,0px)) !important;right:10px !important;}
  #looi-memory-dock .looi-memory-btn{padding:7px 10px !important;font-size:12px !important;}
  .soul-doubao-subtitle-history{top:calc(16px + env(safe-area-inset-top,0px)) !important;max-height:min(22vh,142px) !important;width:min(92vw,420px) !important;}
  .immersive-root .input-panel{bottom:max(84px, calc(env(safe-area-inset-bottom,0px) + 78px)) !important;width:min(92vw,420px) !important;}
}


/* Soul Sync 20260520: mobile-chat-fullscreen-step3
   Mobile chat should use the whole phone viewport: readable eyes, bottom-safe controls, and complete text composer/send button. */
@media (max-width:640px){
  html,body,#root{width:100vw !important;height:100dvh !important;min-height:100svh !important;overflow:hidden !important;}
  body{position:fixed !important;inset:0 !important;overscroll-behavior:none !important;}
  .immersive-root{
    width:100vw !important;
    height:100dvh !important;
    min-height:100svh !important;
    max-height:100dvh !important;
    overflow:hidden !important;
    padding:0 !important;
    touch-action:manipulation !important;
  }
  .camera-bg,.immersive-bg,.immersive-overlay{position:fixed !important;inset:0 !important;width:100vw !important;height:100dvh !important;}
  .eyes-center{
    top:43% !important;
    left:50% !important;
    width:100vw !important;
    transform:translate(-50%,-50%) !important;
  }
  .looi-eyes-wrap{max-width:100vw !important;padding:8px !important;}
  .looi-eyes-row{gap:clamp(14px,5vw,22px) !important;max-width:96vw !important;justify-content:center !important;}
  .looi-eye-outer{width:clamp(98px,32vw,148px) !important;height:clamp(98px,32vw,148px) !important;}
  .soul-doubao-subtitle-history{
    top:calc(10px + env(safe-area-inset-top,0px)) !important;
    width:min(94vw,430px) !important;
    max-height:min(20vh,132px) !important;
    z-index:30 !important;
  }
  .soul-doubao-subtitle-list{max-height:min(20vh,132px) !important;}
  .immersive-root .bubbles-container{
    top:calc(10px + env(safe-area-inset-top,0px)) !important;
    left:50% !important;
    transform:translateX(-50%) !important;
    width:min(94vw,430px) !important;
    max-height:min(20vh,132px) !important;
  }
  .immersive-root .input-panel{
    position:fixed !important;
    left:50% !important;
    right:auto !important;
    transform:translateX(-50%) !important;
    bottom:max(76px, calc(env(safe-area-inset-bottom,0px) + 70px)) !important;
    width:min(94vw,430px) !important;
    max-width:430px !important;
    z-index:80 !important;
  }
  .immersive-root .input-wrap{
    min-height:50px !important;
    padding:6px 6px 6px 14px !important;
    border-radius:22px !important;
  }
  .immersive-root .text-input{
    min-width:0 !important;
    font-size:16px !important;
    line-height:22px !important;
  }
  .immersive-root .send-btn,.immersive-root .input-wrap button{
    flex:0 0 40px !important;
    width:40px !important;
    height:40px !important;
    min-width:40px !important;
    min-height:40px !important;
  }
  .immersive-root .controls-bar{
    position:fixed !important;
    left:50% !important;
    transform:translateX(-50%) !important;
    bottom:max(14px, calc(env(safe-area-inset-bottom,0px) + 12px)) !important;
    z-index:70 !important;
    gap:14px !important;
  }
  #looi-auto-voice-btn{
    position:fixed !important;
    right:10px !important;
    bottom:max(14px, calc(env(safe-area-inset-bottom,0px) + 12px)) !important;
    z-index:72 !important;
    padding:10px 11px !important;
    font-size:12px !important;
    max-width:116px !important;
    white-space:nowrap !important;
  }
  #looi-memory-dock{top:calc(8px + env(safe-area-inset-top,0px)) !important;right:8px !important;z-index:74 !important;}
  #looi-memory-dock .looi-memory-btn{padding:6px 9px !important;font-size:11px !important;}
}
@media (max-width:380px){
  #looi-auto-voice-btn{font-size:11px !important;max-width:104px !important;padding:9px 9px !important;}
  .immersive-root .controls-bar{gap:10px !important;}
  .immersive-root .input-panel{width:calc(100vw - 20px) !important;}
}


/* Soul Sync hotfix 20260524-2254: remove-separate-subtitle-overlay
   Remove old independent Doubao subtitle panel behind typing UI; keep chat/history in the normal bubbles lane. */
#soul-doubao-subtitle-history,
.soul-doubao-subtitle-history{
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
  opacity:0 !important;
  max-height:0 !important;
  overflow:hidden !important;
}
html[data-soul-doubao-subtitles="on"] .immersive-root .bubbles-container{
  pointer-events:auto !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  max-height:min(34vh,260px) !important;
  height:auto !important;
  min-height:0 !important;
  opacity:1 !important;
  padding:0 18px !important;
  gap:8px !important;
}


/* soul-chat-ui-polish-20260603: glass memory card, emotion aura, human typewriter, non-blocking history overlay */
:root{--soul-emotion-aura:rgba(245,198,107,.22);--soul-emotion-aura-2:rgba(103,232,249,.12)}
.immersive-root::after{content:"" !important;position:fixed !important;inset:-18% !important;pointer-events:none !important;z-index:0 !important;background:radial-gradient(circle at 50% 38%,var(--soul-emotion-aura),transparent 34%),radial-gradient(circle at 18% 78%,var(--soul-emotion-aura-2),transparent 30%) !important;filter:blur(34px) saturate(1.15) !important;opacity:.78 !important;transition:background .75s ease,opacity .75s ease !important;animation:soul-emotion-aura-breathe 5.8s ease-in-out infinite !important;}
@keyframes soul-emotion-aura-breathe{0%,100%{opacity:.50;transform:scale(1)}50%{opacity:.88;transform:scale(1.035)}}
.soul-memory-confirm-card{position:relative !important;overflow:hidden !important;border-radius:24px !important;padding:16px 18px !important;border:1px solid rgba(255,232,172,.30) !important;background:linear-gradient(145deg,rgba(255,255,255,.14),rgba(10,12,24,.54) 46%,rgba(245,198,107,.08)) !important;box-shadow:0 24px 78px rgba(0,0,0,.40),0 0 34px rgba(245,198,107,.10),inset 0 1px 0 rgba(255,255,255,.14) !important;backdrop-filter:blur(24px) saturate(1.25) !important;-webkit-backdrop-filter:blur(24px) saturate(1.25) !important;animation:soul-memory-card-enter .38s cubic-bezier(.2,.85,.2,1.08) both !important;}
.soul-memory-confirm-card::before{content:"";position:absolute;inset:-60%;background:conic-gradient(from 220deg,transparent,rgba(255,232,172,.24),transparent 30%,rgba(103,232,249,.14),transparent 62%);animation:soul-memory-card-shimmer 9s linear infinite;z-index:-1;}
.soul-memory-confirm-card.is-saving{pointer-events:none;animation:soul-memory-save-pulse .7s ease-in-out infinite alternate !important}.soul-memory-confirm-card.is-saved{animation:soul-memory-save-burst .72s ease-out both !important}.soul-memory-confirm-actions button[data-ok]{background:linear-gradient(135deg,#ffe8b4,#d89e37) !important;color:#130b03 !important;font-weight:900 !important}.soul-memory-confirm-actions button[data-no]{background:rgba(255,255,255,.08) !important;color:#eaf6ff !important;border:1px solid rgba(255,255,255,.10) !important}
@keyframes soul-memory-card-enter{from{opacity:0;transform:translateY(12px) scale(.96);filter:blur(8px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
@keyframes soul-memory-card-shimmer{to{transform:rotate(360deg)}}
@keyframes soul-memory-save-pulse{from{box-shadow:0 24px 78px rgba(0,0,0,.40),0 0 24px rgba(245,198,107,.16)}to{box-shadow:0 28px 96px rgba(0,0,0,.45),0 0 56px rgba(103,232,249,.22)}}
@keyframes soul-memory-save-burst{0%{opacity:1;transform:scale(1)}42%{transform:scale(1.025);box-shadow:0 0 0 1px rgba(255,255,255,.18),0 0 80px rgba(245,198,107,.34)}100%{opacity:0;transform:translateY(-10px) scale(.94)}}
.soul-doubao-subtitle-ai[data-final="0"]::after{content:"";display:inline-block;width:6px;height:1.1em;margin-left:3px;vertical-align:-2px;background:rgba(255,232,172,.85);animation:soul-type-caret .9s steps(1,end) infinite}@keyframes soul-type-caret{50%{opacity:0}}
.soul-chat-history-handle{right:12px !important;top:50% !important;border-radius:999px !important;writing-mode:horizontal-tb !important;padding:10px 13px !important;background:rgba(8,12,26,.56) !important;backdrop-filter:blur(18px) saturate(1.18) !important;-webkit-backdrop-filter:blur(18px) saturate(1.18) !important;box-shadow:0 18px 52px rgba(0,0,0,.34) !important;}
.soul-chat-history-drawer{right:14px !important;top:max(76px,calc(env(safe-area-inset-top,0px) + 72px)) !important;bottom:max(76px,calc(env(safe-area-inset-bottom,0px) + 74px)) !important;width:min(360px,calc(100vw - 28px)) !important;border-radius:24px !important;border:1px solid rgba(255,255,255,.13) !important;background:linear-gradient(180deg,rgba(8,12,26,.58),rgba(8,10,20,.46)) !important;box-shadow:0 28px 84px rgba(0,0,0,.34) !important;backdrop-filter:blur(24px) saturate(1.18) !important;-webkit-backdrop-filter:blur(24px) saturate(1.18) !important;transform:translateX(calc(100% + 40px)) scale(.98) !important;pointer-events:none !important;}
.soul-chat-history-drawer[data-open="1"]{transform:translateX(0) scale(1) !important;pointer-events:auto !important;}
.soul-chat-history-drawer::before{content:"soul-history-drawer-nonblocking";position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.soul-chat-history-list{background:transparent !important}.soul-chat-history-item{background:rgba(255,255,255,.07) !important;backdrop-filter:blur(10px) !important;-webkit-backdrop-filter:blur(10px) !important}
@media(max-width:520px){.soul-chat-history-handle{bottom:122px !important;top:auto !important;right:10px !important}.soul-chat-history-drawer{top:max(58px,calc(env(safe-area-inset-top,0px) + 52px)) !important;bottom:max(96px,calc(env(safe-area-inset-bottom,0px) + 92px)) !important;right:8px !important;width:calc(100vw - 16px) !important}}


/* soul-continuity-breathing-light-20260603 + soul-minimal-particles-20260603 */
.soul-continuity-prompt{position:relative !important;overflow:hidden !important;border-color:rgba(103,232,249,.30) !important;box-shadow:0 18px 54px rgba(0,0,0,.26),0 0 28px rgba(103,232,249,.10) !important;}
.soul-continuity-prompt::before{content:"";position:absolute;left:12px;top:12px;width:9px;height:9px;border-radius:50%;background:#9ff7ff;box-shadow:0 0 0 0 rgba(103,232,249,.38),0 0 24px rgba(103,232,249,.9);animation:soul-continuity-breathe 2.8s ease-in-out infinite;}
.soul-continuity-prompt::after{content:"";position:absolute;inset:-40%;background:radial-gradient(circle at 12% 18%,rgba(103,232,249,.16),transparent 18rem);opacity:.74;pointer-events:none;animation:soul-continuity-aurora 5.8s ease-in-out infinite;}
.soul-continuity-label,.soul-continuity-text,.soul-continuity-close{position:relative;z-index:1}.soul-continuity-label{padding-left:15px;}
@keyframes soul-continuity-breathe{0%,100%{transform:scale(.82);opacity:.62;box-shadow:0 0 0 0 rgba(103,232,249,.28),0 0 18px rgba(103,232,249,.72)}50%{transform:scale(1.18);opacity:1;box-shadow:0 0 0 10px rgba(103,232,249,0),0 0 34px rgba(255,232,172,.72)}}
@keyframes soul-continuity-aurora{0%,100%{transform:translateX(-2%) rotate(0deg);opacity:.46}50%{transform:translateX(4%) rotate(8deg);opacity:.82}}
.soul-chat-particle-layer{position:fixed;inset:0;z-index:1;pointer-events:none;overflow:hidden;mix-blend-mode:screen;}
.soul-chat-particle-layer i{position:absolute;left:var(--x);bottom:-16px;width:var(--s);height:var(--s);border-radius:50%;background:rgba(255,232,172,var(--o));box-shadow:0 0 12px rgba(245,198,107,.45);animation:soul-particle-drift 14s linear infinite;animation-delay:var(--d);}
.soul-chat-particle-layer i:nth-child(3n){background:rgba(103,232,249,.28);box-shadow:0 0 12px rgba(103,232,249,.38)}
@keyframes soul-particle-drift{0%{transform:translate3d(0,0,0) scale(.65);opacity:0}10%{opacity:1}80%{opacity:.72}100%{transform:translate3d(18px,-110vh,0) scale(1.1);opacity:0}}
