.pet-container{position:fixed;z-index:9999;pointer-events:auto;cursor:grab;image-rendering:pixelated;transition:none}.pet-container.pet-dragging{cursor:grabbing}.pet-container.pet-following{transition:left .15s ease-out,top .15s ease-out;pointer-events:none}.pet-container.pet-farming-walk{transition:left .8s ease-in-out,top .8s ease-in-out}.pet-sprite{width:48px;height:48px;position:relative}.pet-sprite-img{position:absolute;top:0;left:0;image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges}.pet-state-idle .pet-sprite{animation:pet-bob 2s ease-in-out infinite}@keyframes pet-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}.pet-state-celebrating .pet-sprite{animation:pet-jump .4s ease-in-out 3}@keyframes pet-jump{0%,100%{transform:translateY(0)}40%{transform:translateY(-12px)}}.pet-state-sad .pet-sprite{animation:pet-droop 1.5s ease-in-out infinite}@keyframes pet-droop{0%,100%{transform:translateY(0)}50%{transform:translateY(2px)}}.pet-state-sleeping .pet-sprite{animation:pet-sleep-bob 3s ease-in-out infinite}@keyframes pet-sleep-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(1px)}}.pet-zzz{position:absolute;top:-14px;right:-8px;font-size:10px;color:var(--foreground);opacity:0;animation:pet-zzz-float 2s ease-in-out infinite;pointer-events:none}@keyframes pet-zzz-float{0%{opacity:0;transform:translateY(0)}30%{opacity:.7}100%{opacity:0;transform:translateY(-10px)}}.pet-state-flung .pet-sprite{animation:pet-spin .3s linear infinite}@keyframes pet-spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}.pet-speech{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:var(--background);color:var(--foreground);border:1px solid var(--foreground);padding:4px 8px;font-size:11px;font-family:inherit;white-space:nowrap;pointer-events:none;max-width:200px;overflow:hidden;text-overflow:ellipsis}.pet-speech::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:4px solid transparent;border-top-color:var(--foreground)}.pet-spawning{pointer-events:none}.pet-spawning .pet-sprite{animation:pet-spawn .8s cubic-bezier(.34,1.56,.64,1)forwards!important}@keyframes pet-spawn{0%{opacity:0;transform:scale(0)rotate(-30deg);filter:brightness(3)}30%{opacity:1;transform:scale(1.3)rotate(5deg);filter:brightness(2)}50%{transform:scale(.9)rotate(-3deg);filter:brightness(1.2)}70%{transform:scale(1.1)rotate(1deg);filter:brightness(1)}100%{opacity:1;transform:scale(1)rotate(0);filter:brightness(1)}}.pet-spawn-glow{position:absolute;top:50%;left:50%;width:80px;height:80px;margin:-40px 0 0 -40px;border-radius:50%;pointer-events:none;animation:pet-spawn-ring .8s ease-out forwards}@keyframes pet-spawn-ring{0%{opacity:.8;transform:scale(0);box-shadow:0 0 20px 10px var(--accent)}50%{opacity:.5;transform:scale(1.2);box-shadow:0 0 30px 15px var(--accent)}100%{opacity:0;transform:scale(2);box-shadow:0 0 0 0 var(--accent)}}.pet-spawn-sparkle{position:fixed;z-index:10001;width:4px;height:4px;background:var(--accent);pointer-events:none;border-radius:50%;animation:pet-sparkle-fly .7s ease-out forwards}@keyframes pet-sparkle-fly{0%{opacity:1;transform:translate(0,0)scale(1)}100%{opacity:0;transform:translate(var(--sx),var(--sy))scale(0)}}.pet-coin-particle{position:fixed;z-index:10000;font-size:12px;pointer-events:none;animation:pet-coin-fly .8s ease-out forwards}@keyframes pet-coin-fly{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-30px)}}@media(max-width:768px){.pet-sprite{width:48px;height:48px}}.pet-teleporter{position:fixed;bottom:12px;right:12px;width:64px;height:64px;z-index:9998;cursor:pointer;clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);background:color-mix(in srgb,var(--accent) 10%,transparent);animation:teleporter-idle-pulse 3s ease-in-out infinite}.pet-teleporter-pad{position:absolute;top:50%;left:50%;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:var(--accent);opacity:.5;box-shadow:0 0 6px var(--accent)}@keyframes teleporter-idle-pulse{0%,100%{box-shadow:inset 0 0 8px color-mix(in srgb,var(--accent) 15%,transparent)}50%{box-shadow:inset 0 0 16px color-mix(in srgb,var(--accent) 30%,transparent)}}.pet-teleporter-away{animation:teleporter-away-pulse 1.5s ease-in-out infinite;background:color-mix(in srgb,var(--accent) 20%,transparent)}.pet-teleporter-away .pet-teleporter-pad{opacity:.9;box-shadow:0 0 10px var(--accent),0 0 20px color-mix(in srgb,var(--accent) 40%,transparent)}@keyframes teleporter-away-pulse{0%,100%{box-shadow:inset 0 0 12px color-mix(in srgb,var(--accent) 25%,transparent)}50%{box-shadow:inset 0 0 24px color-mix(in srgb,var(--accent) 50%,transparent)}}@media(max-width:768px){.pet-teleporter{width:58px;height:58px}}.pet-beam-column{position:fixed;z-index:10000;width:40px;pointer-events:none;background:linear-gradient(to top,color-mix(in srgb,var(--accent) 50%,transparent),color-mix(in srgb,var(--accent) 20%,transparent) 60%,transparent);box-shadow:0 0 12px color-mix(in srgb,var(--accent) 30%,transparent),0 0 24px color-mix(in srgb,var(--accent) 15%,transparent);animation:beam-column-pulse .8s ease-out forwards;transform-origin:bottom center}@keyframes beam-column-pulse{0%{transform:scaleY(.2);opacity:0}30%{opacity:1}100%{transform:scaleY(1);opacity:1}}.pet-beaming-up .pet-sprite{animation:pet-beam-up 1s ease-in forwards!important}@keyframes pet-beam-up{0%{filter:brightness(1);transform:scaleY(1)translateY(0);opacity:1}40%{filter:brightness(2);transform:scaleY(1)translateY(-5px);opacity:1}70%{filter:brightness(3);transform:scaleY(.5)translateY(-20px);opacity:.6}100%{filter:brightness(4);transform:scaleY(.1)translateY(-40px);opacity:0}}.pet-beaming-down .pet-sprite{animation:pet-beam-down 1s ease-out forwards!important}@keyframes pet-beam-down{0%{filter:brightness(4);transform:scaleY(.1)translateY(-40px);opacity:0}30%{filter:brightness(3);transform:scaleY(.5)translateY(-20px);opacity:.6}60%{filter:brightness(2);transform:scaleY(1)translateY(-5px);opacity:1}100%{filter:brightness(1);transform:scaleY(1)translateY(0);opacity:1}}.pet-beam-sparkle{position:fixed;z-index:10001;width:3px;height:3px;background:var(--accent);border-radius:50%;pointer-events:none;box-shadow:0 0 4px var(--accent);animation:beam-sparkle-fly .8s ease-out forwards}@keyframes beam-sparkle-fly{0%{opacity:1;transform:translate(0,0)scale(1)}100%{opacity:0;transform:translate(var(--beam-dx),var(--beam-dy))scale(0)}}.pet-dirt-particle{position:fixed;z-index:9996;width:3px;height:3px;border-radius:50%;background:#8b6914;pointer-events:none;animation:dirt-fade .8s ease-out forwards}@keyframes dirt-fade{0%{opacity:.6;transform:scale(1)}100%{opacity:0;transform:scale(.3)}}.hatch-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:10010;background:color-mix(in srgb,var(--background) 85%,transparent);display:flex;flex-direction:column;align-items:center;justify-content:center;animation:hatch-fade-in .3s ease-out}@keyframes hatch-fade-in{0%{opacity:0}100%{opacity:1}}.hatch-stage{text-align:center;pointer-events:none;display:flex;flex-direction:column;align-items:center}.hatch-focal{position:relative;width:120px;height:120px;flex-shrink:0}.hatch-egg-sprite{position:absolute;top:50%;left:50%;margin:-40px 0 0 -40px;width:80px;height:80px;background-image:url(/images/pets/items.png);background-repeat:no-repeat;background-size:calc(80px/16px * 80px);background-size:400px;image-rendering:pixelated;animation:hatch-wobble 1.5s ease-in-out,hatch-color-cycle 1.5s steps(1)forwards}@keyframes hatch-wobble{0%{transform:rotate(0)}10%{transform:rotate(5deg)}20%{transform:rotate(-6deg)}30%{transform:rotate(7deg)}40%{transform:rotate(-8deg)}50%{transform:rotate(10deg)}55%{transform:rotate(-10deg)}60%{transform:rotate(12deg)}65%{transform:rotate(-12deg)}70%{transform:rotate(0)scale(1.2)}80%{transform:scale(1.4);opacity:.8}90%{transform:scale(2);opacity:0}100%{transform:scale(2);opacity:0}}@keyframes hatch-color-cycle{0%{background-position:0 0}25%{background-position:-80px 0}50%{background-position:-160px 0}75%{background-position:-240px 0}90%{background-position:-320px 0}100%{background-position:-320px 0}}.hatch-vfx{position:absolute;top:50%;left:50%;width:48px;height:48px;margin:-24px 0 0 -24px;background-image:url(/images/pets/battle_vfx.png);background-repeat:no-repeat;image-rendering:pixelated;pointer-events:none;opacity:0;transform:scale(3);transform-origin:center}.hatch-vfx-common{background-position:0 0;animation:hatch-vfx-flash .5s 1.4s ease-out forwards}.hatch-vfx-rare{background-position:0 -336px;animation:hatch-vfx-rings .6s 1.4s steps(4)forwards}@keyframes hatch-vfx-rings{0%{opacity:1;background-position:0 -336px}25%{background-position:-48px -336px}50%{background-position:-96px -336px}75%{background-position:-144px -336px}100%{opacity:0;background-position:-192px -336px}}.hatch-vfx-legendary{background-position:0 -48px;animation:hatch-vfx-flash .5s 1.4s ease-out forwards}@keyframes hatch-vfx-flash{0%{opacity:1;transform:scale(2)}50%{opacity:.8;transform:scale(4)}100%{opacity:0;transform:scale(5)}}.hatch-sparkle{position:absolute;top:50%;left:50%;width:48px;height:48px;margin:-24px 0 0 -24px;background-image:url(/images/pets/battle_vfx.png);background-repeat:no-repeat;image-rendering:pixelated;transform:scale(3);transform-origin:center;pointer-events:none;animation:hatch-sparkle-play 1s 1.8s steps(5)both}@keyframes hatch-sparkle-play{0%{opacity:1;background-position:0 -816px}20%{background-position:-48px -816px}40%{background-position:-96px -816px}60%{background-position:-144px -816px}80%{background-position:-192px -816px}100%{opacity:0;background-position:-240px -816px}}.hatch-particle{position:absolute;width:4px;height:4px;background:var(--accent);border-radius:50%;pointer-events:none;opacity:0;animation:hatch-particle-fly .8s ease-out forwards}@keyframes hatch-particle-fly{0%{opacity:1;transform:translate(0,0)scale(1)}100%{opacity:0;transform:translate(var(--hx),var(--hy))scale(0)}}.hatch-creature{position:absolute;top:50%;left:50%;opacity:0;animation:hatch-creature-emerge .6s 1.4s cubic-bezier(.34,1.56,.64,1)forwards}@keyframes hatch-creature-emerge{0%{opacity:0;transform:translate(-50%,-50%)scale(0);filter:brightness(4)}30%{opacity:1;transform:translate(-50%,-50%)scale(1.3);filter:brightness(2.5)}60%{transform:translate(-50%,-50%)scale(.9);filter:brightness(1.3)}80%{transform:translate(-50%,-50%)scale(1.05);filter:brightness(1)}100%{opacity:1;transform:translate(-50%,-50%)scale(1);filter:brightness(1)}}.hatch-reveal{position:relative;animation:hatch-reveal-in .4s 2s ease-out both}@keyframes hatch-reveal-in{0%{opacity:0;transform:translateY(8px)}100%{opacity:1;transform:translateY(0)}}.hatch-name{margin-top:12px;font-weight:600;font-size:1.1em;color:var(--foreground);animation:hatch-reveal-in .4s 2s ease-out both}.hatch-badge{display:inline-block;position:relative;width:64px;height:32px;margin-top:6px;font-size:.65em;font-weight:600;text-transform:uppercase;letter-spacing:.05em;line-height:32px;text-align:center;color:var(--background);text-shadow:0 1px 0 rgba(0,0,0,.3);background-image:url(/images/pets/icons.png);background-repeat:no-repeat;background-size:1020px 416px;image-rendering:pixelated;animation:hatch-reveal-in .4s 2.1s ease-out both;border:none}.hatch-badge-fire{background-position:-32px -224px}.hatch-badge-aqua{background-position:-128px -224px}.hatch-badge-mystic{background-position:-224px -224px}.hatch-badge-tech{background-position:-320px -224px}.hatch-badge-nature{background-position:-32px -288px}.hatch-badge-shadow{background-position:-224px -288px}.hatch-label{margin-top:8px;font-size:.9em;color:var(--accent);animation:hatch-reveal-in .4s 2.2s ease-out both}.hatch-label-new{color:gold;font-weight:600}.hatch-label-dup{color:color-mix(in srgb,var(--foreground) 60%,transparent)}.hatch-overlay-rare{animation:hatch-fade-in .3s ease-out,hatch-rare-bg-flash 2s .3s ease-out}@keyframes hatch-rare-bg-flash{0%{background-color:color-mix(in srgb,var(--background) 85%,transparent)}25%{background-color:color-mix(in srgb,var(--accent) 10%,var(--background))}55%{background-color:color-mix(in srgb,var(--background) 85%,transparent)}100%{background-color:color-mix(in srgb,var(--background) 85%,transparent)}}.hatch-rare-ring{position:absolute;top:50%;left:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:2px solid var(--accent);border-radius:50%;pointer-events:none;opacity:0;animation:hatch-rare-ring-expand .8s ease-out forwards}@keyframes hatch-rare-ring-expand{0%{opacity:.7;transform:scale(1);box-shadow:0 0 8px var(--accent)}60%{opacity:.3;transform:scale(5)}100%{opacity:0;transform:scale(8);box-shadow:0 0 transparent}}.hatch-rare-shimmer{position:absolute;top:50%;left:50%;width:48px;height:48px;margin:-24px 0 0 -24px;background-image:url(/images/pets/battle_vfx.png);background-repeat:no-repeat;image-rendering:pixelated;transform:scale(3);transform-origin:center;pointer-events:none;filter:hue-rotate(0)brightness(1.2);animation:hatch-sparkle-play 1s 1.8s steps(5)both}.hatch-overlay-legendary{animation:hatch-fade-in .3s ease-out,hatch-legendary-bg-flash 2.5s .3s ease-out}@keyframes hatch-legendary-bg-flash{0%{background-color:color-mix(in srgb,var(--background) 85%,transparent)}30%{background-color:color-mix(in srgb,#ffd700 15%,var(--background))}60%{background-color:color-mix(in srgb,var(--background) 85%,transparent)}100%{background-color:color-mix(in srgb,var(--background) 85%,transparent)}}.hatch-tier{margin-top:4px;font-size:.75em;font-weight:700;text-transform:uppercase;letter-spacing:.1em;animation:hatch-reveal-in .4s 2.15s ease-out both}.hatch-tier-common{color:color-mix(in srgb,var(--foreground) 60%,transparent)}.hatch-tier-rare{color:var(--accent)}.hatch-tier-legendary{color:gold;text-shadow:0 0 6px rgba(255,215,0,.5)}.hatch-dismiss{margin-top:16px;font-size:.8em;color:color-mix(in srgb,var(--foreground) 40%,transparent);animation:hatch-reveal-in .3s 2.5s ease-out both;pointer-events:auto;cursor:pointer}.evo-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:10010;background:color-mix(in srgb,var(--background) 90%,transparent);display:flex;flex-direction:column;align-items:center;justify-content:center;animation:hatch-fade-in .3s ease-out}.evo-stage{text-align:center;pointer-events:none;position:relative;display:flex;flex-direction:column;align-items:center;min-width:140px;min-height:140px;justify-content:center}.evo-creature-old,.evo-creature-new{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.evo-creature-old{animation:evo-pulse 1s .3s ease-in-out forwards}@keyframes evo-pulse{0%{filter:brightness(1)drop-shadow(0 0 0 var(--accent))}40%{filter:brightness(1.4)drop-shadow(0 0 10px var(--accent))}70%{filter:brightness(2)drop-shadow(0 0 20px var(--accent))}100%{filter:brightness(3)drop-shadow(0 0 30px var(--accent));opacity:0}}.evo-creature-new{opacity:0;animation:evo-emerge .7s 1.6s cubic-bezier(.34,1.56,.64,1)forwards}@keyframes evo-emerge{0%{opacity:0;transform:translate(-50%,-50%)scale(0);filter:brightness(4)}30%{opacity:1;transform:translate(-50%,-50%)scale(1.4);filter:brightness(2.5)}60%{transform:translate(-50%,-50%)scale(.9);filter:brightness(1.3)}80%{transform:translate(-50%,-50%)scale(1.05);filter:brightness(1)}100%{opacity:1;transform:translate(-50%,-50%)scale(1);filter:brightness(1)}}.evo-particle{position:absolute;width:4px;height:4px;border-radius:50%;pointer-events:none;opacity:0}.evo-particle-gather{background:var(--accent);animation:evo-gather 1s ease-in forwards}@keyframes evo-gather{0%{opacity:1;transform:translate(var(--hx),var(--hy))scale(1)}100%{opacity:.5;transform:translate(0,0)scale(.3)}}.evo-particle-burst{background:var(--accent);animation:evo-burst .8s ease-out forwards}@keyframes evo-burst{0%{opacity:1;transform:translate(0,0)scale(1)}100%{opacity:0;transform:translate(var(--hx),var(--hy))scale(0)}}.evo-flash-el{position:absolute;top:50%;left:50%;width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:50%;pointer-events:none;animation:evo-flash .5s ease-out forwards}@keyframes evo-flash{0%{opacity:.9;transform:scale(1);background:radial-gradient(circle,var(--accent),transparent 70%)}50%{opacity:.6;transform:scale(4);background:radial-gradient(circle,color-mix(in srgb,var(--accent) 60%,white),transparent 70%)}100%{opacity:0;transform:scale(6);background:radial-gradient(circle,transparent,transparent)}}.evo-vfx{position:absolute;top:50%;left:50%;width:48px;height:48px;margin:-24px 0 0 -24px;background-image:url(/images/pets/battle_vfx.png);background-repeat:no-repeat;image-rendering:pixelated;pointer-events:none;opacity:0;transform:scale(3);transform-origin:center;background-position:0 -48px;animation:hatch-vfx-flash .5s ease-out forwards}.evo-label{margin-top:12px;font-weight:700;font-size:1.2em;color:var(--accent);opacity:0;animation:hatch-reveal-in .4s 2s ease-out both}.evo-label-gold{color:gold;text-shadow:0 0 8px rgba(255,215,0,.6)}.evo-name{margin-top:8px;font-weight:600;font-size:1em;color:var(--foreground);opacity:0;animation:hatch-reveal-in .4s 2.1s ease-out both}.evo-dismiss{margin-top:16px;font-size:.8em;color:color-mix(in srgb,var(--foreground) 40%,transparent);opacity:0;animation:hatch-reveal-in .3s 2.3s ease-out both;pointer-events:auto;cursor:pointer}.evo-overlay-gold{animation:hatch-fade-in .3s ease-out,evo-gold-bg 2.5s .3s ease-out}@keyframes evo-gold-bg{0%{background-color:color-mix(in srgb,var(--background) 90%,transparent)}30%{background-color:color-mix(in srgb,#ffd700 10%,var(--background))}60%{background-color:color-mix(in srgb,var(--background) 90%,transparent)}100%{background-color:color-mix(in srgb,var(--background) 90%,transparent)}}.evo-sparkle{position:absolute;top:50%;left:50%;width:48px;height:48px;margin:-24px 0 0 -24px;background-image:url(/images/pets/battle_vfx.png);background-repeat:no-repeat;image-rendering:pixelated;transform:scale(3);transform-origin:center;pointer-events:none;animation:hatch-sparkle-play 1s 1.8s steps(5)both}.pet-toggle{background:0 0;border:1px solid color-mix(in srgb,var(--foreground) 30%,transparent);color:color-mix(in srgb,var(--foreground) 60%,transparent);padding:2px 6px;font:inherit;font-size:.75em;cursor:pointer;margin-left:4px}.pet-toggle:hover{color:var(--accent);border-color:var(--accent)}