/* Shared store motion contract. Only the float wrapper moves. */
.rpc-genie-stage{position:relative;display:block;isolation:isolate;width:100%;max-width:400px;aspect-ratio:1;margin:auto;--rpc-float-time:3.8s;--rpc-float-phase:-.7s;--rpc-blink-time:6.9s;--rpc-blink-phase:-1.1s;--rpc-eye-time:4.7s;--rpc-eye-phase:-.4s;--rpc-look-time:9.1s;--rpc-rise:18px;--rpc-dip:5px;--rpc-breathe:1.025;--rpc-eye-left:41%;--rpc-eye-right:55.8%;--rpc-eye-top:32.45%;--rpc-eye-right-top:32.75%;--rpc-body-mask:linear-gradient(#000 73%,transparent 81%);--rpc-platform-mask:linear-gradient(transparent 80.5%,#000 83.5%)}
.rpc-genie-stage.rpc-genie-tech{--rpc-float-time:4.3s;--rpc-float-phase:-2.6s;--rpc-blink-time:7.7s;--rpc-blink-phase:-4.2s;--rpc-eye-time:5.3s;--rpc-eye-phase:-2.3s;--rpc-look-time:10.7s;--rpc-eye-left:40.8%;--rpc-eye-right:55.5%;--rpc-eye-top:34%;--rpc-eye-right-top:34%;--rpc-body-mask:linear-gradient(#000 70%,transparent 81%);--rpc-platform-mask:linear-gradient(transparent 80%,#000 83.5%)}
.rpc-genie-stage .rpc-genie-platform,.rpc-genie-stage .rpc-genie-figure>img{display:block!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:contain!important;border-radius:0!important;margin:0!important;animation:none!important;transform:none!important;translate:none!important;filter:none!important;mix-blend-mode:normal!important;pointer-events:none}
.rpc-genie-stage .rpc-genie-platform{position:absolute;inset:0;z-index:1;mask-image:var(--rpc-platform-mask)}
.rpc-genie-float{position:relative;display:block;width:100%;z-index:2;transform-origin:50% 55%}
.rpc-genie-figure{position:relative;display:block;width:100%;aspect-ratio:1;filter:drop-shadow(0 0 0 transparent);transition:filter .25s ease}
.rpc-genie-stage .rpc-genie-figure>img{mask-image:var(--rpc-body-mask)}
.rpc-genie-stage:hover .rpc-genie-figure,.genie-character:hover .rpc-genie-figure{filter:drop-shadow(0 0 16px #67cbffcc) drop-shadow(0 18px 38px #67cbffb3)}
.rpc-genie-eye,.rpc-genie-lid{position:absolute;pointer-events:none;left:var(--rpc-eye-left);top:var(--rpc-eye-top);width:6.4%;height:6.7%;border-radius:50%}
.rpc-genie-eye-right{left:var(--rpc-eye-right);top:var(--rpc-eye-right-top)}
.rpc-genie-eye{background:#5cf4ff;filter:blur(3px);opacity:.12}
.rpc-genie-lid{width:8.1%;height:8.2%;margin-left:-.9%;margin-top:-.9%;background:#0b2039;mask-image:radial-gradient(ellipse,#000 76%,transparent 100%);clip-path:inset(0 0 100% 0);opacity:0}
.rpc-genie-lid::after{content:'';position:absolute;left:20%;right:20%;top:46%;height:18%;border-top:2px solid #6af4ff;border-radius:50%;filter:drop-shadow(0 0 2px #16cde9)}
.home-page .genie-character-float{animation:none;transform:none;display:grid;place-items:center}
.home-page .genie-character .rpc-genie-stage{width:94%;height:auto;max-height:100%;max-width:450px}
.sales-genie-panel>.rpc-genie-stage{width:180px;height:180px;float:right;margin:-20px -20px 10px 0}
.customer-genie-art{display:grid;place-items:center;overflow:visible}
.customer-genie-art>.rpc-genie-stage{width:min(100%,240px);height:auto;max-width:100%}
.website-genie .genie-success-character>.rpc-genie-stage{width:100%;height:100%;--rpc-rise:clamp(10px,2.3vh,24px)}
.website-genie .genie-helped-dialog>.rpc-genie-stage{width:120px;height:120px;--rpc-rise:clamp(10px,2.3vh,24px)}
.rpc-genie-paused .rpc-genie-float,.rpc-genie-paused .rpc-genie-eye,.rpc-genie-paused .rpc-genie-lid{animation-play-state:paused!important}
@media(prefers-reduced-motion:no-preference){
 .rpc-genie-float{animation:rpc-genie-hover var(--rpc-float-time) ease-in-out var(--rpc-float-phase) infinite;will-change:transform}
 .rpc-genie-eye{animation:rpc-genie-eye-glow var(--rpc-eye-time) ease-in-out var(--rpc-eye-phase) infinite,rpc-genie-eye-look var(--rpc-look-time) ease-in-out var(--rpc-eye-phase) infinite}
 .rpc-genie-lid{animation:rpc-genie-eye-blink var(--rpc-blink-time) linear var(--rpc-blink-phase) infinite}
 @keyframes rpc-genie-hover{0%,100%{transform:translate3d(-1px,var(--rpc-dip),0) rotate(-.8deg) scale(1)}50%{transform:translate3d(1px,calc(-1 * var(--rpc-rise)),0) rotate(.8deg) scale(var(--rpc-breathe))}}
 @keyframes rpc-genie-eye-look{0%,35%,65%,100%{translate:0 0}42%,55%{translate:1px .5px}}
 @keyframes rpc-genie-eye-glow{0%,100%{opacity:.08}50%{opacity:.28}}
 @keyframes rpc-genie-eye-blink{0%,44%,48%,100%{opacity:1;clip-path:inset(0 0 100% 0)}45.5%,46.5%{opacity:1;clip-path:inset(0)}}
}
@media(max-width:700px){
 .rpc-genie-stage{--rpc-rise:16px;--rpc-dip:4px}
 .home-page .genie-character .rpc-genie-stage{width:min(310px,100%)}
 .customer-genie-art>.rpc-genie-stage{width:min(100%,210px)}
}
@media(prefers-reduced-motion:reduce){.rpc-genie-stage,.rpc-genie-stage *{animation:none!important;transition:none!important}}
/* Cancel legacy motion on ancestors and inherited badge positioning. */
.website-genie .genie-success-character{animation:none!important;transform:none!important}
.website-genie .genie-success-character>.rpc-genie-stage{position:relative;inset:auto;font-size:inherit;text-shadow:none}
@media(prefers-reduced-motion:reduce){.home-page .genie-twinkle{animation:none!important}}

/* The shell owns chat geometry; the panel keeps its existing clipped surface.
   The companion is a sibling, so its body and halo never enter that clip. */
.website-genie .genie-chat-shell{position:absolute;right:0;bottom:0;width:390px;height:min(650px,calc(100dvh - 100px))}
.website-genie .genie-chat-shell>.genie-panel{position:relative;inset:auto;width:100%;height:100%;max-height:100%}
.website-genie .genie-chat-companion{position:absolute;z-index:3;left:-90px;top:-82px;width:176px;height:176px;pointer-events:none}
.website-genie .genie-chat-companion>.rpc-genie-stage{width:100%;height:auto;margin:0;--rpc-rise:5px;--rpc-dip:3px;--rpc-breathe:1.025}
.website-genie .genie-chat-companion .rpc-genie-figure{pointer-events:auto}
.website-genie:not(.genie-expanded) .genie-chat-header{padding-left:62px}
.website-genie.genie-expanded{--rpc-companion-space:clamp(190px,24vw,360px);--rpc-companion-size:clamp(280px,30vw,420px)}
.website-genie.genie-expanded .genie-chat-shell{position:relative;inset:auto;width:min(calc(100% - var(--rpc-companion-space)),1180px);height:100%;margin-left:var(--rpc-companion-space);min-height:0}
.website-genie.genie-expanded .genie-chat-companion{left:calc(-.5 * (var(--rpc-companion-space) + var(--rpc-companion-size)));top:calc(43% - var(--rpc-companion-size) / 2);width:var(--rpc-companion-size);height:var(--rpc-companion-size)}
.website-genie .genie-chat-companion>.rpc-genie-stage{max-width:none}
@media(max-width:600px){
 .website-genie .genie-chat-header{display:grid;grid-template-columns:minmax(0,1fr) 32px 32px}
 .website-genie .genie-chat-header>div{grid-column:1/-1}
 .website-genie .genie-chat-header>button{max-width:100%}
 .website-genie .genie-chat-shell{width:min(390px,calc(100vw - 24px));height:min(610px,76dvh)}
 .website-genie .genie-chat-companion{left:-24px;top:-76px;width:140px;height:140px}
 .website-genie:not(.genie-expanded) .genie-chat-header{padding-left:98px}
 /* Narrow screens have no safe side gutter: use the space above the panel. */
 .website-genie.genie-expanded .genie-chat-shell{width:100%;height:calc(100% - 176px);margin:176px 0 0}
 .website-genie.genie-expanded .genie-chat-companion{left:calc(50% - 90px);top:-180px;width:180px;height:180px}
}
@media(max-height:500px){
 .website-genie:not(.genie-expanded) .genie-chat-companion{left:-55px;top:-70px;width:140px;height:140px}
 .website-genie.genie-expanded{--rpc-companion-space:120px;--rpc-companion-size:200px}
 .website-genie.genie-expanded .genie-chat-shell{width:calc(100% - var(--rpc-companion-space));height:100%;margin:0 0 0 var(--rpc-companion-space)}
 .website-genie.genie-expanded .genie-chat-companion{left:calc(-.5 * (var(--rpc-companion-space) + var(--rpc-companion-size)));top:calc(43% - var(--rpc-companion-size) / 2);width:var(--rpc-companion-size);height:var(--rpc-companion-size)}
}
