.cao-pet-wall{--pet-size:97.5px;--pet-edge:20px;--pet-bottom:20px;position:fixed;inset:0 var(--pet-edge) 0 0;z-index:60;pointer-events:none}
.cao-pet-wall.is-revealing{clip-path:inset(0)}
.cao-pet-link{position:fixed;left:calc(100vw - var(--pet-size) - var(--pet-edge));top:calc(100dvh - var(--pet-size) - var(--pet-bottom));width:var(--pet-size);height:var(--pet-size);pointer-events:auto;touch-action:none;user-select:none;-webkit-user-drag:none;cursor:grab;text-decoration:none;color:var(--color-ink,#202520)}
.cao-pet-link.is-dragging{cursor:grabbing}
.cao-pet-link.is-arriving{pointer-events:none}
.cao-pet-sprite{position:relative;display:block;width:100%;height:100%;pointer-events:none}
.cao-pet-sprite canvas{display:block;width:100%;height:100%;image-rendering:pixelated;pointer-events:none}
.cao-pet-sprite.peek-head{clip-path:inset(0 0 40% 0)}
.cao-pet-shadow{position:absolute;width:45.5px;height:5.85px;bottom:1.3px;left:26px;filter:blur(3.25px);border-radius:50%;background:#26322c24;pointer-events:none}
.cao-pet-link.is-arriving .cao-pet-shadow,.cao-pet-link.is-dragging .cao-pet-shadow{opacity:0}
.cao-pet-hint{position:absolute;right:0;bottom:calc(100% + 6px);width:max-content;max-width:145px;padding:9px 12px;background:var(--color-ink,#202520);color:var(--color-on-dark,#fff);border-radius:16px;font-size:10px;line-height:1.4;box-shadow:3px 5px 12px #26322c12;opacity:0;transform:translateY(3px);transition:opacity .18s,transform .3s cubic-bezier(.22,1.35,.4,1);pointer-events:none}
.cao-pet-link:hover .cao-pet-hint,.cao-pet-link:focus-visible .cao-pet-hint{opacity:1;transform:translateY(0)}
.cao-pet-link.is-arriving .cao-pet-hint,.cao-pet-link.is-dragging .cao-pet-hint{opacity:0}
.cao-pet-link.hint-left .cao-pet-hint{right:auto;left:0}
.cao-pet-link.hint-below .cao-pet-hint{bottom:auto;top:calc(100% + 6px)}
.cao-pet-link:focus-visible{outline:2px solid var(--color-green,#518063);outline-offset:2px;border-radius:14px}
@media(max-width:600px){.cao-pet-wall{--pet-bottom:104px}}
@media(prefers-reduced-motion:reduce){.cao-pet-hint{transition:none}}

/* A small local contact panel; the Zalo link is a separate, explicit action. */
button.cao-pet-link{display:block;padding:0;border:0;background:transparent;text-align:left}
.cao-pet-link[aria-expanded="true"] .cao-pet-hint{opacity:0}
.pet-contact{position:fixed;z-index:160;width:min(336px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow-y:auto;padding:24px;background:var(--color-surface);color:var(--color-ink);border-radius:16px;box-shadow:8px 16px 48px -14px #20222040;isolation:isolate}
.pet-contact-header{display:flex;align-items:center;gap:12px}.pet-contact-header>img{width:48px;height:48px;object-fit:contain;border-radius:50%}.pet-contact-header>div{flex:1}.pet-contact h2{font:600 19px/1.35 var(--font-display);letter-spacing:-.025em}.pet-contact-header p{font-size:13px;line-height:1.6;color:var(--color-muted);margin-top:3px}
.pet-contact-close{width:44px;height:44px;display:grid;place-items:center;background:transparent;border-radius:50%;flex-shrink:0;color:var(--color-muted);transition:background-color .2s,transform .3s cubic-bezier(.22,1.15,.36,1)}.pet-contact-close svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}.pet-contact-close:hover{background:var(--color-paper);color:var(--color-ink)}.pet-contact-close:active{transform:scale(.94)}
.pet-contact-message{margin-top:22px;padding:16px;background:var(--color-paper);border-radius:12px;font-size:15px;line-height:1.7}.pet-contact-phone{margin:20px 0 16px;font-size:14px;line-height:1.6;color:var(--color-muted);font-variant-numeric:tabular-nums}.pet-contact-phone strong{font-size:16px;font-weight:500;color:var(--color-ink)}
.pet-contact-zalo{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;padding:13px 16px;background:var(--color-ink);color:var(--color-on-dark);border-radius:10px;font-size:15px;line-height:1.5;transition:transform .3s cubic-bezier(.22,1.15,.36,1),background-color .2s}.pet-contact-zalo svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.pet-contact-zalo:hover{background:var(--color-dark);transform:translateY(-1px)}.pet-contact-zalo:active{transform:scale(.985)}.pet-contact-note{margin-top:12px;font-size:13px;line-height:1.6;color:var(--color-muted)}
@media(max-width:600px){.pet-contact{padding:20px;max-height:calc(100dvh - 112px)}}
@media(prefers-reduced-motion:reduce){.pet-contact-close,.pet-contact-zalo{transition:none;transform:none}}
