.pet{--sprite:#db7250;--face:#3a2318;z-index:45;aspect-ratio:1072/916;will-change:transform;width:128px;transition:opacity .4s;position:fixed;top:0;left:0}.motion .pet.is-still{transition:transform .6s cubic-bezier(.3,.8,.3,1),opacity .4s}.pet.is-leaving{opacity:0}.pet-sprite{color:inherit;cursor:grab;touch-action:none;background:0 0;border:0;border-radius:40%;padding:0;position:absolute;inset:0}.pet.is-dragging,.motion .pet.is-dragging.is-still{transition:opacity .4s}.pet.is-dragging .pet-sprite{cursor:grabbing}.pet.is-dragging .pet-art{transition:rotate .12s ease-out}.pet-sprite:focus-visible{outline-offset:2px}.pet-hide{border:1px solid var(--line);background:var(--surface);width:30px;height:30px;color:var(--muted);cursor:pointer;opacity:0;pointer-events:none;border-radius:50%;place-items:center;padding:0;transition:opacity .2s;display:grid;position:absolute;top:8px;left:4px;box-shadow:0 4px 12px #0000001f}.pet-hide svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.pet-hide:hover{color:var(--ink)}.pet:is(:hover,:has(:focus-visible)) .pet-hide{opacity:1;pointer-events:auto}@media (hover:none){.pet:has([aria-expanded=true]) .pet-hide{opacity:1;pointer-events:auto}}.pet.is-dragging .pet-hide,.pet.is-leaving .pet-hide{opacity:0;pointer-events:none}.pet-art,.pet-float,.pet-layer,.pet-face{width:100%;height:100%;position:absolute;inset:0}.pet-art{rotate:var(--tilt,0deg);transition:rotate .35s ease-out;display:block}.pet-float{display:block}.pet-layer{pointer-events:none;user-select:none;-webkit-user-drag:none;display:block}.pet-wing{transform-origin:50.1% 45%}.pet-antenna{transform-origin:48.6% 18.4%}.pet-face{overflow:visible}.pet-features{transform:translate(calc(var(--look-x,0) * .6px), calc(var(--look-y,0) * .6px));transition:transform .3s ease-out}.pet-eyes{transform:translate(calc(var(--look-x,0) * .4px), calc(var(--look-y,0) * .4px));transition:transform .25s ease-out}.pet-eyes-open{transform-box:fill-box;transform-origin:50%}.pet-eyes-open circle{fill:var(--face)}.pet-eyes-open .pet-glint{fill:#fff6ec}.pet-eyes-happy,.pet-eyes-closed,.pet-smile{fill:none;stroke:var(--face);stroke-width:14px;stroke-linecap:round}.pet-blush{fill:#f6a58c;opacity:.6}.pet-wand{transform-box:view-box;transform-origin:710px 652px;rotate:26deg}.pet-wand-stick{stroke:var(--face);stroke-width:22px;stroke-linecap:round}.pet-wand-star{fill:var(--sprite);stroke:#fff6ec;stroke-width:10px;stroke-linejoin:round;paint-order:stroke;transform-box:fill-box;transform-origin:50%}.pet[data-state=sleep] .pet-wand{rotate:112deg}.pet[data-state=held] .pet-wand{rotate:150deg}.pet-mouth{fill:var(--face);transform-box:fill-box;transform-origin:50%}.pet-eyes-happy,.pet-eyes-closed,.pet-mouth,.pet-sparks,.pet-burst,.pet-zzz{display:none}.pet-shadow{background:radial-gradient(closest-side,#28180c47,#0000);border-radius:50%;height:9px;position:absolute;bottom:-6px;left:34%;right:34%}.pet.is-perched .pet-shadow,.pet[data-state=sleep] .pet-eyes-open,.pet:is([data-state=happy],[data-state=held]) .pet-eyes-open{display:none}.pet[data-state=sleep] .pet-eyes-closed,.pet:is([data-state=happy],[data-state=held]) .pet-eyes-happy{display:inline}.pet:is([data-state=sleep],[data-state=happy],[data-state=held]) :is(.pet-eyes,.pet-features){transform:none}.pet[data-state=held] .pet-smile{display:none}.pet[data-state=held] .pet-mouth{display:inline}.pet[data-state=held] .pet-shadow{display:none}.pet[data-state=think] .pet-features,.pet[data-state=think] .pet-eyes{transform:translate(5px,-6px)}.pet[data-state=talk] .pet-smile{display:none}.pet[data-state=talk] .pet-mouth{display:inline}.pet[data-state=sleep] .pet-zzz,.pet[data-state=think] .pet-sparks{display:block}.pet[data-state=sleep] .pet-antenna{rotate:-10deg}.pet[data-state=sleep] .pet-wing{transform:scaleX(.84)translateY(3%)}.pet[data-state=fly] .pet-antenna{rotate:-16deg}.pet-sparks i,.pet-burst i,.pet-trail-spark{background:var(--sprite,#db7250);border-radius:1px;width:9px;height:9px;position:absolute;rotate:45deg}.pet-sparks i:first-child{width:11px;height:11px;top:14%;left:8%}.pet-sparks i:nth-child(2){animation-delay:.45s;top:8%;left:86%}.pet-sparks i:nth-child(3){width:7px;height:7px;animation-delay:.9s;top:38%;left:90%}.pet-sparks i:nth-child(4){width:6px;height:6px;animation-delay:1.15s;top:42%;left:4%}.pet-burst i{opacity:0;top:40%;left:47%}.pet-zzz i{font:italic 600 15px/1 var(--sans);color:var(--accent);opacity:0;position:absolute;top:8%;left:6%}.pet-zzz i:nth-child(2){font-size:18px}.pet-zzz i:nth-child(3){font-size:21px}.pet-trail{z-index:44;pointer-events:none;position:fixed;inset:0;overflow:hidden}.pet-peek{--sprite:#db7250;--face:#3a2318;z-index:45;aspect-ratio:1072/916;cursor:pointer;transform-origin:80% 85%;background:0 0;border:0;border-radius:40%;width:96px;padding:0;position:fixed;bottom:28vh;right:0;transform:translate(50%)rotate(-14deg)}.pet-peek:focus-visible{outline-offset:2px}.motion .pet-peek{transition:transform .5s cubic-bezier(.3,.8,.3,1);transform:translate(115%)}.motion .pet-peek.is-peeking{animation:8s ease-in-out both pet-peek}.motion .pet-peek:is(:hover,:focus-visible,.is-near){animation:none;transform:translate(42%)rotate(-14deg)}@keyframes pet-peek{0%,to{transform:translate(115%)rotate(0)}12%,88%{transform:translate(42%)rotate(-14deg)}}.pet-trail-spark{opacity:0;width:7px;height:7px;animation:.9s ease-out forwards pet-trail}.pet-bubble{border:1px solid var(--line);background:var(--surface);color:var(--ink);white-space:nowrap;pointer-events:none;border-radius:14px 14px 14px 4px;padding:8px 13px;font-size:.84rem;font-weight:500;line-height:1.35;position:absolute;bottom:calc(100% - 4px);left:20%;box-shadow:0 8px 22px #0000001f}.pet[data-side=right] .pet-bubble{border-radius:14px 14px 4px;left:auto;right:20%}.motion .pet-bubble:not([hidden]){animation:.35s cubic-bezier(.2,.9,.3,1.3) both pet-pop}@keyframes pet-float{0%,to{translate:0}50%{translate:0 -9px}}@keyframes pet-shadow{0%,to{opacity:1;scale:1}50%{opacity:.7;scale:.8}}@keyframes pet-flap{0%{scale:1}to{scale:.8 1}}@keyframes pet-sway{0%,to{rotate:-7deg}50%{rotate:7deg}}@keyframes pet-bob{0%,to{rotate:-9deg}50%{rotate:10deg}}@keyframes pet-wiggle{0%,to{rotate:-11deg}50%{rotate:12deg}}@keyframes pet-blink{0%,91%,to{scale:1}94%,97%{scale:1 .1}}@keyframes pet-tilt{0%,to{translate:0;rotate:-5deg}50%{translate:0 -4px;rotate:5deg}}@keyframes pet-nod{0%,40%,to{translate:0;rotate:0deg}52%{translate:0 4px;rotate:-9deg}64%{translate:0;rotate:0deg}76%{translate:0 4px;rotate:-9deg}}@keyframes pet-bounce{0%,to{translate:0;scale:1}12%{translate:0 4px;scale:1.08 .9}45%{translate:0 -26px;scale:.96 1.06}70%{translate:0;scale:1.04 .96}85%{translate:0 -5px;scale:1}}@keyframes pet-spread{0%,to{scale:.9 1}45%{scale:1.15 1}}@keyframes pet-burst{0%{opacity:0;translate:0;scale:.2}30%{opacity:1}to{opacity:0;translate:var(--dx) var(--dy);scale:1}}@keyframes pet-breathe{0%,to{rotate:6deg;scale:1}50%{rotate:6deg;scale:1.03}}@keyframes pet-beat{0%,to{translate:0}50%{translate:0 -3px}}@keyframes pet-talk{0%{scale:1 .35}to{scale:1}}@keyframes pet-twinkle{0%,to{opacity:0;scale:.3}50%{opacity:1;scale:1}}@keyframes pet-zzz{0%{opacity:0;translate:0;scale:.6}25%{opacity:1}to{opacity:0;translate:-18px -46px;scale:1.2}}@keyframes pet-trail{0%{opacity:0;scale:0}20%{opacity:.9;scale:1}to{opacity:0;translate:0 14px;scale:.2}}@keyframes pet-pop{0%{opacity:0;translate:0 8px;scale:.7}to{opacity:1;translate:0;scale:1}}@keyframes pet-star{0%,to{scale:.85}50%{scale:1.15}}@keyframes pet-wave{0%,to{rotate:18deg}50%{rotate:34deg}}@keyframes pet-flourish{0%,to{rotate:10deg}50%{rotate:48deg}}@keyframes pet-dots{0%,60%,to{opacity:.4;translate:0}30%{opacity:1;translate:0 -4px}}.motion .pet-float{animation:3.2s ease-in-out infinite pet-float}.motion .pet-shadow{animation:3.2s ease-in-out infinite pet-shadow}.motion .pet-wing{animation:1.1s ease-in-out infinite alternate pet-flap}.motion .pet-antenna{animation:2.8s ease-in-out infinite pet-sway}.motion .pet-eyes-open{animation:4.4s linear infinite pet-blink}.motion .pet-wand{animation:3.2s ease-in-out infinite pet-wave}.motion .pet-wand-star{animation:1.6s ease-in-out infinite pet-star}.motion .pet:is([data-state=hello],[data-state=happy],[data-state=talk]) .pet-wand{animation:.7s ease-in-out infinite pet-flourish}.motion .pet[data-state=think] .pet-wand{animation-duration:.9s}.motion .pet:is([data-state=sleep],[data-state=held]) :is(.pet-wand,.pet-wand-star){animation:none}.motion .pet[data-state=fly] .pet-wing{animation-duration:.2s}.motion .pet[data-state=fly] .pet-antenna{animation:none}.motion .pet[data-state=fly] .pet-float{animation-duration:.9s}.motion .pet[data-state=hello] .pet-float{transform-origin:50% 80%;animation:1.4s ease-in-out pet-nod}.motion .pet[data-state=hello] .pet-antenna{animation:.35s ease-in-out infinite pet-wiggle}.motion .pet[data-state=hello] .pet-wing{animation-duration:.6s}.motion .pet[data-state=happy] .pet-float{transform-origin:50% 100%;animation:1.3s ease-in-out infinite pet-bounce}.motion .pet[data-state=happy] .pet-wing{animation:1.3s ease-in-out infinite pet-spread}.motion .pet[data-state=happy] .pet-burst{display:block}.motion .pet[data-state=happy] .pet-burst i{animation:1.3s ease-out .4s infinite pet-burst}.motion .pet[data-state=sleep] .pet-float{transform-origin:50% 90%;animation:3.6s ease-in-out infinite pet-breathe}.motion .pet[data-state=sleep] .pet-wing,.motion .pet[data-state=sleep] .pet-antenna{animation:none}.motion .pet[data-state=sleep] .pet-zzz i{animation:3.6s ease-out infinite pet-zzz}.motion .pet[data-state=sleep] .pet-zzz i:nth-child(2){animation-delay:1.2s}.motion .pet[data-state=sleep] .pet-zzz i:nth-child(3){animation-delay:2.4s}.motion .pet[data-state=think] .pet-float{animation:1.6s ease-in-out infinite pet-tilt}.motion .pet[data-state=think] .pet-wing{animation-duration:.22s}.motion .pet[data-state=think] .pet-antenna{animation:.9s ease-in-out infinite pet-bob}.motion .pet[data-state=think] .pet-sparks i{animation:1.4s ease-in-out infinite pet-twinkle}.motion .pet[data-state=talk] .pet-float{animation:.5s ease-in-out infinite pet-beat}.motion .pet[data-state=talk] .pet-mouth{animation:.22s ease-in-out infinite alternate pet-talk}.motion .pet[data-state=talk] .pet-wing{animation-duration:.5s}.motion .pet[data-state=held] .pet-float{animation:none}.motion .pet[data-state=held] .pet-wing{animation-duration:.16s}.motion .pet[data-state=held] .pet-antenna{animation:.3s ease-in-out infinite pet-wiggle}html:not(.motion) .pet-zzz i:first-child,html:not(.motion) .pet-sparks i{opacity:1}.pet-chat{z-index:44;border:1px solid var(--line);background:var(--surface);width:min(380px,100vw - 32px);height:min(560px,100dvh - 150px);min-height:320px;color:var(--ink);transform-origin:85% 100%;border-radius:22px;flex-direction:column;display:flex;position:fixed;bottom:24px;right:24px;overflow:hidden;box-shadow:0 24px 60px #00000038,0 2px 8px #00000014}.motion .pet-chat:not([hidden]){animation:.3s cubic-bezier(.2,.9,.3,1.15) both pet-pop}.pet-chat-head{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:16px 14px 14px 16px;display:flex}.pet-chat-avatar{background:var(--soft);border-radius:50%;flex:none;width:40px;height:40px;position:relative;overflow:hidden}.pet-chat-avatar img{width:100%;height:100%;display:block}.pet-chat-titles{flex:1;min-width:0}.pet-chat-titles h2{letter-spacing:-.01em;font-size:1rem;line-height:1.3}.pet-chat-titles p{color:var(--muted);font-size:.8rem}.pet-chat-close{width:36px;height:36px;color:var(--muted);background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.pet-chat-close:hover{background:var(--soft);color:var(--ink)}.pet-chat-close svg,.pet-chat-send svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.pet-chat-log{overscroll-behavior:contain;flex-direction:column;flex:1;align-items:flex-start;gap:10px;padding:18px 16px;display:flex;overflow-y:auto}.pet-msg{overflow-wrap:anywhere;white-space:pre-wrap;border-radius:18px;max-width:86%;padding:10px 14px;font-size:.94rem;line-height:1.45}.pet-msg-bot{background:var(--soft);border-bottom-left-radius:6px}.pet-msg-bot a{color:inherit;text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.2em;text-decoration-thickness:2px}.pet-msg-bot a:hover{color:var(--accent)}.pet-msg-user{background:var(--accent);color:var(--accent-ink);border-bottom-right-radius:6px;align-self:flex-end}.motion .pet-msg{transform-origin:0 100%;animation:.25s ease-out both pet-pop}.motion .pet-msg-user{transform-origin:100% 100%}.pet-typing{align-items:center;gap:10px;display:flex}.pet-typing-dots{gap:5px;display:flex}.pet-typing i{background:var(--muted);border-radius:50%;width:7px;height:7px}.pet-typing-status{color:var(--muted);font-size:.84rem}.motion .pet-typing i{animation:1.1s ease-in-out infinite pet-dots}.motion .pet-typing i:nth-child(2){animation-delay:.15s}.motion .pet-typing i:nth-child(3){animation-delay:.3s}.pet-suggestions{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.pet-suggestions button{border:1px solid var(--line);color:var(--ink);text-align:left;background:0 0;border-radius:99px;padding:7px 13px;font-size:.84rem;transition:border-color .15s,color .15s}.pet-suggestions button:hover{border-color:var(--accent);color:var(--accent)}.pet-chat-form{border-top:1px solid var(--line);align-items:flex-end;gap:8px;padding:12px 12px 8px;display:flex}.pet-chat-form textarea{border:1px solid var(--line);background:var(--bg);min-height:44px;max-height:120px;color:var(--ink);font:inherit;resize:none;border-radius:16px;flex:1;padding:11px 14px;font-size:.94rem;line-height:1.4;overflow-y:hidden}.pet-chat-form textarea::placeholder{color:var(--muted)}.pet-chat-form textarea:focus-visible{outline:2px solid var(--accent);outline-offset:-1px;border-color:#0000}.pet-chat-send{background:var(--accent);width:44px;height:44px;color:var(--accent-ink);border:0;border-radius:50%;flex:none;place-items:center;padding:0;transition:opacity .15s,transform .15s;display:grid}.pet-chat-send:not(:disabled):hover{transform:translateY(-1px)}.pet-chat-send:disabled{opacity:.45;cursor:default}.pet-chat-foot{color:var(--muted);margin:0;padding:0 16px 12px;font-size:.75rem}@media (width<=640px){.pet{width:92px}.pet-chat{width:auto;height:min(560px,100dvh - 120px);bottom:8px;left:8px;right:8px}}
