.c21ava{--cyan:#5ceaff;--blue:#389df5;--ink:#06101e;--line:rgba(108,213,255,.18);position:relative;isolation:isolate;overflow:hidden;min-height:760px;background:radial-gradient(ellipse at 29% 42%,#123150 0%,#07192f 31%,#050c19 76%);color:#eefbff;font:400 15px/1.5 Inter,system-ui,-apple-system,Segoe UI,sans-serif}.c21ava *{box-sizing:border-box}.c21ava button,.c21ava input{font:inherit}.c21ava button{cursor:pointer}.c21ava__grid{pointer-events:none;position:absolute;inset:0;opacity:.24;background-image:linear-gradient(rgba(61,180,246,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(61,180,246,.16) 1px,transparent 1px);background-size:55px 55px;mask-image:linear-gradient(90deg,black,transparent 90%)}.c21ava__head,.c21ava__footer{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:22px clamp(22px,4vw,65px);border-bottom:1px solid var(--line)}.c21ava__brand{display:flex;gap:12px;align-items:center;color:white!important;text-decoration:none!important;font-size:15px;letter-spacing:.16em;font-weight:800}.c21ava__brand small{display:block;font-size:8px;font-weight:500;letter-spacing:.18em;color:#94bad0}.c21ava__brand-mark{display:grid;place-items:center;width:43px;height:43px;border:1px solid #48cbe7;color:#7befff;letter-spacing:-.13em;font-size:19px}.c21ava__brand-mark span{font-size:13px}.c21ava__head-right{display:flex;align-items:center;gap:18px}.c21ava__status{font-size:10px;font-weight:700;letter-spacing:.19em;color:#87d5e7}.c21ava__status i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#76ecab;box-shadow:0 0 12px #76ecab;margin-right:8px}.c21ava__icon{border:1px solid var(--line);background:rgba(30,80,111,.2);border-radius:50%;width:32px;height:32px;color:#bdefff}.c21ava__close{display:none}.c21ava__layout{position:relative;z-index:1;display:grid;grid-template-columns:1.08fr 1fr;max-width:1500px;margin:0 auto;min-height:640px}.c21ava__visual{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:35px 25px;position:relative}.c21ava__eyebrow{font-size:10px;letter-spacing:.23em;color:#a1e8fb;align-self:flex-start}.c21ava__eyebrow span{color:#4989a3}.c21ava__stage{width:min(100%,480px);aspect-ratio:1;position:relative;display:grid;place-items:center;margin:5px 0}.c21ava__halo,.c21ava__tickring{position:absolute;border-radius:50%;border:1px solid #4dbce377;box-shadow:0 0 28px #008cbd26,inset 0 0 22px #009bc130}.c21ava__halo.h1{width:94%;height:94%;border-style:dashed;animation:c21spin 34s linear infinite}.c21ava__halo.h2{width:77%;height:77%;border:2px solid transparent;border-top-color:#65ddff;border-bottom-color:#126591;animation:c21spin 13s linear infinite reverse}.c21ava__halo.h3{width:62%;height:62%;border:1px solid #2daed9;border-left-color:transparent;animation:c21spin 11s linear infinite}.c21ava__tickring{width:104%;height:104%;border:1px dotted #46d9ff54;animation:c21spin 72s linear infinite reverse}.c21ava__orb{width:48%;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;position:relative;background:radial-gradient(circle at 39% 35%,#5cdaef 0%,#1484c4 12%,#0a426c 34%,#07233e 65%,#030f1f 100%);border:2px solid #82e9ff;box-shadow:0 0 22px #4dcaff,0 0 85px #0082d87c,inset 0 0 42px #17c3ff8f;animation:c21breathe 4s ease-in-out infinite}.c21ava__shine{position:absolute;inset:13%;border-radius:50%;border:1px solid #b1faff60;box-shadow:inset 0 0 50px #1b8ed473;transform:rotate(-24deg)}.c21ava__avatar{display:none;position:relative;width:70%;height:85%;border:2px solid #77ebff;border-radius:46% 46% 45% 45%;background:linear-gradient(145deg,#58dbf766,#09548644);box-shadow:inset 0 0 27px #9ef4ff80,0 0 20px #58dbf788}.c21ava__av-eye{position:absolute;top:42%;width:15%;height:6%;border-radius:50%;background:#beffff;box-shadow:0 0 20px #bfffff}.c21ava__av-eye.left{left:22%}.c21ava__av-eye.right{right:22%}.c21ava__av-mouth{position:absolute;left:34%;bottom:24%;width:32%;height:7%;border-bottom:2px solid #a4f5ff;border-radius:50%}.c21ava__stage.is-avatar .c21ava__avatar{display:block}.c21ava__stage.is-avatar .c21ava__shine{display:none}.c21ava__equalizer{display:flex;gap:5px;align-items:center;position:absolute;bottom:8%;height:28px}.c21ava__equalizer i{width:3px;height:7px;background:#5cdcf6;box-shadow:0 0 9px #37cdff}.c21ava__stage[data-state=listening] .c21ava__equalizer i,.c21ava__stage[data-state=speaking] .c21ava__equalizer i{animation:c21wave .7s ease-in-out infinite alternate}.c21ava__equalizer i:nth-child(2n){animation-delay:.15s!important}.c21ava__equalizer i:nth-child(3n){animation-delay:.3s!important}.c21ava__corelabel{text-align:center;font-size:27px;letter-spacing:.38em;font-weight:750;text-shadow:0 0 20px #57cbee}.c21ava__corelabel span{display:block;font-size:9px;letter-spacing:.24em;color:#65a9ca;font-weight:400;margin-top:4px}.c21ava__toggle{margin:20px 0 10px;border:1px solid #55c9ee66;color:#b5ecff;background:#0a315055;border-radius:999px;padding:7px 18px;font-size:11px}.c21ava__telemetry{display:flex;gap:22px;flex-wrap:wrap;justify-content:center;margin-top:12px;color:#70a8bf;font-size:9px;letter-spacing:.14em}.c21ava__conversation{min-width:0;display:flex;flex-direction:column;justify-content:center;padding:35px clamp(22px,4vw,60px) 55px 12px}.c21ava__overline{color:var(--cyan);font-size:10px;letter-spacing:.25em;font-weight:700}.c21ava h2{font-size:clamp(32px,4vw,59px)!important;line-height:1.12!important;margin:14px 0 18px!important;font-weight:650!important;color:white!important;letter-spacing:-.04em}.c21ava h2 em{font-style:normal;color:#79d9ff}.c21ava__intro{font-size:14px;line-height:1.7;max-width:540px;color:#a3bed1;margin:0 0 22px}.c21ava__messages{display:flex;flex-direction:column;gap:12px;max-height:265px;min-height:84px;overflow:auto;padding:6px 6px 8px 0;scrollbar-color:#28617e transparent}.c21ava__message{align-self:flex-start;padding:12px 15px;background:rgba(30,82,114,.3);border:1px solid #3377956b;border-radius:14px 14px 14px 3px;color:#d4eefd;max-width:96%;font-size:13px}.c21ava__message.user{align-self:flex-end;background:#113c5a;border-color:#397eaa;border-radius:14px 14px 3px 14px}.c21ava__message b{display:block;color:#7beaff;font-size:10px;letter-spacing:.1em;margin-bottom:4px}.c21ava__message a{color:#92eaff;text-decoration:underline;display:inline-block;margin:8px 12px 0 0}.c21ava__suggestions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.c21ava__suggestions button{font-size:11px;background:#11283b9e;border:1px solid #457c9891;border-radius:99px;padding:8px 12px;color:#aadff3}.c21ava__form{display:flex;align-items:center;border:1px solid #4dcbee77;background:#061b2de8;border-radius:12px;overflow:hidden;box-shadow:0 0 22px #007bd020}.c21ava__form input{background:transparent!important;color:white!important;outline:none;border:0!important;box-shadow:none!important;min-width:0;flex:1;padding:17px 13px!important;font-size:13px!important}.c21ava__form input::placeholder{color:#739cb3}.c21ava__mic{background:transparent;border:0;color:#89dfff;font-size:22px;padding:8px 12px}.c21ava__send{background:linear-gradient(120deg,#30c4ec,#2a82c5);color:#021b2d;border:0;padding:15px 17px;font-weight:800;font-size:12px}.c21ava__disclaimer{font-size:10px;color:#668da4;margin-top:12px}.c21ava__footer{border-top:1px solid var(--line);border-bottom:0;font-size:9px;letter-spacing:.12em;color:#679bb7;gap:12px}.c21ava__footer b{color:#35d8ff;margin:0 5px}.c21ava__footer a{color:#8bdff1!important;text-decoration:none!important}.c21ava__sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.c21ava__launcher{position:fixed;right:25px;bottom:25px;z-index:999990;display:flex;gap:11px;align-items:center;border:1px solid #78e6ff;background:#061a30;color:#d6f9ff;padding:10px 20px 10px 12px;border-radius:100px;box-shadow:0 0 35px #0399cc70;font-size:12px;font-weight:800;letter-spacing:.12em}.c21ava__launch-orb{width:27px;height:27px;border:2px solid #71eaff;border-radius:50%;background:radial-gradient(circle,#7eeaff,#09619e 50%,#011524 76%);box-shadow:0 0 15px #69deff}.c21ava__floating-shell{position:fixed;z-index:999989;right:18px;bottom:85px;width:min(440px,calc(100vw - 30px));height:min(680px,calc(100vh - 105px));box-shadow:0 20px 90px #000b;border:1px solid #4381ad;border-radius:17px;overflow:hidden}.c21ava__floating-shell[hidden]{display:none}.c21ava--float{min-height:100%;height:100%;overflow-y:auto}.c21ava--float .c21ava__layout{display:flex;flex-direction:column;min-height:0}.c21ava--float .c21ava__head{padding:14px 18px}.c21ava--float .c21ava__close{display:block}.c21ava--float .c21ava__visual{padding:5px 18px}.c21ava--float .c21ava__eyebrow,.c21ava--float .c21ava__telemetry,.c21ava--float .c21ava__footer,.c21ava--float .c21ava__corelabel,.c21ava--float .c21ava__toggle,.c21ava--float .c21ava__intro{display:none}.c21ava--float .c21ava__stage{width:145px;margin:0;}.c21ava--float .c21ava__conversation{padding:8px 18px 22px}.c21ava--float h2{font-size:24px!important;margin:6px 0!important}.c21ava--float .c21ava__messages{min-height:125px;max-height:195px}.c21ava--float .c21ava__suggestions button{font-size:10px}.c21ava--float .c21ava__status{font-size:8px}@keyframes c21spin{to{transform:rotate(360deg)}}@keyframes c21breathe{50%{filter:brightness(1.35);transform:scale(1.025)}}@keyframes c21wave{to{height:26px}}@media(max-width:850px){.c21ava__layout{grid-template-columns:1fr}.c21ava__visual{padding:28px 15px 6px}.c21ava__stage{width:min(75vw,335px)}.c21ava__conversation{padding:18px 22px 35px}.c21ava__head,.c21ava__footer{padding:17px 22px}.c21ava__footer span:nth-child(2){display:none}.c21ava__eyebrow{align-self:center}.c21ava__intro{max-width:none}}@media(prefers-reduced-motion:reduce){.c21ava__halo,.c21ava__tickring,.c21ava__orb,.c21ava__equalizer i{animation:none!important}}

/* AVA 2.4 voice session controls */
.c21ava__voice-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}.c21ava__handsfree,.c21ava__interrupt{border:1px solid rgba(100,221,255,.4);background:rgba(6,35,58,.65);color:#e6faff;border-radius:9px;padding:9px 12px;cursor:pointer;font:inherit;font-size:12px}.c21ava__handsfree[aria-pressed="true"]{background:rgba(22,133,148,.42);box-shadow:0 0 14px rgba(50,214,236,.25)}.c21ava__interrupt:disabled{opacity:.45;cursor:default}.c21ava__voice-status{color:#9fd9e6;font-size:11px}.c21ava__voice-tools button:focus-visible{outline:2px solid #71e3ff;outline-offset:2px}@media(max-width:570px){.c21ava__voice-tools{flex-direction:column;align-items:stretch}.c21ava__voice-status{text-align:center}}

/* AVA 2.5 live voice */
.c21ava__live{border:1px solid #74e6ed;background:linear-gradient(100deg,#116383,#123c74);color:white;border-radius:9px;padding:9px 15px;font:inherit;font-weight:700;font-size:12px;cursor:pointer}.c21ava__live[aria-pressed="true"]{background:#097d76;box-shadow:0 0 20px #17d8e455}.c21ava__live:disabled{opacity:.5;cursor:not-allowed}.c21ava__stage[data-state="speaking"] .c21ava__av-mouth{animation:c21talk .35s ease-in-out infinite alternate}@keyframes c21talk{to{height:14%;border-radius:40%;border:2px solid #a4f5ff}}

/* AVA 2.6 — camera gesture affordances */
.c21ava__orb{transform:perspective(650px) rotateY(var(--gesture-rotate,0deg)) rotateX(var(--gesture-tilt,0deg)) scale(var(--gesture-zoom,1));transition:transform .12s ease-out!important}
.c21ava__gesture-controls{margin:1rem auto;max-width:410px;text-align:center;color:#98cce0;font-size:12px}
.c21ava__camera{background:transparent;border:1px solid #43c5d8;border-radius:20px;color:#bcf5ff;padding:8px 13px;cursor:pointer;font:inherit}
.c21ava__camera[aria-pressed=true]{background:#0a5366}
.c21ava__gesture-status{display:inline-block;margin-left:10px;font-size:12px}
.c21ava__gesture-help{font-size:11px;line-height:1.45;opacity:.85}
.c21ava__cam-preview{height:110px;width:160px;position:relative;margin:9px auto;border-radius:9px;overflow:hidden;border:1px solid #238f9c}
.c21ava__cam-preview video,.c21ava__cam-preview canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}
@media (prefers-reduced-motion: reduce){.c21ava__orb{transition:none!important}}

/* AVA 2.7 spatial interface: visible on demand, pointer & keyboard accessible */
.c21ava__workspace{width:min(100%,560px);margin:12px auto 3px;color:#bceafa;border:1px solid #2e89ad88;border-radius:12px;background:#031425b8;box-shadow:inset 0 0 24px #126aa11c;overflow:hidden}
.c21ava__workspace-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;font-size:10px;letter-spacing:.12em}.c21ava__workspace-readout{color:#81b7cb;font-size:9px;letter-spacing:0;text-align:right}
.c21ava__workspace-area{position:relative;display:none;height:290px;overflow:hidden;perspective:950px;background:radial-gradient(ellipse at center,#0c3b58aa,transparent 75%),repeating-linear-gradient(0deg,transparent 0 23px,#52d4e515 24px),repeating-linear-gradient(90deg,transparent 0 23px,#52d4e515 24px)}
.c21ava__workspace.is-open .c21ava__workspace-area{display:block}
.c21ava__panel{position:absolute;left:var(--px);top:var(--py);width:43%;min-width:125px;height:111px;padding:9px 11px;border:1px solid #54dafaaf;background:linear-gradient(120deg,#103f57ed,#041c33f0);box-shadow:0 0 19px #128fc02c,inset 0 0 20px #35a9c91c;border-radius:6px;cursor:grab;touch-action:none;user-select:none;outline-offset:3px;transform:rotateY(-5deg);transition:border-color .1s}
.c21ava__panel:active{cursor:grabbing}.c21ava__panel.is-selected,.c21ava__panel:focus-visible{border-color:#e0ffff;box-shadow:0 0 20px #4ccdf88c;z-index:2}
.c21ava__panel header{display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:.08em;color:#75eaff}.c21ava__panel-focus{font-size:18px;color:#aef4ff;background:transparent;border:0;cursor:pointer}.c21ava__panel p{margin:5px 0!important;color:#90bcd0;font-size:10px}.c21ava__panel strong{display:block;color:#edfcff;font-size:12px;letter-spacing:.09em}.c21ava__panel small{font-size:9px;color:#77b0c8}
.c21ava__workspace-tools{display:flex;gap:7px;flex-wrap:wrap;padding:9px 10px;align-items:center}.c21ava__workspace-tools button{border:1px solid #4cbbdb88;border-radius:5px;background:#113b53;color:#caeeff;padding:6px 9px;font-size:10px}.c21ava__workspace-tools span{color:#80aabd;font-size:9px}.c21ava--float .c21ava__workspace{display:none}@media(max-width:540px){.c21ava__panel{width:46%;height:117px}.c21ava__workspace-bar{flex-wrap:wrap}}

/* 2.8 cinematic AVA avatar and spatial canvas */
.c21ava__stage{isolation:isolate}
.c21ava__hero-avatar{position:absolute;inset:-17% -24% -19%;width:148%;height:141%;object-fit:contain;z-index:6;opacity:0;pointer-events:none;filter:drop-shadow(0 0 26px rgba(56,184,255,.45));transition:opacity .45s ease,transform .35s ease;transform:scale(.94)}
.c21ava__stage.is-avatar .c21ava__hero-avatar{opacity:1;transform:scale(1)}
.c21ava__stage.is-avatar .c21ava__orb{opacity:0.14}
.c21ava__stage[data-state="speaking"] .c21ava__hero-avatar{animation:ava-breathe 1.7s ease-in-out infinite alternate}
.c21ava__stage[data-state="listening"] .c21ava__hero-avatar{filter:drop-shadow(0 0 34px rgba(50,224,255,.7))}
@keyframes ava-breathe{from{transform:scale(1)}to{transform:scale(1.018)}}
.c21ava__three-scene{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.82;touch-action:none;cursor:grab}
.c21ava__three-scene:active{cursor:grabbing}
.c21ava__workspace-area .c21ava__panel{z-index:2}
.c21ava__scene-toggle{border:1px solid rgba(71,206,246,.35);color:#9feeff;background:rgba(7,30,57,.75);border-radius:7px;padding:8px 10px;cursor:pointer}
@media(prefers-reduced-motion:reduce){.c21ava__stage[data-state="speaking"] .c21ava__hero-avatar{animation:none}}

/* AVA 2.9 expressive portrait and persistent resizable workspace */
.c21ava__portrait-expression{position:absolute;inset:0;pointer-events:none;z-index:7;opacity:0;transition:opacity .2s;}
.c21ava__stage.is-avatar[data-state="speaking"] .c21ava__portrait-expression{opacity:1}
.c21ava__portrait-mouth{position:absolute;top:42.1%;left:48.3%;width:7%;height:1.6%;border-radius:50%;background:rgba(31,31,63,.66);box-shadow:0 0 5px rgba(32,137,210,.7);transform-origin:center;animation:ava-expression .32s ease-in-out infinite alternate}
.c21ava__portrait-spark{position:absolute;top:34%;left:48%;width:8%;height:4%;border-radius:50%;background:#68dbff;opacity:.11;filter:blur(15px);animation:ava-expression 1.1s ease-in-out infinite alternate}
@keyframes ava-expression{from{transform:scaleY(.35)}to{transform:scaleY(2.1)}}
.c21ava__panel{max-width:85%;max-height:90%;min-height:100px;overflow:hidden}
.c21ava__resize-handle{position:absolute;right:0;bottom:0;width:22px;height:22px;cursor:nwse-resize;touch-action:none;background:linear-gradient(135deg,transparent 0 46%,#51ddfc 48% 53%,transparent 55% 66%,#51ddfc 68% 73%,transparent 76%);opacity:.85}
.c21ava__workspace-tools .c21ava__spatial-save{border-color:#52e0ab;color:#d0ffea}
@media(prefers-reduced-motion:reduce){.c21ava__portrait-mouth,.c21ava__portrait-spark{animation:none}}


/* AVA 3.0 character-state integration */
.c21ava__hero-avatar[data-avatar-state="welcome"]{filter:drop-shadow(0 0 28px rgba(56,184,255,.5));}
.c21ava__hero-avatar[data-avatar-state="presenting"]{filter:drop-shadow(0 0 30px rgba(56,184,255,.58));}
.c21ava__hero-avatar[data-avatar-state="speaking"]{filter:drop-shadow(0 0 34px rgba(64,208,255,.68));}
.c21ava__stage[data-state="thinking"] .c21ava__hero-avatar{opacity:.96;transform:scale(1.01)}
.c21ava__stage[data-state="listening"] .c21ava__hero-avatar[data-avatar-state="idle"]{filter:drop-shadow(0 0 34px rgba(50,224,255,.7));}


/* AVA 3.1 lifelike motion */
.c21ava__stage.is-avatar .c21ava__hero-avatar{animation:ava-idle-sway 7.6s ease-in-out infinite;transform-origin:50% 58%;will-change:transform,filter,opacity}
.c21ava__stage.is-avatar[data-state="thinking"] .c21ava__hero-avatar{animation:ava-think 2.2s ease-in-out infinite;}
.c21ava__stage.is-avatar[data-state="listening"] .c21ava__hero-avatar{animation:ava-listen 2.8s ease-in-out infinite;}
.c21ava__stage.is-avatar[data-state="speaking"] .c21ava__hero-avatar{animation:ava-speaking 1.35s ease-in-out infinite alternate;}
.c21ava__portrait-expression{opacity:1}
.c21ava__portrait-eye{position:absolute;top:34.6%;width:7.6%;height:1.7%;border-radius:0 0 999px 999px;background:linear-gradient(to bottom, rgba(237,206,190,.94), rgba(227,191,173,.92));box-shadow:0 0 1px rgba(255,255,255,.45), 0 1px 6px rgba(0,0,0,.08);transform-origin:center top;transform:scaleY(.02);opacity:0;}
.c21ava__portrait-eye.eye-left{left:40.3%;animation:ava-blink-left 6.8s infinite;}
.c21ava__portrait-eye.eye-right{left:52.4%;animation:ava-blink-right 7.1s infinite;}
.c21ava__stage[data-state="speaking"] .c21ava__portrait-eye.eye-left{animation-duration:5.6s}
.c21ava__stage[data-state="speaking"] .c21ava__portrait-eye.eye-right{animation-duration:5.9s}
.c21ava__portrait-mouth{top:43.2%;left:47.85%;width:8.2%;height:1.5%;border-radius:50% 50% 60% 60%;background:radial-gradient(circle at 50% 45%, rgba(38,40,68,.88) 0 40%, rgba(93,146,206,.52) 65%, rgba(93,146,206,0) 100%);box-shadow:0 0 6px rgba(42,153,221,.65);transform-origin:center;opacity:.0;}
.c21ava__stage[data-state="speaking"] .c21ava__portrait-mouth{opacity:.9;animation:ava-mouth 0.28s ease-in-out infinite alternate;}
.c21ava__portrait-spark{top:31.8%;left:46.8%;width:10%;height:6%;opacity:.08;filter:blur(16px)}
.c21ava__stage[data-state="listening"] .c21ava__portrait-spark{opacity:.18;animation:ava-listen-pulse 1.2s ease-in-out infinite alternate}
.c21ava__stage[data-state="thinking"] .c21ava__portrait-spark{opacity:.2;animation:ava-think-pulse 1.5s ease-in-out infinite alternate}
@keyframes ava-idle-sway{0%,100%{transform:translate3d(0,0,0) rotate(-.45deg) scale(1)}25%{transform:translate3d(.35%,-.45%,0) rotate(.3deg) scale(1.007)}50%{transform:translate3d(0,-.8%,0) rotate(0deg) scale(1.01)}75%{transform:translate3d(-.25%,-.35%,0) rotate(-.2deg) scale(1.004)}}
@keyframes ava-speaking{from{transform:translate3d(0,-.35%,0) scale(1.008)}to{transform:translate3d(0,.15%,0) scale(1.017)}}
@keyframes ava-listen{0%,100%{transform:translate3d(0,0,0) rotate(-.4deg) scale(1.005)}50%{transform:translate3d(.35%,-.4%,0) rotate(.22deg) scale(1.016)}}
@keyframes ava-think{0%,100%{transform:translate3d(0,0,0) scale(1.006)}50%{transform:translate3d(0,-.55%,0) scale(1.016)}}
@keyframes ava-mouth{from{transform:scaleY(.42) scaleX(.92)}to{transform:scaleY(2.15) scaleX(1.08)}}
@keyframes ava-blink-left{0%,44%,47%,100%{transform:scaleY(.02);opacity:0}45%,46.4%{transform:scaleY(4.6);opacity:.95}71%,73%,100%{opacity:0}72%,72.5%{transform:scaleY(3.7);opacity:.85}}
@keyframes ava-blink-right{0%,42%,45%,100%{transform:scaleY(.02);opacity:0}43%,44.2%{transform:scaleY(4.4);opacity:.95}69%,71%,100%{opacity:0}70%,70.45%{transform:scaleY(3.4);opacity:.82}}
@keyframes ava-listen-pulse{from{transform:scale(.85);opacity:.08}to{transform:scale(1.24);opacity:.24}}
@keyframes ava-think-pulse{from{transform:scale(.88);opacity:.11}to{transform:scale(1.28);opacity:.26}}
@media(prefers-reduced-motion:reduce){.c21ava__stage.is-avatar .c21ava__hero-avatar,.c21ava__portrait-eye,.c21ava__portrait-mouth,.c21ava__portrait-spark{animation:none!important}.c21ava__portrait-eye,.c21ava__portrait-mouth{opacity:0!important}}


/* AVA 3.2 enhanced presence */
.c21ava__stage{--ava-look-x:0;--ava-look-y:0}
.c21ava__stage.is-avatar .c21ava__hero-avatar{transform:translate3d(calc(var(--ava-look-x)*0.9%),calc(var(--ava-look-y)*0.7%),0) scale(1);transition:opacity .38s ease,transform .28s ease,filter .28s ease}
.c21ava__stage.is-avatar[data-state="speaking"] .c21ava__hero-avatar{transform:translate3d(calc(var(--ava-look-x)*1.1%),calc(var(--ava-look-y)*0.8%),0) scale(1.015)}
.c21ava__stage.is-avatar.is-greeting .c21ava__hero-avatar{animation:ava-greet 1.15s ease 1}
.c21ava__stage.is-avatar .c21ava__portrait-expression{transition:transform .24s ease, opacity .24s ease;transform:translate3d(calc(var(--ava-look-x)*0.75%),calc(var(--ava-look-y)*0.55%),0)}
.c21ava__stage[data-state="listening"] .c21ava__portrait-expression{transform:translate3d(calc(var(--ava-look-x)*1.1%),calc(var(--ava-look-y)*0.8%),0)}
.c21ava__portrait-eye{box-shadow:0 0 1px rgba(255,255,255,.45), 0 1px 6px rgba(0,0,0,.08), 0 0 14px rgba(110,214,255,.12)}
.c21ava__stage[data-state="thinking"] .c21ava__portrait-eye.eye-left{animation-name:ava-blink-left, ava-think-glance-left;animation-duration:6.2s, 3.4s;animation-timing-function:linear, ease-in-out;animation-iteration-count:infinite,infinite}
.c21ava__stage[data-state="thinking"] .c21ava__portrait-eye.eye-right{animation-name:ava-blink-right, ava-think-glance-right;animation-duration:6.5s, 3.4s;animation-timing-function:linear, ease-in-out;animation-iteration-count:infinite,infinite}
.c21ava__stage[data-state="listening"] .c21ava__portrait-eye.eye-left,.c21ava__stage[data-state="listening"] .c21ava__portrait-eye.eye-right{opacity:.2}
.c21ava__stage[data-state="speaking"] .c21ava__portrait-mouth{width:8.7%;left:47.6%;background:radial-gradient(circle at 50% 45%, rgba(36,37,65,.92) 0 42%, rgba(85,160,220,.56) 68%, rgba(93,146,206,0) 100%)}
.c21ava__stage[data-state="thinking"] .c21ava__portrait-mouth{opacity:.08;transform:scaleY(.22)}
.c21ava__stage[data-state="listening"] .c21ava__portrait-mouth{opacity:.04;transform:scaleY(.18)}
.c21ava--float .c21ava__stage{width:165px;max-width:165px;height:210px;overflow:visible}
.c21ava--float .c21ava__hero-avatar{inset:-11% -20% -12%;width:140%;height:130%;filter:drop-shadow(0 0 20px rgba(56,184,255,.38))}
.c21ava--float .c21ava__visual{display:flex;justify-content:center;padding:12px 18px 0}
.c21ava--float .c21ava__conversation{padding-top:2px}
@keyframes ava-greet{0%{transform:translate3d(0,0,0) scale(1)}32%{transform:translate3d(.7%,-.8%,0) scale(1.022)}66%{transform:translate3d(-.25%,-.2%,0) scale(1.008)}100%{transform:translate3d(0,0,0) scale(1)}}
@keyframes ava-think-glance-left{0%,100%{filter:brightness(1)}50%{filter:brightness(1.09)}}
@keyframes ava-think-glance-right{0%,100%{filter:brightness(1)}50%{filter:brightness(1.07)}}
@media(prefers-reduced-motion:reduce){.c21ava__stage.is-avatar .c21ava__hero-avatar,.c21ava__stage.is-avatar .c21ava__portrait-expression{transition:none!important;transform:none!important}.c21ava__stage.is-avatar.is-greeting .c21ava__hero-avatar{animation:none!important}}

/* AVA 3.3 — approved character images and cross-fade */
.c21ava__character-stack{position:absolute;inset:0;z-index:6;pointer-events:none;transform-origin:50% 60%;animation:ava33-presence 6.8s ease-in-out infinite}
.c21ava__character-stack .c21ava__hero-avatar{position:absolute;inset:-17% -24% -19%;width:148%;height:141%;object-fit:contain;opacity:0;transform:none!important;animation:none!important;filter:drop-shadow(0 0 25px rgba(56,184,255,.33));transition:opacity .38s ease!important}
.c21ava__stage.is-avatar .c21ava__character-stack .c21ava__portrait-current{opacity:1}
.c21ava__stage.is-avatar .c21ava__character-stack .c21ava__portrait-next.is-showing{opacity:1}
.c21ava__stage:not(.is-avatar) .c21ava__character-stack{opacity:0}
.c21ava__stage[data-state="speaking"] .c21ava__character-stack{animation:ava33-speaking 1.4s ease-in-out infinite alternate}
.c21ava__stage[data-state="listening"] .c21ava__character-stack{animation:ava33-attentive 3s ease-in-out infinite alternate}
.c21ava__stage.is-greeting .c21ava__character-stack{animation:ava-greet 1.15s ease 1}
.c21ava__stage.ava-is-blinking.is-avatar .c21ava__portrait-eye{opacity:.65;transform:scaleY(4.2)}
@keyframes ava33-presence{0%,100%{transform:translateY(0) rotate(-.25deg)}50%{transform:translateY(-1.5%) rotate(.25deg)}}
@keyframes ava33-speaking{from{transform:translateY(-.3%) scale(1.003)}to{transform:translateY(.15%) scale(1.013)}}
@keyframes ava33-attentive{from{transform:translateY(0) rotate(-.25deg)}to{transform:translateY(-.65%) rotate(.25deg)}}
.c21ava--float .c21ava__character-stack .c21ava__hero-avatar{inset:-11% -20% -12%;width:140%;height:130%}
@media(prefers-reduced-motion:reduce){.c21ava__character-stack{animation:none!important}.c21ava__character-stack .c21ava__hero-avatar{transition:none!important}}

/* AVA 3.4 optional video digital human renderer, with portrait fallback */
.c21ava__stage .c21ava__digital-human{position:absolute;inset:-17% -24% -19%;width:148%;height:141%;object-fit:contain;z-index:8;pointer-events:none;filter:drop-shadow(0 0 18px rgba(56,184,255,.28));}
.c21ava__stage .c21ava__digital-human[hidden]{display:none!important}
.c21ava__stage.has-digital-video .c21ava__character-stack,.c21ava__stage.has-digital-video .c21ava__portrait-expression{opacity:0!important;visibility:hidden}
.c21ava--float .c21ava__digital-human{inset:-11% -20% -12%;width:140%;height:130%}
@media(prefers-reduced-motion:reduce){.c21ava__stage .c21ava__digital-human{display:none!important}}

/* AVA 3.5: mouth movement follows measured output speech energy when available. */
.c21ava__stage.is-avatar[data-state="speaking"].has-audio-envelope .c21ava__portrait-mouth{
 animation:none!important;opacity:calc(.18 + var(--ava-mouth-level,0) * .78)!important;
 transform:scaleY(calc(.25 + var(--ava-mouth-level,0) * 2.7)) scaleX(calc(.95 + var(--ava-mouth-level,0) * .2));
 transition:transform 75ms linear,opacity 75ms linear;
}
.c21ava__stage.has-digital-video .c21ava__portrait-expression{display:none!important}
@media(prefers-reduced-motion:reduce){.c21ava__stage.is-avatar[data-state="speaking"].has-audio-envelope .c21ava__portrait-mouth{transform:none!important;opacity:0!important}}

/* 3.6 facial-renderer fallback: jaw signal from output audio, not phoneme-perfect lip sync. */
.c21ava__stage.is-avatar.has-audio-envelope[data-state="speaking"] .c21ava__portrait-mouth{animation:none!important;opacity:calc(.12 + var(--ava-rig-jaw, 0)*.83)!important;transform:scaleY(calc(.55 + var(--ava-rig-jaw, 0)*2.5)) scaleX(calc(.9 + var(--ava-rig-jaw, 0)*.2))!important;transition:transform .08s linear,opacity .08s linear;}
@media(prefers-reduced-motion:reduce){.c21ava__stage .c21ava__portrait-mouth{transform:none!important;animation:none!important}}

/* AVA 3.7: Optional WebGL avatar; hidden until model successfully loads. */
.c21ava__model3d-host{position:absolute;inset:-9%;z-index:9;pointer-events:none}.c21ava__model3d-host[hidden]{display:none}.c21ava__model3d-host canvas{width:100%;height:100%;display:block}.c21ava__stage.has-model3d .c21ava__character-stack,.c21ava__stage.has-model3d .c21ava__portrait-expression,.c21ava__stage.has-model3d .c21ava__digital-human{opacity:0!important;visibility:hidden!important}.c21ava__stage.has-model3d .c21ava__orb{opacity:.1}.c21ava--float .c21ava__model3d-host{display:none!important}

/* AVA 3.8 model readiness feedback */
.c21ava__model-status{margin:3px auto 10px;max-width:360px;text-align:center;color:#86b9ce;font-size:10px;letter-spacing:.035em;min-height:1.3em}.c21ava--float .c21ava__model-status{display:none}

/* AVA 4.1 interactive 3D character controls */
.c21ava__stage.has-model3d .c21ava__model3d-host{pointer-events:auto;touch-action:none;cursor:grab}
.c21ava__stage.has-model3d .c21ava__model3d-host:active{cursor:grabbing}
.c21ava__model-reset{display:none;position:absolute;bottom:-12px;right:0;z-index:14;color:#c9f5ff;background:#092c43;border:1px solid #59d8f0;border-radius:7px;padding:7px 10px;font-size:11px;cursor:pointer}
.c21ava__stage.has-model3d .c21ava__model-reset{display:block}
.c21ava__model-reset:focus-visible{outline:3px solid #e9fbff;outline-offset:2px}
