.critter-companion{z-index:65;-webkit-user-select:none;user-select:none;width:78px;height:78px;position:fixed}.critter-companion[data-mode=drag]{z-index:90}.critter-stage{width:100%;height:100%;color:var(--ink);cursor:grab;touch-action:none;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0;display:block}.critter-companion[data-mode=drag] .critter-stage{cursor:grabbing}.critter-chat{box-sizing:border-box;background:var(--surface);color:var(--ink);border:1px solid var(--border);font:14px/1.5 var(--font-geist-sans),sans-serif;overscroll-behavior:contain;-webkit-user-select:text;user-select:text;touch-action:pan-y;border-radius:10px;padding:12px;position:fixed;overflow:auto;box-shadow:0 6px 22px #0002}.critter-chat-head{color:var(--accent);justify-content:space-between;align-items:center;font-weight:600;display:flex}.critter-chat-head button{border:1px solid var(--border);width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border-radius:7px;place-items:center;padding:0;display:grid}.critter-chat p{color:var(--muted);margin:8px 0 12px}.critter-chat h2{margin:10px 0 6px;font-size:16px;line-height:1.3}.critter-chat a{color:var(--accent);align-items:center;gap:5px;font-size:12px;text-decoration:underline;display:inline-flex}.critter-actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.critter-actions button{min-height:36px;font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--ink);cursor:pointer;border-radius:7px;flex:auto;padding:6px 8px;font-size:12px}.critter-actions button:hover,.critter-selector button:hover{border-color:var(--accent);background:var(--soft)}.critter-selector{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:10px;display:grid}.critter-selector button{border:1px solid var(--border);background:var(--bg);color:var(--ink);cursor:pointer;font:12px var(--font-geist-sans),sans-serif;border-radius:7px;justify-items:center;gap:4px;padding:6px 2px;display:grid}.critter-selector button[aria-pressed=true]{border-color:var(--accent);background:var(--soft)}.critter-restore.command-hint{left:12px;right:auto;bottom:max(8px,env(safe-area-inset-bottom));z-index:65;background:var(--surface);min-height:36px;color:var(--muted);border:1px solid var(--border);box-shadow:none;font:500 12px/1 var(--font-geist-mono);cursor:pointer;border-radius:0;align-items:center;gap:8px;padding:8px 10px;display:inline-flex}.critter-restore.command-hint:hover{border-color:var(--accent);color:var(--ink);background:var(--soft);box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 12%,transparent)}.animal{filter:drop-shadow(0 2px 2px #0002);width:100%;height:100%;display:block;overflow:visible}.animal-pose{transform-box:view-box;transform-origin:80px 145px;animation:5s ease-in-out infinite pet-breathe}.animal-head{transform-box:view-box;transform-origin:80px 95px}.animal-tail,.animal-ear,.animal-foreleg{transform-box:view-box}.animal-cat .animal-tail{animation:6s ease-in-out infinite pet-tail}.animal-dog .animal-tail{animation:1.8s ease-in-out infinite pet-wag}.animal-dog .animal-ear{animation:5s ease-in-out infinite pet-ear}.animal-eye{transform-box:view-box;animation:6.4s ease-in-out infinite pet-blink}.animal-pupil{transition:transform .14s ease-out}.animal-shadow{transition:opacity .3s}.animal-call,.animal-zzz,.animal-fly,.animal-tongue,.animal-happy,.animal-worried,.animal-frog-smile,.animal-sleep-eye,.animal-toy{opacity:0;pointer-events:none}.animal-smile,.animal-frog-neutral,.animal-frog-smile,.animal-happy,.animal-worried,.animal-sleep-eye{transition:opacity .24s}.animal-call{font:600 12px var(--font-geist-mono)}.animal-zzz{font:700 17px var(--font-geist-mono);fill:var(--muted)}.animal[data-activity=greet] .animal-head{animation:.8s ease-in-out pet-nod}.animal[data-activity=greet] .animal-foreleg-left{animation:.8s ease-in-out pet-paw}.animal[data-activity=greet] .animal-pose{animation:.8s ease-in-out pet-greet}.animal[data-activity=stretch] .animal-pose{animation:3.6s ease-in-out pet-stretch}.animal[data-activity=play] .animal-pose{animation:3.6s ease-in-out pet-play}.animal[data-activity=play] .animal-toy{opacity:1;transform-box:view-box;transform-origin:131px 140px;animation:3.6s ease-in-out pet-ball}.animal[data-activity=call] .animal-call{animation:3.6s ease-in-out pet-call}.animal[data-activity=lift] .animal-pose{transform-origin:80px 65px;animation:1.8s ease-in-out infinite pet-lift}.animal[data-activity=lift] .animal-foreleg{animation:1.8s ease-in-out infinite pet-dangle}.animal[data-activity=land] .animal-pose{animation:.5s ease-out pet-land}.animal[data-activity=lift] .animal-shadow{opacity:0}.animal:not(.animal-frog)[data-activity=lift] .animal-happy,.animal:not(.animal-frog)[data-activity=call] .animal-happy{opacity:1}.animal:not(.animal-frog)[data-activity=lift] .animal-smile,.animal:not(.animal-frog)[data-activity=call] .animal-smile{opacity:0}.animal-frog[data-activity=greet] .animal-frog-smile,.animal-frog[data-activity=play] .animal-frog-smile{opacity:1}.animal-frog[data-activity=greet] .animal-frog-neutral,.animal-frog[data-activity=play] .animal-frog-neutral,.animal-frog[data-activity=lift] .animal-frog-neutral,.animal-frog[data-activity=catch] .animal-frog-neutral{opacity:0}.animal-frog[data-activity=lift] .animal-worried{opacity:1}.animal[data-activity=catch] .animal-fly{animation:3.6s linear pet-fly}.animal[data-activity=catch] .animal-tongue{transform-box:view-box;transform-origin:85px 95px;animation:3.6s linear pet-tongue}.animal[data-activity=sleep] .animal-eye{opacity:0;animation:none}.animal[data-activity=sleep] .animal-sleep-eye{opacity:1}.animal[data-activity=sleep] .animal-tail,.animal[data-activity=sleep] .animal-ear{animation:none}.animal[data-activity=sleep] .animal-zzz{animation:4s ease-in-out infinite pet-sleep}.animal-small *{transition:none!important;animation:none!important}.animal-small{filter:none}.critter-restore.command-hint{bottom:max(18px,env(safe-area-inset-bottom))}@keyframes pet-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.008,1.012)}}@keyframes pet-blink{0%,42%,47%,to{transform:scaleY(1)}44.5%{transform:scaleY(.08)}}@keyframes pet-tail{0%,65%,to{transform:rotate(0)}78%{transform:rotate(6deg)}90%{transform:rotate(-3deg)}}@keyframes pet-wag{0%,to{transform:rotate(-4deg)}50%{transform:rotate(7deg)}}@keyframes pet-ear{0%,80%,to{transform:rotate(0)}90%{transform:rotate(2deg)}}@keyframes pet-nod{0%,to{transform:rotate(0)}40%{transform:rotate(-3deg)}70%{transform:rotate(1deg)}}@keyframes pet-paw{0%,to{transform:rotate(0)}45%{transform:rotate(5deg)}}@keyframes pet-greet{0%,to{transform:translateY(0)}40%{transform:translateY(-3px)}}@keyframes pet-stretch{0%,to{transform:scale(1)}40%,60%{transform:scale(1.035,.965)}}@keyframes pet-play{0%,to{transform:rotate(0)}30%{transform:rotate(-2deg)}65%{transform:rotate(2deg)}}@keyframes pet-ball{0%,to{transform:translate(0)rotate(0)}45%{transform:translate(-12px)rotate(-60deg)}}@keyframes pet-lift{0%,to{transform:rotate(-1.2deg)}50%{transform:rotate(1.2deg)}}@keyframes pet-dangle{0%,to{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}@keyframes pet-land{0%{transform:scale(1)}35%{transform:scale(1.035,.96)}70%{transform:scale(.99,1.015)}to{transform:scale(1)}}@keyframes pet-call{0%,to{opacity:0;transform:translateY(2px)}15%,80%{opacity:1;transform:translateY(0)}}@keyframes pet-sleep{0%,to{opacity:.2;transform:translateY(0)}50%{opacity:.8;transform:translateY(-4px)}}@keyframes pet-fly{0%{opacity:0;transform:translate(8px,-6px)}15%{opacity:1}45%,50%{opacity:1;transform:translate(-1px)}62%{opacity:0;transform:translate(-55px,48px)}to{opacity:0}}@keyframes pet-tongue{0%,44%{opacity:0;transform:scale(.01)}46%{opacity:1;transform:scale(.01)}50%{opacity:1;transform:scale(1)}62%{opacity:1;transform:scale(.01)}64%,to{opacity:0;transform:scale(.01)}}@media (max-width:760px){.critter-companion{width:58px;height:58px}.critter-actions button{min-height:40px}.critter-chat-head button{width:36px;height:36px}.critter-restore.command-hint{font-size:11px;left:10px}}@media (prefers-reduced-motion:reduce){.animal,.animal *{transition:none!important;animation:none!important}.animal[data-activity=sleep] .animal-zzz,.animal[data-activity=call] .animal-call{opacity:1}}
