/* One companion, one image element: poses and locations are state, not copies. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.pet.companion{position:fixed;inset:auto;left:0;top:0;width:166px;height:auto;z-index:20;isolation:isolate;transform:translate3d(var(--pet-x,calc(100vw - 184px)),var(--pet-y,calc(100vh - 126px)),0);transition:transform .6s cubic-bezier(.22,.75,.25,1),width .25s;will-change:transform}
.companion .pet-body{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;border-radius:22px;filter:drop-shadow(0 4px 6px #a98e621f);transform:none;transition:transform .25s}
.companion .pet-body:hover{transform:rotate(-3deg) translateY(-3px)}
.companion .pet-body img{display:block;width:100%;height:auto;max-width:100%;pointer-events:none;user-select:none;-webkit-user-drag:none}
.companion .pet-toggle{top:-15px;right:-4px;width:30px;height:30px;opacity:0;pointer-events:none}
.companion:hover .pet-toggle,.companion:focus-within .pet-toggle{opacity:1;pointer-events:auto}
.companion.dragging{transition:none!important}.companion.dragging .pet-body{cursor:grabbing;transform:rotate(-5deg) scale(1.04)}
.companion.dragging.magnetic .pet-body{transform:rotate(0) scale(1.07);filter:drop-shadow(0 8px 14px #6d9edb45)}
.companion.tracking{transition:width .25s}.companion.collapsed{display:none}
.companion.petted .pet-body{animation:companion-happy .6s ease}.pet-effects{position:absolute;inset:0;pointer-events:none;overflow:visible}
.pet-heart{position:absolute;left:var(--heart-x);top:16%;color:#d98cac;font-size:22px;animation:companion-heart 1.2s ease-out forwards;text-shadow:0 2px 10px #fff}
.pet-emote{position:absolute;z-index:3;display:inline-grid;place-items:center;min-width:31px;min-height:31px;padding:4px 8px;border:2px solid #fff;border-radius:999px;background:#fffdf8;color:#60789f;font-family:"Segoe UI","Microsoft YaHei",sans-serif;font-size:14px;font-weight:650;line-height:1;white-space:nowrap;box-shadow:0 7px 20px #7789a52a;opacity:0;animation:companion-emote 1.5s cubic-bezier(.16,.75,.3,1) var(--emote-delay,0s) forwards;transform:translateY(7px) scale(.7) rotate(var(--emote-turn,0deg))}
.pet-emote-1{left:-8%;top:4%;--emote-rise:-52px}.pet-emote-2{right:-5%;top:1%;--emote-rise:-64px}.pet-emote-3{left:3%;top:48%;--emote-rise:-42px}.pet-emote-4{right:-9%;top:40%;--emote-rise:-48px}
.companion[data-mood="joy"] .pet-emote{color:#c67f9f;background:#fff7fa}.companion[data-mood="proud"] .pet-emote{color:#5e83bc;background:#f4f8ff}.companion[data-mood="shy"] .pet-emote{color:#bf819a;background:#fff8f5}.companion[data-mood="pout"] .pet-emote{color:#9a7381;background:#fff6e9}.companion[data-mood="curious"] .pet-emote{color:#7f78ae;background:#faf7ff}
[data-phoebe-snap]{outline:0 solid transparent;outline-offset:4px}
[data-phoebe-snap].phoebe-snap-ready{outline:3px solid #8eb8ecaa;outline-offset:7px;box-shadow:0 0 0 8px #dceafb80,0 16px 42px #729ad12e;z-index:19}
[data-phoebe-snap].phoebe-snap-ready:after{content:attr(data-phoebe-hint);position:absolute;right:12px;top:12px;z-index:30;padding:6px 11px;border:1px solid #fff;border-radius:999px;background:#6f9fdf;color:#fff;font-size:11px;font-weight:600;line-height:1;letter-spacing:.4px;white-space:nowrap;box-shadow:0 6px 17px #5a7fac35;pointer-events:none;animation:companion-snap-hint .35s ease both}
.companion-bubble{position:fixed;z-index:23;max-width:min(235px,calc(100vw - 24px));width:max-content;border:1px solid #e9e6e0;border-radius:19px;padding:9px 14px;background:#fffffff0;box-shadow:0 5px 25px #89714d18;color:#596982;font-size:13px;line-height:1.65;pointer-events:none;transition:opacity .2s,transform .2s;backdrop-filter:blur(12px)}
.companion-bubble.quiet{opacity:0;transform:translateY(5px)}
.companion-panel{position:fixed;z-index:25;width:270px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto;padding:16px;border:1px solid #fff;border-radius:23px;background:#fffcf8f7;box-shadow:0 14px 50px #61738e29,0 0 0 1px #dae1ed77;backdrop-filter:blur(20px);color:var(--ink)}
.companion-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:10px}.companion-heading strong{display:block;font-size:16px;font-weight:550;letter-spacing:.8px}.companion-heading span{display:block;font-size:12px;color:#8795aa;margin-top:2px}.companion-heading>button{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:50%;background:#eef3fa;color:#7c8da9;flex-shrink:0}.companion-heading .icon{width:15px;height:15px}
.companion-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.companion-actions button{display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid #e3e9f3;background:#f2f6fc;border-radius:12px;min-height:43px;padding:8px 5px;font-size:14px;color:#536d94;transition:background .2s,transform .2s}.companion-actions button:hover{background:#e4edf9;transform:translateY(-1px)}.companion-actions button[aria-pressed="true"]{color:#fff;background:#6d9edb;border-color:#6d9edb}.companion-actions .icon{width:16px;height:16px}.companion-actions button>span{font-size:19px;line-height:1}.companion-hint{font-size:11px;color:#93a0b2;margin:12px 0 0;text-align:center}
#pet-restore{position:fixed;right:16px;bottom:16px;z-index:20;padding:10px 17px;min-height:42px;font-size:13px}
@keyframes companion-happy{0%,100%{transform:translateY(0)}30%{transform:translateY(-10px) rotate(-6deg)}65%{transform:translateY(-4px) rotate(5deg)}}
@keyframes companion-heart{from{opacity:1;transform:translateY(0) scale(.6)}to{opacity:0;transform:translateY(-60px) scale(1.15)}}
@keyframes companion-emote{0%{opacity:0;transform:translateY(8px) scale(.7) rotate(var(--emote-turn,0deg))}22%,68%{opacity:1;transform:translateY(-12px) scale(1) rotate(var(--emote-turn,0deg))}100%{opacity:0;transform:translateY(var(--emote-rise,-52px)) scale(.9) rotate(var(--emote-turn,0deg))}}
@keyframes companion-snap-hint{from{opacity:0;transform:translateY(5px) scale(.94)}to{opacity:1;transform:none}}
@media(max-width:580px){.companion .pet-toggle{opacity:1;pointer-events:auto;right:-2px;top:-15px;width:28px;height:28px}.companion-bubble{font-size:12px}.companion-panel{width:258px}.companion-hint{font-size:12px}}
@media(max-width:580px){[data-phoebe-snap].phoebe-snap-ready:after{right:7px;top:7px;padding:5px 8px;font-size:9px}.pet-emote{font-size:11px;min-width:26px;min-height:26px;padding:3px 6px}}
@media(prefers-reduced-motion:reduce){.pet.companion,.companion .pet-body,.companion-bubble,.companion-actions button{transition:none!important}.companion.petted .pet-body,.pet-heart,[data-phoebe-snap].phoebe-snap-ready:after{animation:none!important}.pet-emote{animation:none!important;opacity:1}}
