.tap-pet-home{position:relative;flex:0 0 100px;align-self:center;text-align:center;isolation:isolate}.tap-pet-home[hidden]{display:none!important}.tap-pet-home:not(.is-on){flex-basis:60px}.tap-pet-open{border:0;background:transparent;color:#736487;min-width:48px;min-height:48px;padding:0 4px;display:inline-flex;align-items:center;flex-direction:column;justify-content:center;border-radius:12px;cursor:pointer}.tap-pet-open:hover{background:#f4f0fa}.tap-pet-open>span{font-size:22px;color:#8970ba}.tap-pet-open small{font-size:10px;max-width:92px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.tap-pet-pixel{width:48px;height:52px;stroke:none!important;fill:none;image-rendering:pixelated;overflow:visible;transform-origin:50% 90%}.tap-pet-open .tap-pet-pixel{width:39px;height:43px}.tap-pet-home.has-motion.pet-hop .tap-pet-pixel{animation:tap-pet-hop .55s steps(5) 3}.tap-pet-home.has-motion.pet-wiggle .tap-pet-pixel{animation:tap-pet-wiggle .7s steps(5) 3}.tap-pet-home.has-motion.pet-look .tap-pet-pixel{animation:tap-pet-look 2.2s steps(6)}.tap-pet-bubble{position:absolute;top:calc(100% + 8px);left:0;z-index:45;background:#fffaf0;color:#514060;border:1px solid #e7dcbf;border-radius:4px 14px 14px;padding:12px 15px;font-size:13px;line-height:1.5;width:240px;max-width:calc(100vw - 32px);box-shadow:0 8px 24px #39224712;pointer-events:none}.tap-pet-bubble[hidden]{display:none}.tap-pet-dialog{width:min(640px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid #e5ddec;border-radius:22px;padding:26px;color:#382d49;background:#fff;box-shadow:0 22px 90px #21162f40}.tap-pet-dialog::backdrop{background:#20142c77;backdrop-filter:blur(3px)}.tap-pet-dialog header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.tap-pet-dialog h2{margin:5px 0 0;font-size:25px}.tap-pet-eyebrow{font-size:10px;letter-spacing:2px;color:#8c70b3;font-weight:700}.tap-pet-dialog p{font-size:14px;line-height:1.6}.tap-pet-close{border:0;background:#f4eff8;border-radius:50%;width:38px;height:38px;font-size:24px;color:#766486;flex-shrink:0}.tap-pet-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:20px 0}.tap-pet-options button{border:1px solid #e5ddec;background:#fbf9fd;border-radius:14px;padding:12px 5px;display:flex;align-items:center;flex-direction:column;gap:4px;color:#463653}.tap-pet-options button[aria-pressed=true]{border:2px solid #8661c1;background:#f0e9fa;padding:11px 4px;box-shadow:0 0 0 2px #8661c118}.tap-pet-options small{font-size:11px;color:#7e738b}.tap-pet-custom{display:grid;grid-template-columns:1fr 1.2fr;gap:22px;background:#f7f3fb;padding:20px;border-radius:16px}.tap-pet-preview{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;min-width:0}.tap-pet-preview .tap-pet-pixel{width:95px;height:108px;filter:drop-shadow(0 8px 0 #ddd1ed55)}.tap-pet-preview strong{overflow-wrap:anywhere}.tap-pet-preview small{font-size:12px;color:#786b88;line-height:1.5}.tap-pet-custom label{display:block;font-size:12px;font-weight:650;margin:0 0 10px}.tap-pet-custom input,.tap-pet-custom select{display:block;width:100%;min-width:0;border:1px solid #dbd1e5;background:#fff;color:#43334f;border-radius:8px;padding:9px;margin-top:5px;font-size:14px}.tap-pet-switches{display:grid;gap:12px;margin-top:20px}.tap-pet-switches label{display:flex;align-items:center;gap:9px;font-size:14px}.tap-pet-switches input{width:18px;height:18px;accent-color:#8059bd}.tap-pet-dialog .tap-pet-note{color:#83748d;font-size:12px;margin:18px 0}.tap-pet-dialog footer{display:flex;justify-content:flex-end;gap:12px;align-items:center}.tap-pet-save-status{font-size:12px;color:#886231}.tap-pet-dialog button:focus-visible{outline:3px solid #b48be9;outline-offset:3px}
@keyframes tap-pet-hop{0%,100%{transform:translateY(0) scaleY(1)}25%{transform:scaleY(.85)}60%{transform:translateY(-9px) scaleY(1.03)}}@keyframes tap-pet-wiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-9deg)}75%{transform:rotate(9deg)}}@keyframes tap-pet-look{0%,100%{transform:translateX(0)}30%{transform:translateX(-12px)}65%{transform:translateX(12px)}}
@media(max-width:1200px){.tap-pet-home{flex-basis:56px}.tap-pet-home:not(.is-on){flex-basis:48px}.tap-pet-open small{max-width:50px}.tap-pet-bubble{left:-30px}}
@media(max-width:700px){body .topbar .tap-pet-home{flex:0 0 32px;width:32px}body .topbar .tap-pet-open{min-width:32px;min-height:40px;padding:0}.tap-pet-open small{display:none}.tap-pet-open .tap-pet-pixel{width:29px;height:34px}.tap-pet-home .tap-pet-bubble{display:none}.tap-pet-home .tap-pet-pixel{animation:none!important}.tap-pet-dialog{padding:18px}.tap-pet-custom{gap:14px;padding:14px}.tap-pet-custom input,.tap-pet-custom select{font-size:16px}.mobile-search-open .tap-pet-home{display:none!important}}
@media(prefers-reduced-motion:reduce){.tap-pet-home .tap-pet-pixel{animation:none!important}}

/* Nested pixel parts animate independently: feet step, arms wave, eyes blink. */
.tap-pet-home.is-on{flex-basis:132px}.tap-pet-home.is-on .tap-pet-open{width:100%}.tap-pet-actor{position:relative;display:block;width:43px;height:45px;margin:0 auto;transform-origin:50% 95%;pointer-events:none}.tap-pet-actor .tap-pet-pixel{width:100%;height:100%;display:block}.tap-pet-open .tap-pet-actor+small{margin-top:2px}.tap-pet-preview .tap-pet-actor{width:95px;height:108px}.pet-body,.pet-footL,.pet-footR,.pet-armL,.pet-armR,.pet-eyes{transform-box:fill-box;transform-origin:center}.pet-armL,.pet-armR{transform-origin:50% 0}.pet-eyes{transform-origin:50% 70%}.pet-prop{display:none;position:absolute;pointer-events:none;stroke:none;width:22px;height:22px;right:-12px;bottom:3px}.pet-zzz,.pet-notes{font:700 13px monospace;color:#8e79b5;white-space:nowrap;top:-9px;right:-12px;width:auto}.pet-book{bottom:0;left:7px;width:30px;height:23px}.pet-cup{bottom:0;right:-4px}.tap-pet-preview .pet-prop{width:35px;height:35px}.tap-pet-preview .pet-book{width:60px;left:18px}.tap-pet-preview .pet-zzz,.tap-pet-preview .pet-notes{font-size:19px}.tap-pet-try{margin:16px auto 0;display:block;font-size:12px}.tap-pet-dialog .tap-pet-move-label{font-size:11px;text-align:center;min-height:30px;color:#82718f;margin:8px 0 0}
.has-motion .pet-eyes{animation:pet-blink 7s steps(1) infinite}.has-motion[data-move=walk] .tap-pet-actor{animation:pet-roam 6.2s linear}.has-motion[data-move=walk] .pet-body{animation:pet-step-body .36s steps(2) infinite}.has-motion[data-move=walk] .pet-footL{animation:pet-step .36s steps(2) infinite}.has-motion[data-move=walk] .pet-footR{animation:pet-step .36s steps(2) -.18s infinite}.has-motion[data-move=walk] .pet-armL{animation:pet-arm .36s steps(2) infinite}.has-motion[data-move=walk] .pet-armR{animation:pet-arm .36s steps(2) -.18s infinite}.has-motion[data-move=walk] [data-species=slime] .tap-pet-pixel{animation:pet-squish .6s ease-in-out infinite}
.has-motion[data-move=wave] .pet-armR{animation:pet-wave .6s steps(4) infinite}.has-motion[data-move=hop] .tap-pet-pixel{animation:tap-pet-hop .8s steps(8) infinite}.has-motion[data-move=dance] .tap-pet-pixel{animation:tap-pet-wiggle .6s steps(5) infinite}.has-motion[data-move=dance] .pet-notes{display:block;animation:pet-float 1.5s ease-out infinite}
.has-motion[data-move=nap] .tap-pet-pixel{transform:rotate(75deg) translateY(3px);animation:pet-breathe 2.5s ease-in-out infinite}.has-motion[data-move=nap] .pet-eyes{animation:none;transform:scaleY(.15)}.has-motion[data-move=nap] .pet-zzz{display:block;animation:pet-float 2s ease-out infinite}.has-motion[data-move=read] .pet-book,.has-motion[data-move=coffee] .pet-cup{display:block}.has-motion[data-move=read] .pet-body{animation:pet-nod 2s steps(4) infinite}.has-motion[data-move=read] .pet-book{animation:pet-page 1.8s steps(2) infinite}.has-motion[data-move=coffee] .pet-cup{animation:pet-sip 2.2s ease-in-out infinite}.has-motion[data-move=coffee] .pet-steam{animation:pet-fade 1.4s infinite}
.has-motion[data-move=special] .pet-toy{display:block}.has-motion[data-move=special] [data-species=cat] .pet-toy{animation:pet-roll 2s linear infinite}.has-motion[data-move=special] [data-species=cat] .tap-pet-pixel{animation:pet-pounce 2s ease-in-out infinite}.has-motion[data-move=special] [data-species=robot] .pet-toy{left:6px;bottom:-1px;width:32px}.has-motion[data-move=special] [data-species=robot] .pet-armR{animation:pet-arm .2s steps(2) infinite}.has-motion[data-move=special] [data-species=dragon] .pet-toy{bottom:18px;animation:pet-flame 1.2s steps(3) infinite}.has-motion[data-move=special] [data-species=slime] .pet-toy{animation:pet-float 2s ease-out infinite}.has-motion[data-move=special] [data-species=slime] .tap-pet-pixel{animation:pet-squish .8s infinite}.has-motion[data-move=special] [data-species=fox] .tap-pet-pixel{animation:pet-sniff 1s steps(4) infinite}.has-motion[data-move=special] [data-species=owl] .tap-pet-pixel{animation:pet-hover 1.2s ease-in-out infinite}.has-motion[data-move=special] [data-species=owl] .pet-armL,.has-motion[data-move=special] [data-species=owl] .pet-armR{animation:pet-wave .4s steps(3) infinite}.has-motion[data-move=special] [data-species=owl] .pet-toy{animation:pet-fade 1.5s infinite}
@keyframes pet-roam{0%,100%{transform:translateX(0)}20%{transform:translateX(calc(-1 * var(--pet-travel,20px)))}25%{transform:translateX(calc(-1 * var(--pet-travel,20px))) scaleX(-1)}70%{transform:translateX(var(--pet-travel,20px)) scaleX(-1)}75%{transform:translateX(var(--pet-travel,20px))}100%{transform:translateX(0)}}
@keyframes pet-step{50%{transform:translate(1px,-1px)}}@keyframes pet-step-body{50%{transform:translateY(-.5px)}}@keyframes pet-arm{50%{transform:rotate(15deg)}}@keyframes pet-wave{50%{transform:rotate(-65deg)}}@keyframes pet-blink{0%,92%,96%,100%{transform:scaleY(1)}94%{transform:scaleY(.12)}}@keyframes pet-breathe{0%,100%{transform:rotate(75deg) translateY(3px) scale(1)}50%{transform:rotate(75deg) translateY(3px) scale(1.04,.97)}}@keyframes pet-float{0%{opacity:0;transform:translateY(4px)}30%{opacity:1}100%{opacity:0;transform:translateY(-12px)}}@keyframes pet-nod{50%{transform:translateY(1px) rotate(3deg)}}@keyframes pet-page{50%{transform:scaleX(.93) rotate(-3deg)}}@keyframes pet-sip{50%{transform:translateY(-9px) rotate(-12deg)}}@keyframes pet-fade{50%{opacity:.3}}@keyframes pet-roll{0%,100%{transform:translateX(0) rotate(0)}50%{transform:translateX(-20px) rotate(-180deg)}}@keyframes pet-pounce{50%{transform:translateX(5px) rotate(12deg)}}@keyframes pet-flame{0%,100%{opacity:0;transform:scale(.3)}40%,70%{opacity:1;transform:scale(1)}}@keyframes pet-squish{50%{transform:scale(1.13,.85)}}@keyframes pet-sniff{50%{transform:rotate(12deg) translateX(3px)}}@keyframes pet-hover{50%{transform:translateY(-8px)}}
@media(max-width:1200px) and (min-width:701px){.tap-pet-home.is-on{flex-basis:88px}}
@media(max-width:700px){.tap-pet-home .tap-pet-actor{width:29px;height:34px}.tap-pet-home .tap-pet-actor,.tap-pet-home .tap-pet-actor *{animation:none!important;transform:none!important}.tap-pet-home .pet-prop{display:none!important}}
@media(prefers-reduced-motion:reduce){.tap-pet-actor,.tap-pet-actor *{animation:none!important;transform:none!important}.pet-prop{display:none!important}}

.pet-resting .tap-pet-actor,.pet-resting .tap-pet-actor *{animation-play-state:paused!important}

.tap-pet-account{width:100%;max-width:560px;min-width:0}.tap-pet-account .panel-body{padding:16px 20px}.tap-pet-account .panel-body p{margin:0 0 14px;max-width:48ch}.tap-pet-dialog{width:min(560px,calc(100vw - 24px))}

/* Temporary evolved forms use original pixel artwork and the existing walking rig. */
.tap-pet-evolve{display:block;margin:8px auto 0;font-size:12px;border-color:#9270cf;color:#644396}
.tap-pet-home[data-evolved=true] .tap-pet-pixel{filter:drop-shadow(0 0 4px #ad89eb);transform:scale(1.12)}
.tap-pet-home[data-evolved=true] .tap-pet-open small{color:#8153bc;font-weight:750;letter-spacing:.3px}
.tap-pet-home[data-evolved=true].has-motion[data-move=walk] .tap-pet-actor{animation:pet-roam 6s linear infinite}
.tap-pet-home.is-evolving.has-motion .tap-pet-pixel{animation:pet-evolve-arrive 1s ease-out}
@keyframes pet-evolve-arrive{0%{transform:scale(.75);filter:drop-shadow(0 0 1px #bda0f0)}60%{transform:scale(1.2);filter:drop-shadow(0 0 8px #bda0f0)}100%{transform:scale(1.12);filter:drop-shadow(0 0 4px #ad89eb)}}
html[data-tap-theme=dark] .tap-pet-evolve{color:#e1d5ff;border-color:#9576c4;background:#302841}
html[data-tap-theme=dark] .tap-pet-home[data-evolved=true] .tap-pet-open small{color:#d3bdff}
@media(max-width:700px),(prefers-reduced-motion:reduce){.tap-pet-home[data-evolved=true] .tap-pet-pixel{transform:none;animation:none!important;filter:none}.tap-pet-home[data-evolved=true] .tap-pet-actor{animation:none!important;transform:none!important}}

.tap-pet-open small[hidden],.tap-pet-preview strong[hidden]{display:none!important}
