/* Preserve the existing cyan/violet body gradients underneath these effects. */
body{isolation:isolate}.ambient-sky{position:fixed;inset:0;overflow:hidden;z-index:-1;pointer-events:none;contain:strict}.ambient-star{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);border-radius:50%;background:#d6f9ff;box-shadow:0 0 6px #4edffb80;opacity:.3;animation:ambient-twinkle var(--duration) ease-in-out var(--delay) infinite}.ambient-star:nth-child(6n){background:#d5bdff;box-shadow:0 0 9px #ac70faaa}.ambient-meteor{position:absolute;left:var(--x);top:var(--y);width:115px;height:2px;border-radius:50%;background:linear-gradient(90deg,#fff,#71eaff,transparent);opacity:0;transform:rotate(-32deg);animation:ambient-shoot 22s linear var(--delay) infinite}
.ambient-motion-toggle{font-size:18px;line-height:1;width:36px;height:36px;padding:6px!important;margin:12px 0 0;flex-shrink:0;box-shadow:none}
/* One clipped corner stage keeps both companions together without page overflow. */
.companion-dock{mix-blend-mode:screen;position:fixed;right:0;bottom:20px;width:220px;height:190px;z-index:65;pointer-events:none;overflow:clip}
.dock-pair{position:absolute;right:16px;bottom:0;display:flex;align-items:flex-end;gap:0;transform:translateX(0);transition:transform 1.1s ease-in-out;pointer-events:none}
.dock-pair .floating-companion,.dock-pair .floating-companion:hover,.dock-pair .floating-companion:focus-visible{position:relative;inset:auto;border:0;background:none;box-shadow:none;overflow:visible;pointer-events:auto;flex:none}
.dock-pair .floating-companion:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
.floating-label{font-size:10px;text-shadow:0 1px 5px #000,0 0 10px #000}.companion-card{background:none;border-color:transparent;box-shadow:none;padding-left:8px;padding-right:8px}
.dock-pet{position:relative;width:84px;height:102px;margin-bottom:16px;flex:none;mix-blend-mode:screen;pointer-events:none;perspective:400px}
.pet-art{filter:contrast(1.15) brightness(1.03);display:block;width:100%;height:100%;transform-origin:50% 85%;animation:pet-attention 4s ease-in-out infinite;mix-blend-mode:screen}
.pet-pose{display:none}.pet-sit{display:block}.companion-dock[data-state=greeting] .pet-sit{display:none}.companion-dock[data-state=greeting] .pet-wave{display:block}
.companion-dock[data-state=greeting] .pet-art{animation:pet-hello .65s ease-in-out 4}
.companion-dock[data-state=turn] .pet-sit,.companion-dock[data-state=leave] .pet-sit,.companion-dock[data-state=return] .pet-sit{display:none}
.companion-dock[data-state=turn] .pet-look,.companion-dock[data-state=leave] .pet-look,.companion-dock[data-state=return] .pet-look{display:block}
.companion-dock[data-state=leave] .pet-art,.companion-dock[data-state=return] .pet-art{animation:pet-step .35s ease-in-out infinite}
.companion-dock[data-state=return] .pet-art{scale:-1 1}
.dock-greeting{position:absolute;right:30px;top:-22px;padding:3px 10px;border:1px solid #4b94b1;border-radius:14px;background:#0b1633ee;color:#b2f6ff;font-size:12px;opacity:0;transform:translateY(5px);transition:opacity .3s,transform .3s}
.companion-dock[data-state=greeting] .dock-greeting{opacity:1;transform:translateY(0)}
.companion-dock[data-state=greeting] .robot-frame{animation:bot-greet 1.4s ease-in-out 2}
.companion-dock[data-state=turn] .view-front,.companion-dock[data-state=leave] .view-front,.companion-dock[data-state=return] .view-front{animation:none;opacity:0}
.companion-dock[data-state=turn] .view-turned,.companion-dock[data-state=leave] .view-turned,.companion-dock[data-state=return] .view-turned{animation:none;opacity:1}
.companion-dock[data-state=leave] .dock-pair,.companion-dock[data-state=hidden] .dock-pair{transform:translateX(240px)}
.dock-recall{position:absolute;right:0;bottom:70px;width:25px;height:38px;padding:0!important;border-radius:12px 0 0 12px;pointer-events:auto;visibility:hidden;opacity:0;transition:opacity .3s}
.companion-dock[data-state=hidden] .dock-recall{visibility:visible;opacity:.8}
.conversation-mode:has(#home:not([hidden])) .companion-dock{display:none}
@keyframes ambient-twinkle{0%,100%{opacity:.15;transform:scale(.8)}50%{opacity:.85;transform:scale(1.15)}}
@keyframes ambient-shoot{0%,84%,100%{opacity:0;transform:translate(0,0) rotate(-32deg)}85%{opacity:.9}90%{opacity:0;transform:translate(-420px,270px) rotate(-32deg)}}
@keyframes pet-attention{0%,100%{transform:translateY(0) rotateY(-9deg) rotate(-2deg)}50%{transform:translateY(-3px) rotateY(9deg) rotate(2deg)}}
@keyframes pet-hello{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-4px) rotate(3deg)}}
@keyframes pet-step{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-3px) rotate(2deg)}}
.effects-paused .ambient-sky *,.effects-paused .lifts-robot,.effects-paused .lifts-robot *,.effects-paused .pet-art{animation-play-state:paused!important}
.effects-reduced .ambient-sky *,.effects-reduced .pet-art{animation:none!important}.effects-reduced .ambient-meteor{display:none}
@media(max-width:800px){.ambient-star:nth-child(n+25){display:none}.ambient-meteor{width:75px}.ambient-motion-toggle{margin:0}.companion-dock{width:180px;height:160px;bottom:calc(84px + env(safe-area-inset-bottom))}.dock-pair{right:10px}.dock-pet{width:65px;height:80px;margin-bottom:14px}.companion-card{padding:12px 0}.dock-greeting{right:16px;font-size:11px}.dock-recall{bottom:55px}}
@media(prefers-reduced-motion:reduce){.ambient-sky *,.pet-art{animation:none!important}.ambient-meteor{display:none}.dock-pair,.dock-greeting,.dock-recall{transition:none!important}}

.dock-pet::after{content:"";position:absolute;left:14%;right:14%;bottom:0;height:5px;border-radius:50%;background:#1cc6d735;box-shadow:0 0 8px #8046de55;z-index:-1}
