:root{--pet-accent:#a855f7;--pet-size:112px;--pet-z:9999;--pet-glow-color:var(--pet-accent);--pet-glow-opacity:38%;--pet-chat-bg:#ffffffeb;--pet-chat-border:#0000001a;--pet-chat-text:#111827;--pet-chat-subtext:#11182799;--pet-chat-input-bg:#0000000d;--pet-bubble-bg:#fffffff2;--pet-bubble-border:var(--pet-accent);--pet-bubble-text:#111827;--pet-bubble-shadow:#a855f733;--pet-bubble-secondary-border:#00000014;--pet-chat-shadow:#0000001a}.dark{--pet-chat-bg:#0a0a12eb;--pet-chat-border:#ffffff14;--pet-chat-text:#e8e4de;--pet-chat-subtext:#e8e4de80;--pet-chat-input-bg:#ffffff0d;--pet-bubble-bg:#0c0c14e0;--pet-bubble-border:var(--pet-accent);--pet-bubble-text:#f0ede8;--pet-bubble-shadow:#0009;--pet-font-pixel:"Press Start 2P", "Courier New", monospace;--pet-font-ui:"Inter", "Segoe UI", system-ui, sans-serif;--pet-severity-error:#ef4444;--pet-severity-warning:#f59e0b;--pet-severity-success:#22c55e;--pet-severity-info:var(--pet-accent)}.pet-overlay{z-index:var(--pet-z);-webkit-user-select:none;user-select:none;pointer-events:none;--pet-accent:var(--pet-accent);flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:fixed}.pet-sprite{width:var(--pet-size);height:var(--pet-size);cursor:grab;pointer-events:all;animation:var(--pet-anim,pet-float) 2.8s ease-in-out infinite;filter:drop-shadow(0 6px 14px color-mix(in srgb, var(--pet-glow-color) var(--pet-glow-opacity), transparent));border-radius:50%;transition:filter .2s,transform .15s;position:relative}.pet-overlay.no-glow .pet-sprite{filter:none!important}.pet-sprite:hover{filter:drop-shadow(0 8px 24px color-mix(in srgb, var(--pet-glow-color) calc(var(--pet-glow-opacity) + 22%), transparent));transform:scale(1.06)}.pet-sprite:active{cursor:grabbing;transform:scale(.96)}.pet-overlay.pet-flipped .pet-sprite{transform:scaleX(-1)}.pet-overlay.pet-flipped .pet-sprite:hover{transform:scaleX(-1)scale(1.06)}.pet-overlay.pet-flipped .pet-sprite:active{transform:scaleX(-1)scale(.96)}.pet-sprite-badge{background:var(--pet-accent);width:16px;height:16px;font-family:var(--pet-font-ui);color:#fff;pointer-events:none;border:2px solid #09090f;border-radius:50%;justify-content:center;align-items:center;font-size:8px;font-weight:700;animation:.3s cubic-bezier(.34,1.56,.64,1) both pet-badge-pop;display:flex;position:absolute;top:-3px;right:-3px}.pet-sprite-glyph{width:100%;height:100%;font-size:calc(var(--pet-size) * .72);image-rendering:pixelated;image-rendering:crisp-edges;justify-content:center;align-items:center;line-height:1;display:flex}.pet-image{width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges;background-repeat:no-repeat;display:block}.pet-image.static{background-position:50%;background-size:contain}.pet-image.atlas,.pet-image.frames{background-size:auto}.pet-sprite-shadow{background:color-mix(in srgb, var(--pet-glow-color) calc(var(--pet-glow-opacity) * .5), transparent);filter:blur(4px);pointer-events:none;border-radius:50%;width:55%;height:10px;animation:2.8s ease-in-out infinite pet-shadow-pulse;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)}.pet-overlay.no-glow .pet-sprite-shadow{display:none!important}.pet-toast{pointer-events:all;background:var(--pet-bubble-bg);-webkit-backdrop-filter:blur(16px)saturate(1.4);border:1.5px solid color-mix(in srgb, var(--pet-bubble-border) 40%, var(--pet-bubble-secondary-border));max-width:240px;box-shadow:2px 2px 0 0 color-mix(in srgb, var(--pet-bubble-border) 30%, var(--pet-bubble-secondary-border)), 0 8px 24px var(--pet-bubble-shadow);border-radius:4px;padding:10px 14px 8px;animation:.22s cubic-bezier(.34,1.56,.64,1) both pet-toast-in;position:relative}.pet-toast:after{content:"";background:var(--pet-bubble-bg);border-right:1.5px solid color-mix(in srgb, var(--pet-bubble-border) 40%, var(--pet-bubble-secondary-border));border-bottom:1.5px solid color-mix(in srgb, var(--pet-bubble-border) 40%, var(--pet-bubble-secondary-border));width:9px;height:9px;box-shadow:1px 1px 0 0 color-mix(in srgb, var(--pet-bubble-border) 30%, var(--pet-bubble-secondary-border));position:absolute;bottom:-9px;right:20px;transform:rotate(45deg)}.pet-toast[data-severity=error]{--pet-bubble-border:var(--pet-severity-error);background:#ef44441f}.pet-toast[data-severity=warning]{--pet-bubble-border:var(--pet-severity-warning);background:#f59e0b1f}.pet-toast[data-severity=success]{--pet-bubble-border:var(--pet-severity-success);background:#22c55e1f}.pet-toast-header{align-items:center;gap:6px;margin-bottom:5px;display:flex}.pet-toast-icon{background:var(--pet-bubble-border);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;font-size:8px;font-weight:700;display:flex}.pet-toast-name{font-family:var(--pet-font-pixel);letter-spacing:.6px;color:var(--pet-bubble-border);text-transform:uppercase;flex:1;font-size:9px;font-weight:600}.pet-toast-close{color:var(--pet-chat-subtext);cursor:pointer;pointer-events:all;background:0 0;border:none;padding:0 2px;font-size:12px;line-height:1;transition:color .15s}.pet-toast-close:hover{color:var(--pet-bubble-text)}.pet-toast-text{font-family:var(--pet-font-ui);color:var(--pet-bubble-text);font-size:12px;line-height:1.55}.pet-toast-text.typewriter:after{content:"▋";color:var(--pet-bubble-border);margin-left:2px;font-size:10px;animation:.9s step-end infinite pet-cursor-blink}.pet-toast-mood{background:var(--pet-accent);width:6px;height:6px;box-shadow:0 0 4px var(--pet-accent);vertical-align:middle;border-radius:50%;margin-left:4px;animation:2s ease-in-out infinite pet-mood-pulse;display:inline-block}.pet-toast-mood[data-mood=bored]{background:#6b7280;box-shadow:0 0 4px #6b7280}.pet-toast-mood[data-mood=happy]{background:var(--pet-severity-success);box-shadow:0 0 4px var(--pet-severity-success)}.pet-toast-mood[data-mood=excited]{background:var(--pet-severity-warning);box-shadow:0 0 6px var(--pet-severity-warning)}.pet-chat-panel{pointer-events:all;transform-origin:100% 100%;background:var(--pet-chat-bg);-webkit-backdrop-filter:blur(24px)saturate(1.6);border:1px solid var(--pet-chat-border);width:300px;max-height:440px;box-shadow:0 0 0 1px color-mix(in srgb, var(--pet-accent) 15%, transparent), 0 24px 48px var(--pet-chat-shadow), inset 0 1px 0 color-mix(in srgb, var(--pet-chat-text) 5%, transparent);border-radius:10px;flex-direction:column;animation:.25s cubic-bezier(.34,1.56,.64,1) both pet-chat-in;display:flex;overflow:hidden}.pet-chat-header{border-bottom:1px solid var(--pet-chat-border);flex-direction:column;flex-shrink:0;align-items:center;padding:0 0 12px;display:flex;position:relative}.pet-chat-header-banner{background:linear-gradient(160deg, color-mix(in srgb, var(--pet-accent) 22%, #0a0a12), #0a0a1299);width:100%;height:72px;position:relative;overflow:hidden}.pet-chat-header-banner:before{content:"";background-image:linear-gradient(#ffffff08 1px,#0000 1px),linear-gradient(90deg,#ffffff08 1px,#0000 1px);background-size:20px 20px;position:absolute;inset:0}.pet-chat-header-actions{z-index:1;gap:2px;display:flex;position:absolute;top:8px;right:8px}.pet-chat-avatar{background:color-mix(in srgb, var(--pet-accent) 12%, #0a0a12e6);border:2px solid color-mix(in srgb, var(--pet-accent) 50%, transparent);width:72px;height:72px;box-shadow:0 0 0 4px #0a0a12e6, 0 4px 20px color-mix(in srgb, var(--pet-accent) 30%, transparent);image-rendering:pixelated;z-index:2;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:-36px;font-size:40px;animation:2.8s ease-in-out infinite pet-float;display:flex;position:relative;overflow:hidden}.pet-chat-avatar-sprite{width:100%;height:100%;image-rendering:pixelated;background-repeat:no-repeat}.pet-chat-avatar.scanlines:after{content:"";pointer-events:none;background:linear-gradient(#12101000 50%,#00000040 50%) 0 0/100% 4px,linear-gradient(90deg,#ff00000f,#00ff0005,#0000ff0f) 0 0/6px 100%;position:absolute;inset:0}.pet-chat-header-info{text-align:center;margin-top:8px}.pet-chat-name{font-family:var(--pet-font-ui);color:var(--pet-chat-text);font-size:14px;font-weight:600}.pet-chat-status{color:var(--pet-chat-subtext);justify-content:center;align-items:center;gap:5px;margin-top:2px;font-size:10px;display:flex}.pet-chat-status-dot{background:var(--pet-severity-success);width:6px;height:6px;box-shadow:0 0 4px var(--pet-severity-success);border-radius:50%;animation:2.5s ease-in-out infinite pet-mood-pulse}.pet-chat-icon-btn{color:var(--pet-chat-subtext);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;transition:background .12s,color .12s;display:flex}.pet-chat-icon-btn:hover{color:var(--pet-chat-text);background:#ffffff14}.pet-chat-messages{overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;flex-direction:column;flex:1;gap:8px;min-height:0;padding:12px;display:flex;overflow-y:auto}.pet-chat-messages::-webkit-scrollbar{width:4px}.pet-chat-messages::-webkit-scrollbar-track{background:0 0}.pet-chat-messages::-webkit-scrollbar-thumb{background:var(--pet-chat-border);border-radius:4px}.pet-msg{align-items:flex-end;gap:8px;animation:.2s both pet-msg-in;display:flex}.pet-msg.pet-msg-user{flex-direction:row-reverse}.pet-msg-avatar{background:var(--pet-chat-input-bg);border:1px solid var(--pet-chat-border);width:24px;height:24px;image-rendering:pixelated;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;display:flex;overflow:hidden}.pet-msg-bubble{max-width:72%;font-family:var(--pet-font-ui);color:var(--pet-chat-text);word-break:break-word;border-radius:12px;padding:8px 11px;font-size:12.5px;line-height:1.5;position:relative}.pet-msg-bubble b{color:var(--pet-accent);font-weight:700}.pet-msg-bubble .pet-link{color:var(--pet-accent);text-underline-offset:2px;font-weight:600;text-decoration:underline}.pet-msg-bubble .pet-link:hover{filter:brightness(1.2)}.pet-msg-bubble .pet-ul{margin:8px 0;padding-left:18px;list-style-type:disc}.pet-msg-bubble .pet-li{margin-bottom:4px}.pet-msg:not(.pet-msg-user) .pet-msg-bubble{background:var(--pet-chat-input-bg);border:1px solid var(--pet-chat-border);border-bottom-left-radius:4px}.pet-msg.pet-msg-user .pet-msg-bubble{background:color-mix(in srgb, var(--pet-accent) 22%, transparent);border:1px solid color-mix(in srgb, var(--pet-accent) 35%, transparent);color:var(--pet-chat-text);border-bottom-right-radius:4px}.pet-msg-bubble[data-severity=error]{background:#ef444426;border-color:#ef444459}.pet-msg-bubble[data-severity=warning]{background:#f59e0b26;border-color:#f59e0b59}.pet-msg-bubble[data-severity=success]{background:#22c55e26;border-color:#22c55e59}.pet-msg-severity-pip{vertical-align:middle;border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-right:5px;display:inline-block}.pet-msg-severity-pip[data-s=error]{background:var(--pet-severity-error)}.pet-msg-severity-pip[data-s=warning]{background:var(--pet-severity-warning)}.pet-msg-severity-pip[data-s=success]{background:var(--pet-severity-success)}.pet-msg-time{color:var(--pet-chat-subtext);margin-top:2px;padding:0 4px;font-size:9px}.pet-msg.pet-msg-user .pet-msg-time{text-align:right}.pet-msg-col{flex-direction:column;max-width:75%;display:flex}.pet-msg.pet-msg-user .pet-msg-col{align-items:flex-end}.pet-typing{align-items:center;gap:8px;padding:4px 0;animation:.2s both pet-msg-in;display:flex}.pet-typing-dots{background:var(--pet-chat-input-bg);border:1px solid var(--pet-chat-border);border-radius:10px;gap:4px;padding:8px 12px;display:flex}.pet-typing-dots span{background:var(--pet-accent);border-radius:50%;width:5px;height:5px;animation:1.2s ease-in-out infinite pet-typing-bounce}.pet-typing-dots span:nth-child(2){animation-delay:.2s}.pet-typing-dots span:nth-child(3){animation-delay:.4s}.pet-chat-footer{border-top:1px solid var(--pet-chat-border);background:#ffffff05;flex-shrink:0;align-items:flex-end;gap:8px;padding:10px 12px;display:flex}.pet-chat-input{background:var(--pet-chat-input-bg);border:1px solid var(--pet-chat-border);color:var(--pet-chat-text);font-family:var(--pet-font-ui);resize:none;border-radius:8px;outline:none;flex:1;min-height:36px;max-height:100px;padding:8px 10px;font-size:12.5px;line-height:1.45;transition:border-color .15s,background .15s}.pet-chat-input:focus{border-color:color-mix(in srgb, var(--pet-accent) 55%, transparent);background:#ffffff12}.pet-chat-input::placeholder{color:var(--pet-chat-subtext)}.pet-chat-send{background:var(--pet-accent);color:#fff;cursor:pointer;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:14px;transition:background .15s,transform .1s;display:flex}.pet-chat-send:hover{background:color-mix(in srgb, var(--pet-accent) 80%, white 20%)}.pet-chat-send:active{transform:scale(.93)}.pet-chat-send:disabled{opacity:.4;cursor:not-allowed}.pet-chat-chips{flex-wrap:wrap;flex-shrink:0;gap:5px;padding:6px 12px 0;display:flex}.pet-chat-chip{font-family:var(--pet-font-ui);border:1px solid color-mix(in srgb, var(--pet-accent) 35%, transparent);background:color-mix(in srgb, var(--pet-accent) 10%, transparent);color:color-mix(in srgb, var(--pet-chat-text) 75%, transparent);cursor:pointer;white-space:nowrap;border-radius:20px;padding:4px 10px;font-size:11px;transition:background .14s,color .14s,border-color .14s}.pet-chat-chip:hover{background:color-mix(in srgb, var(--pet-accent) 22%, transparent);border-color:var(--pet-accent);color:var(--pet-chat-text)}@keyframes pet-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes pet-bounce{0%,to{transform:translateY(0)scaleY(1)}40%,60%{transform:translateY(-10px)scaleY(1.05)}80%{transform:translateY(0)scaleY(.95)}}@keyframes pet-sway{0%,to{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}@keyframes pet-wiggle{0%,to{transform:rotate(0)}20%{transform:rotate(-6deg)}40%{transform:rotate(6deg)}60%{transform:rotate(-4deg)}80%{transform:rotate(4deg)}}@keyframes pet-frames{0%{background-position-x:0%}to{background-position-x:100%}}@keyframes pet-shadow-pulse{0%,to{opacity:.6;transform:translate(-50%)scaleX(1)}50%{opacity:.3;transform:translate(-50%)scaleX(.7)}}@keyframes pet-toast-in{0%{opacity:0;transform:scale(.88)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes pet-toast-out{0%{opacity:1;transform:scale(1)translateY(0)}to{opacity:0;transform:scale(.9)translateY(4px)}}@keyframes pet-chat-in{0%{opacity:0;transform:scale(.9)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes pet-cursor-blink{0%,to{opacity:1}50%{opacity:0}}@keyframes pet-mood-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.85)}}@keyframes pet-typing-bounce{0%,80%,to{opacity:.4;transform:translateY(0)}40%{opacity:1;transform:translateY(-5px)}}@keyframes pet-msg-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes pet-badge-pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@media (max-width:600px){.pet-overlay{bottom:80px!important;right:16px!important}.pet-chat-panel{width:100vw;max-width:none;height:100dvh;max-height:none;z-index:calc(var(--pet-z) + 1);border-radius:0;flex-direction:column;display:flex;position:fixed;inset:0}.pet-chat-panel .pet-chat-messages{-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;touch-action:pan-y;flex:1;min-height:0;overflow-y:auto}.pet-chat-panel .pet-chat-footer{padding-bottom:calc(10px + env(safe-area-inset-bottom));flex-shrink:0}.pet-sprite{width:calc(var(--pet-size) * .78);height:calc(var(--pet-size) * .78)}.pet-toast{max-width:200px}}
