@charset "UTF-8";
:root{--cream:#fff7e9;--peach:#f6c6a8;--wood:#9b6348;--ink:#5c4338;--glass:rgba(255,250,242,.72);--sky:#bfe2ed;--wall:#f8ddc4;--floor:#d8a47c}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:ui-rounded,"SF Pro Rounded","PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:var(--ink);background:#f7d1b3}button,input{font:inherit}.world{min-height:100svh;overflow:hidden;background:linear-gradient(#f9d8bd 0 67%,#c98e67 67%);position:relative;transition:filter .8s}.room{min-height:100svh;max-width:1180px;margin:auto;position:relative;overflow:hidden;background:linear-gradient(178deg,transparent 66.7%,rgba(91,48,34,.16) 67%,transparent 67.5%)}.sunwash{position:fixed;inset:0;pointer-events:none;background:linear-gradient(118deg,rgba(255,255,255,.36),transparent 46%);z-index:3;mix-blend-mode:soft-light}.identity{position:absolute;z-index:7;top:max(24px,env(safe-area-inset-top));left:clamp(22px,7vw,82px)}.eyebrow{font-size:11px;letter-spacing:.22em;opacity:.62}.pet-line{display:flex;align-items:center;gap:10px}.pet-line h1{font-family:Georgia,"Songti SC",serif;font-size:clamp(27px,5vw,42px);font-weight:500;margin:5px 0}.pet-line span{font-size:11px;padding:4px 9px;border-radius:20px;background:rgba(255,255,255,.52)}#softStatus{margin:0;font-size:13px;opacity:.7}.window{position:absolute;top:12%;right:9%;width:32%;height:35%;border:12px solid #a66f52;border-radius:90px 90px 10px 10px;box-shadow:inset 0 0 0 4px rgba(255,255,255,.4),0 8px 0 rgba(110,65,46,.18);overflow:visible}.sky{position:absolute;inset:0;overflow:hidden;border-radius:74px 74px 0 0;background:linear-gradient(#a8d9eb,#f9e6c2);transition:background 1s}.sun,.moon{position:absolute;width:45px;height:45px;border-radius:50%;top:18%;right:18%;background:#ffd56b;box-shadow:0 0 45px #ffe4a2;transition:.8s}.moon{opacity:0;background:#f6edcf;box-shadow:0 0 25px rgba(255,255,220,.6)}.cloud{position:absolute;width:56px;height:16px;border-radius:20px;background:rgba(255,255,255,.68);top:43%;left:13%}.cloud:after{content:"";position:absolute;width:24px;height:24px;border-radius:50%;background:inherit;top:-11px;left:12px}.c2{transform:scale(.7);left:58%;top:66%}.stars{opacity:0;position:absolute;color:#fff;letter-spacing:14px;left:20%;top:22%;font-size:18px}.window-cross:before,.window-cross:after{content:"";position:absolute;background:#a66f52;z-index:2}.window-cross:before{width:100%;height:8px;top:55%}.window-cross:after{height:100%;width:8px;left:50%}.curtain{position:absolute;top:-24px;height:112%;width:35%;background:#f1bca9;z-index:3;box-shadow:inset -8px 0 rgba(255,255,255,.18)}.curtain.left{left:-30%;border-radius:50% 12px 50% 10px}.curtain.right{right:-30%;border-radius:12px 50% 10px 50%}.shelf{position:absolute;left:8%;top:41%;width:170px;height:11px;background:#9a6044;border-radius:8px;box-shadow:0 10px 12px #0002}.book{position:absolute;bottom:10px;width:20px;border-radius:4px 4px 0 0}.b1{height:48px;left:24px;background:#9bb3a2}.b2{height:38px;left:47px;background:#d18b78}.vase{position:absolute;right:20px;bottom:9px;background:#f3dfc6;border-radius:45% 45% 35% 35%;padding:14px 10px;color:#9a8f6d}.plant{position:absolute;right:4%;bottom:23%;width:90px;height:140px}.plant i{position:absolute;bottom:0;left:18px;width:68px;height:63px;background:#bd7659;border-radius:8px 8px 30px 30px}.plant span{position:absolute;width:45px;height:70px;background:#79906f;border-radius:80% 5% 80% 5%;transform:rotate(-25deg);top:18px;left:20px}.plant span:nth-child(2){transform:rotate(25deg) scale(.9);left:52px;top:5px}.plant span:nth-child(3){transform:rotate(-60deg) scale(.7);left:2px;top:42px}.memory{position:absolute;left:25%;top:26%;background:#af785b;border:7px solid #9b6348;padding:8px 17px;text-align:center;transform:rotate(-3deg);box-shadow:2px 5px 10px #0002}.memory div{font-size:25px;color:#f6ddd1}.memory small{color:#fff0dc;font-family:Georgia,serif}.rug{position:absolute;left:23%;right:20%;bottom:6%;height:27%;border-radius:50%;background:repeating-radial-gradient(ellipse,#e4b898 0 16px,#d9a789 17px 27px);opacity:.86}.bed{position:absolute;left:8%;bottom:10%;width:180px;height:100px;border-radius:60% 60% 30px 30px;background:#b98778;box-shadow:inset 0 -20px #986c63,0 12px 16px #70432d33}.bed:after{content:"";position:absolute;inset:20px 20px 28px;background:#edc7b6;border-radius:50%}.bed span{position:absolute;z-index:1;left:80px;top:38px;color:#fff8}.toy{position:absolute;z-index:2}.toy-ball{right:25%;bottom:12%;width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#d17869 50%,#e8c674 50%);box-shadow:0 6px 8px #0002}.toy-star{left:27%;bottom:12%;color:#dd9c68;font-size:34px;transform:rotate(15deg)}.pet-stage{position:absolute;z-index:6;left:50%;bottom:14%;width:310px;height:340px;transform:translateX(-50%)}.pet-shadow{position:absolute;width:190px;height:38px;border-radius:50%;background:rgba(72,46,38,.22);filter:blur(4px);bottom:8px;left:60px}.pet{--fur:#ddd;--accent:#aaa;position:absolute;width:240px;height:248px;left:35px;bottom:20px;filter:drop-shadow(0 10px 6px #71472f22);transform-origin:50% 90%;animation:breathe 3.3s ease-in-out infinite;cursor:pointer}.pet-body{position:absolute;width:165px;height:153px;border-radius:50% 50% 44% 44%;background:var(--fur);left:39px;bottom:6px;box-shadow:inset -12px -12px rgba(78,42,31,.07)}.pet-head{position:absolute;width:150px;height:142px;border-radius:48% 48% 46% 46%;background:var(--fur);left:46px;top:12px;z-index:2}.ear{position:absolute;width:50px;height:58px;background:var(--fur);top:6px;border-radius:65% 15% 55% 35%;transform:rotate(-25deg)}.ear.r{right:0;transform:scaleX(-1) rotate(-25deg)}.face{position:absolute;inset:0}.eye{position:absolute;top:64px;width:12px;height:15px;border-radius:50%;background:#4b3a35;left:42px;animation:blink 5.5s infinite}.eye.r{left:auto;right:42px}.muzzle{position:absolute;width:57px;height:43px;border-radius:50%;background:rgba(255,255,255,.46);left:47px;top:77px}.nose{position:absolute;width:15px;height:11px;border-radius:50% 50% 45%;background:#6d5149;left:68px;top:80px;z-index:2}.mouth{position:absolute;left:72px;top:93px;width:9px;height:8px;border:0 solid #71524a;border-bottom-width:2px;border-radius:50%}.belly{position:absolute;width:100px;height:90px;border-radius:50%;background:rgba(255,255,255,.26);left:71px;bottom:10px;z-index:1}.paw{position:absolute;width:48px;height:35px;border-radius:50%;background:var(--fur);bottom:0;left:30px;z-index:3}.paw.r{left:auto;right:30px}.tail{position:absolute;width:80px;height:45px;border-radius:50% 80% 50% 80%;background:var(--accent);right:7px;bottom:24px;transform-origin:left;animation:tail 2.7s ease-in-out infinite}.mark{position:absolute;z-index:4}.mood-bubble{position:absolute;z-index:8;top:-4px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#fffaf0e8;border:1px solid #fff;padding:9px 14px;border-radius:17px 17px 17px 4px;box-shadow:0 7px 22px #7d4e3830;font-size:13px}.feedback{position:absolute;z-index:10;top:38%;left:50%;transform:translate(-50%,-50%);font-weight:700;color:#a95e48;text-shadow:0 2px #fff;pointer-events:none}.feedback.show{animation:floatUp 1.5s forwards}.sparkles{position:absolute;inset:0;pointer-events:none}.sparkles.show:after{content:"✦  ·  ♡  ✦";position:absolute;left:40px;top:60px;width:230px;text-align:center;font-size:25px;color:#ffe39a;animation:spark 1.4s}.action-dock{position:fixed;z-index:20;bottom:max(16px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;gap:7px;padding:8px 10px;background:var(--glass);border:1px solid rgba(255,255,255,.75);box-shadow:0 12px 35px rgba(85,47,31,.22);backdrop-filter:blur(16px);border-radius:25px}.action-dock button{width:58px;height:52px;border:0;background:transparent;color:var(--ink);border-radius:17px;display:grid;place-items:center;gap:0;cursor:pointer}.action-dock button:hover,.action-dock button:focus-visible{background:#fff9;outline:2px solid #bb775e;outline-offset:2px}.action-dock button:active{transform:scale(.92)}.action-dock span{font-size:22px;line-height:20px}.action-dock small{font-size:10px}.action-dock button:disabled{opacity:.42}.adoption{position:absolute;z-index:30;left:50%;top:53%;transform:translate(-50%,-50%);width:min(88%,400px);padding:30px;background:rgba(255,247,235,.87);border:1px solid #fff;border-radius:34px;box-shadow:0 18px 50px #6b443640;backdrop-filter:blur(20px);text-align:center}.adopt-art{font-size:44px;color:#cc8770}.adoption h2{font-family:Georgia,"Songti SC",serif;margin:5px}.adoption p{font-size:13px;line-height:1.6}.adoption label{display:block;text-align:left;font-size:12px;margin:15px 0 6px}.adopt-row{display:flex;gap:8px}.adopt-row input{min-width:0;flex:1;border:1px solid #deb9a5;border-radius:15px;padding:12px;background:#fffaf6;color:var(--ink)}.adopt-row button{border:0;border-radius:15px;padding:0 15px;color:white;background:#a96852;cursor:pointer}.hint{color:#a34f45;min-height:20px}.world[data-scene="sunset"]{--sky:#e8a58e;filter:saturate(1.06)}.world[data-scene="sunset"] .sky{background:linear-gradient(#cc8d9b,#f8c48e)}.world[data-scene="night"]{--ink:#eee1d7;filter:saturate(.8)}.world[data-scene="night"] .room{background:linear-gradient(180deg,#5d6179 0 67%,#765745 67%)}.world[data-scene="night"] .sky{background:linear-gradient(#303953,#69708c)}.world[data-scene="night"] .sun{opacity:0}.world[data-scene="night"] .moon,.world[data-scene="night"] .stars{opacity:1}.world[data-scene="night"] .sunwash{background:linear-gradient(120deg,rgba(111,129,166,.18),transparent)}.world[data-scene="night"] .identity,.world[data-scene="night"] .action-dock{color:#f6ede5}.world[data-scene="night"] .action-dock{background:rgba(66,60,72,.62)}.pet.sleeping{animation:sleepBob 3s ease-in-out infinite}.pet.sleeping .eye{height:6px;background:transparent;border-bottom:3px solid #4b3a35;animation:none}.pet.sleeping:after{content:"z  z";position:absolute;right:0;top:10px;color:#fff;font-weight:bold;animation:floatUp 2s infinite}.pet.action-feed{animation:feed .8s 2}.pet.action-play{animation:play .8s 2}.pet.action-stroke{animation:stroke .65s 2}.level-glow .pet{filter:drop-shadow(0 0 18px #ffe082) drop-shadow(0 10px 6px #71472f22)}@keyframes breathe{50%{transform:scaleY(1.025) translateY(-2px)}}@keyframes blink{0%,45%,49%,100%{transform:scaleY(1)}47%{transform:scaleY(.08)}}@keyframes tail{50%{transform:rotate(13deg)}}@keyframes floatUp{from{opacity:1;transform:translate(-50%,10px)}to{opacity:0;transform:translate(-50%,-45px)}}@keyframes spark{0%{opacity:0;transform:scale(.6) rotate(-8deg)}40%{opacity:1}100%{opacity:0;transform:scale(1.3) rotate(8deg)}}@keyframes feed{50%{transform:translateY(5px) rotate(3deg)}}@keyframes play{50%{transform:translateY(-32px) rotate(-5deg)}}@keyframes stroke{50%{transform:scale(.94) translateY(4px)}}@keyframes sleepBob{50%{transform:scaleY(.96) translateY(6px)}}
@media(max-width:600px){.room{min-height:100svh}.identity{top:max(18px,env(safe-area-inset-top));left:20px}.pet-line h1{font-size:28px}.window{width:47%;height:28%;top:13%;right:-7%;border-width:9px}.shelf{left:-35px;top:38%;transform:scale(.76)}.memory{left:8%;top:27%;transform:scale(.78) rotate(-4deg)}.plant{right:-18px;bottom:20%;transform:scale(.78)}.bed{left:-42px;bottom:14%;transform:scale(.72)}.rug{left:4%;right:-10%;height:24%;bottom:9%}.toy-ball{right:7%;bottom:14%}.toy-star{left:13%;bottom:13%}.pet-stage{width:290px;height:330px;bottom:15%;transform:translateX(-50%) scale(.92)}.pet{left:25px}.action-dock button{width:53px;height:48px}.mood-bubble{top:5px}.sunwash{background:linear-gradient(118deg,rgba(255,255,255,.32),transparent 55%)}}
@media(min-width:800px){.pet-stage{transform:translateX(-50%) scale(1.12);bottom:16%}.action-dock{padding:10px 14px;gap:12px}.action-dock button{width:65px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}

/* v5 — explicit sleep phases, persistent rest pose and progressive dimming */
.world[data-sleep-phase="settling"]:after{content:"";position:fixed;inset:0;z-index:4;pointer-events:none;background:rgba(37,42,68,.34);animation:sleepDimV5 4s linear forwards}
.world[data-sleep-phase="settling"] .pet{animation:settleSleep 4s ease-in-out forwards}
.world[data-sleep-phase="sleeping"]:after{content:"";position:fixed;inset:0;z-index:4;pointer-events:none;background:rgba(37,42,68,.34)}
.world[data-sleep-phase="sleeping"] .pet{transform:translate(-70px,18px) rotate(-8deg) scale(.88);animation:sleepBobV5 3s ease-in-out infinite}
@keyframes sleepBobV5{0%,100%{transform:translate(-70px,18px) rotate(-8deg) scale(.88)}50%{transform:translate(-70px,24px) rotate(-8deg) scale(.88,.845)}}
@keyframes sleepDimV5{from{background:rgba(37,42,68,0)}to{background:rgba(37,42,68,.34)}}
/* v5 — staged care, persistent sleep and touchable room */
.object-button{font:inherit;color:inherit;border:0;padding:0;cursor:pointer}.object-button:focus-visible{outline:3px solid #9e604d;outline-offset:5px}.room-object.touched{animation:objectWarm 1.4s ease}.wake-button{width:150px!important;background:#fff3d2!important}.wake-button small{font-size:13px}.wake-button b{font-weight:700;font-variant-numeric:tabular-nums}.pet[data-state="feed"] .food{display:block;animation:foodEnterV4 4.8s ease-in-out forwards}.pet[data-state="feed"]{animation:feedApproach 4.8s ease-in-out}.pet[data-state="feed"] .pet-head{animation:eatNodV4 .42s 7 1.45s}.pet[data-state="play"] .ball{display:block;animation:ballChaseV4 5.6s ease-in-out}.pet[data-state="play"]{animation:chaseV4 5.6s ease-in-out}.pet[data-state="play"] .tail{animation:tail .22s infinite}.pet[data-state="stroke"] .hand{display:block;animation:petHandV4 3.6s ease-in-out}.pet[data-state="stroke"]{animation:strokeLeanV4 3.6s ease-in-out}.pet[data-state="stroke"] .eye,.pet[data-state="settling"] .eye,.pet[data-state="sleeping"] .eye{height:6px;background:transparent;border-bottom:3px solid #4b3a35;animation:none}.pet[data-state="settling"]{animation:settleSleep 4s ease-in-out forwards}.pet[data-state="sleeping"]{animation:sleepBob 3s ease-in-out infinite;transform:translate(-70px,18px) rotate(-8deg) scale(.88)}.pet[data-state="sleeping"] .zzz{display:block;animation:zzz 2s infinite}.pet[data-state="waking"]{animation:wakeGentle 1.8s ease-out}.pet[data-state="walk"]{animation:smallWalk 3.6s ease-in-out}.pet[data-state="settle"]{animation:softSettle 2.2s ease-in-out}.sparkles.show:after{content:"✦  ·  ♡  ·  ✦  ·";animation:spark 1.4s ease-in-out 3}.toy-ball.touched{animation:toyNudge 1.5s ease!important}.plant.touched span{animation:leafHello 1.1s ease}.memory.touched{animation:frameGlow 1.5s ease}.window.touched .curtain{animation:curtainHello 1.4s ease}.bed.touched{animation:bedBounce 1.3s ease}
@keyframes foodEnterV4{0%{transform:translateX(-50px);opacity:0}16%{transform:translateX(55px);opacity:1}30%{transform:translateX(82px)}48%,78%{transform:translateX(112px) rotate(4deg)}100%{transform:translateX(120px) scale(.2);opacity:0}}@keyframes feedApproach{0%,16%{transform:translateX(0)}32%,78%{transform:translateX(-22px) rotate(-2deg)}88%{transform:translateX(0) translateY(-8px)}100%{transform:none}}@keyframes eatNodV4{50%{transform:translateY(9px) rotate(3deg)}}@keyframes ballChaseV4{0%{transform:translateX(-55px) translateY(0)}16%{transform:translateX(105px) translateY(-70px)}30%{transform:translateX(190px)}46%{transform:translateX(65px) translateY(-95px)}63%{transform:translateX(190px)}80%{transform:translateX(95px) translateY(-50px)}100%{transform:translateX(150px);opacity:.2}}@keyframes chaseV4{0%,12%{transform:none}25%{transform:translateX(42px) translateY(-32px) rotate(4deg)}43%{transform:translateX(-38px) translateY(-8px)}61%{transform:translateX(45px) translateY(-42px) rotate(-5deg)}78%{transform:translateX(-22px) translateY(-20px)}92%{transform:translateY(-28px)}100%{transform:none}}@keyframes petHandV4{0%{transform:translate(80px,-30px) rotate(30deg);opacity:0}16%{opacity:1}25%,45%,65%,82%{transform:translate(-38px,35px) rotate(18deg)}35%,55%,72%{transform:translate(-10px,7px) rotate(30deg)}100%{transform:translate(70px,-20px);opacity:0}}@keyframes strokeLeanV4{25%,80%{transform:translateX(10px) scale(.95)}50%{transform:translateX(15px) scale(.93)}100%{transform:none}}@keyframes settleSleep{0%{transform:none}45%{transform:translate(-35px,8px) rotate(-3deg)}100%{transform:translate(-70px,18px) rotate(-8deg) scale(.88)}}@keyframes wakeGentle{0%{transform:translate(-70px,18px) rotate(-8deg) scale(.88)}55%{transform:translateY(-18px) scale(1.03)}100%{transform:none}}@keyframes smallWalk{0%,100%{transform:none}25%{transform:translateX(-38px) rotate(-2deg)}50%{transform:translateX(28px) translateY(-5px)}75%{transform:translateX(55px) rotate(2deg)}}@keyframes softSettle{45%{transform:translateY(13px) scaleY(.92)}}@keyframes objectWarm{50%{filter:brightness(1.12) drop-shadow(0 0 12px #ffe7b8)}}@keyframes toyNudge{40%{transform:translateX(-55px) rotate(-240deg)}75%{transform:translateX(-25px) rotate(-360deg)}}@keyframes leafHello{40%{transform:rotate(10deg) scale(.95)}}@keyframes frameGlow{50%{box-shadow:0 0 25px #ffe2b8;transform:rotate(2deg) scale(1.06)}}@keyframes curtainHello{50%{transform:translateX(8px)}}@keyframes bedBounce{50%{transform:translateY(-7px) scale(1.03)}}

/* v3.1 layered sprite engine + accessible name editor */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.edit-name{width:34px;height:34px;border:1px solid #fff9;border-radius:50%;background:#fff8;color:#805844;cursor:pointer;font-size:18px;box-shadow:0 4px 12px #70432d22}.edit-name:hover,.edit-name:focus-visible{background:#fff;outline:2px solid #a96852;outline-offset:2px}.name-editor{display:flex;gap:6px;align-items:center;margin:3px 0 4px}.name-editor[hidden]{display:none}.name-editor input{width:min(200px,55vw);padding:8px 11px;border:1px solid #c78b70;border-radius:12px;background:#fffaf6;color:#5c4338}.name-editor button{border:0;border-radius:11px;padding:8px 10px;background:#a96852;color:#fff;cursor:pointer}.name-editor button:last-child{background:#fff9;color:#694c40}.name-feedback{min-height:18px;margin:0;font-size:12px;color:#8f4f43}
.pet{transition:transform .5s ease,filter .5s ease}.pet-head,.pet-body,.paw,.tail,.ear,.wing{transition:transform .42s ease}.ear-long{height:100px;width:35px;top:-48px;border-radius:70%}.ear-point,.ear-horn{clip-path:polygon(50% 0,100% 100%,0 100%);border-radius:0;top:-16px}.ear-horn{background:var(--accent);height:45px}.ear-flop{height:75px;top:25px;background:var(--accent)}.species-mark{position:absolute;z-index:4}.mark-mane{inset:-20px;border:22px solid var(--accent);border-radius:50%;z-index:-1}.mark-stripes{left:57px;top:8px;width:36px;height:52px;background:repeating-linear-gradient(105deg,transparent 0 8px,var(--accent) 9px 14px);clip-path:polygon(0 0,100% 0,82% 100%,18% 100%)}.mark-panda{left:25px;top:51px;width:36px;height:29px;background:var(--accent);border-radius:50%;box-shadow:64px 0 var(--accent)}.mark-penguin{left:20px;top:30px;width:110px;height:105px;background:var(--accent);border-radius:50% 50% 45% 45%}.beak{position:absolute;z-index:7;left:65px;top:87px;border:10px solid transparent;border-top-color:#e8aa55}.mark-spot{left:14px;top:27px;width:55px;height:60px;background:var(--accent);border-radius:55% 45% 50%}.mark-fox{left:23px;top:69px;width:104px;height:67px;background:var(--accent);clip-path:polygon(0 0,50% 48%,100% 0,78% 100%,22% 100%)}.mark-antlers{left:21px;top:-49px;width:108px;height:72px;border-left:7px solid var(--accent);border-right:7px solid var(--accent);border-radius:28%}.mark-antlers:after,.mark-antlers:before{content:"";position:absolute;width:30px;height:35px;border-top:6px solid var(--accent);top:7px}.mark-antlers:before{left:-20px;transform:rotate(-35deg)}.mark-antlers:after{right:-20px;transform:rotate(35deg)}.mark-dragon{left:59px;top:-11px;border:16px solid transparent;border-bottom:31px solid var(--accent)}.mark-whiskers,.mark-seal{left:9px;top:93px;width:132px;height:2px;background:#73584c;box-shadow:0 10px #73584c}.mark-seal{width:144px;left:3px;opacity:.75}.mark-cheeks{left:25px;top:91px;width:22px;height:11px;border-radius:50%;background:#e6aaa8;box-shadow:78px 0 #e6aaa8}.cheek{position:absolute;left:27px;top:91px;width:20px;height:9px;border-radius:50%;background:#e8a6a766;opacity:0}.cheek.r{left:auto;right:27px}
.pet[data-type="seal"] .pet-body{width:190px;height:130px;left:26px;border-radius:55% 55% 42% 42%}.pet[data-type="seal"] .tail{width:72px;height:62px;right:2px;clip-path:polygon(0 45%,100% 0,76% 50%,100% 100%)}.pet[data-type="penguin"] .tail{display:none}.pet[data-type="penguin"] .pet-body{border-radius:55% 55% 35% 35%}.pet[data-type="rabbit"] .pet-body{height:170px}.pet[data-type="fox"] .tail{width:100px;height:62px}.pet[data-type="dragon"] .wing{display:block}.wing{display:none;position:absolute;width:60px;height:75px;top:112px;background:var(--accent);clip-path:polygon(100% 0,90% 85%,55% 60%,20% 100%,0 25%);transform-origin:100% 20%}.wing.l{left:9px}.wing.r{right:8px;transform:scaleX(-1);transform-origin:0 20%}.pet[data-motion="flippers"] .paw{height:75px;width:35px;bottom:45px}.pet[data-motion="flippers"] .paw:first-of-type{transform:rotate(22deg)}
.sprite-prop{display:none;position:absolute;z-index:12;pointer-events:none}.food{left:-70px;bottom:45px;width:54px;height:39px;border-radius:10px 10px 24px 24px;background:#d78363;border-top:8px solid #f6d199}.food i{position:absolute;left:17px;top:-22px;width:20px;height:20px;border-radius:50%;background:#82a66f;box-shadow:13px 4px #e4a153}.ball{left:-70px;bottom:24px;width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#dc7d68 50%,#efd17f 50%)}.hand{right:-45px;top:0;width:45px;height:72px;border-radius:24px;background:#f1c1a4;transform:rotate(28deg)}.hand:after{content:"";position:absolute;left:-16px;bottom:0;width:36px;height:18px;border-radius:50%;background:#f1c1a4}.zzz{right:-10px;top:-15px;color:#fff7d7;font:700 22px Georgia;text-shadow:0 3px 9px #34405b}
.pet[data-state="idle"]{animation:breathe 3.3s ease-in-out infinite}.pet[data-state="idle"][data-motion="tail"] .tail{animation:tail 2.7s ease-in-out infinite}.pet[data-state="idle"][data-motion="ears"] .ear{animation:earTwitch 5s ease-in-out infinite}.pet[data-state="idle"][data-motion="flippers"] .paw{animation:flipper 4s ease-in-out infinite}.pet[data-state="idle"][data-motion="wings"] .wing{animation:wingIdle 4.5s ease-in-out infinite}.pet[data-state="happy"]{animation:happyHop .7s ease-in-out 3}.pet[data-state="happy"] .cheek{opacity:1}.pet[data-state="happy"] .tail{animation:tail .3s ease-in-out infinite}.pet[data-state="look"] .pet-head{animation:lookAround 1.8s ease-in-out}.pet[data-state="stretch"]{animation:stretch 1.8s ease-in-out}.pet[data-state="stretch"] .paw{transform:translateY(14px)}.pet[data-state="hungry"]{transform:translateY(12px) scaleY(.94);filter:saturate(.7) drop-shadow(0 10px 6px #71472f22)}.pet[data-state="hungry"] .ear{transform:rotate(-42deg)}.pet[data-state="feed"] .food{display:block;animation:foodEnter 2.8s ease-in-out forwards}.pet[data-state="feed"]{animation:eatMove 2.8s ease-in-out}.pet[data-state="feed"] .pet-head{animation:eatNod .35s 5 1.15s}.pet[data-state="play"] .ball{display:block;animation:ballChase 2.8s ease-in-out}.pet[data-state="play"]{animation:chase 2.8s ease-in-out}.pet[data-state="stroke"] .hand{display:block;animation:petHand 2.6s ease-in-out}.pet[data-state="stroke"] .eye{height:6px;background:transparent;border-bottom:3px solid #4b3a35;animation:none}.pet[data-state="stroke"]{animation:strokeLean 2.6s ease-in-out}.pet[data-state="sleep"]{animation:curlSleep 3s ease-in-out forwards;transform-origin:35% 90%}.pet[data-state="sleep"] .eye{height:6px;background:transparent;border-bottom:3px solid #4b3a35;animation:none}.pet[data-state="sleep"] .zzz{display:block;animation:zzz 2s infinite 1.5s}.pet[data-state="sleep"] .tail{transform:rotate(-28deg) translate(-30px,5px)}
.world[data-milestone="5"] .pet-stage:before,.world[data-milestone="8"] .pet-stage:before,.world[data-milestone="10"] .pet-stage:before{content:"";position:absolute;inset:35px;border-radius:50%;border:2px solid #ffe3a866;animation:halo 3s infinite;pointer-events:none}.world[data-milestone="8"] .pet-stage:before{border-width:5px;box-shadow:0 0 28px #f3b9aa88}.world[data-milestone="10"] .pet-stage:before{border:6px double #ffe293;box-shadow:0 0 42px #ffd875aa}.world[data-milestone="10"] #levelBadge:after{content:" ✦"}
@keyframes earTwitch{0%,88%,100%{transform:rotate(-25deg)}92%{transform:rotate(-10deg)}}@keyframes flipper{50%{transform:rotate(12deg)}}@keyframes wingIdle{50%{transform:rotate(-8deg)}}@keyframes happyHop{50%{transform:translateY(-25px) rotate(3deg)}}@keyframes lookAround{35%{transform:translateX(-9px) rotate(-4deg)}70%{transform:translateX(9px) rotate(4deg)}}@keyframes stretch{45%{transform:scaleX(1.08) scaleY(.9) translateY(8px)}}@keyframes foodEnter{0%{transform:translateX(-40px);opacity:0}30%,62%{transform:translateX(102px);opacity:1}80%,100%{transform:translateX(135px) scale(.15);opacity:0}}@keyframes eatMove{30%,65%{transform:translateX(-22px)}100%{transform:none}}@keyframes eatNod{50%{transform:translateY(8px) rotate(3deg)}}@keyframes ballChase{0%{transform:translateX(-40px) rotate(0)}35%{transform:translate(105px,-30px) rotate(280deg)}70%{transform:translate(230px,0) rotate(560deg)}100%{transform:translate(120px,-18px) rotate(800deg);opacity:0}}@keyframes chase{25%{transform:translate(-20px,-18px) rotate(-4deg)}55%{transform:translate(35px,-36px) rotate(5deg)}80%{transform:translate(60px,-12px)}100%{transform:none}}@keyframes petHand{0%{transform:translate(40px,-20px) rotate(28deg);opacity:0}25%,75%{transform:translate(-85px,45px) rotate(12deg);opacity:1}100%{transform:translate(-30px,-15px);opacity:0}}@keyframes strokeLean{40%,75%{transform:translateX(8px) rotate(3deg) scale(.97)}}@keyframes curlSleep{55%,100%{transform:translate(-92px,35px) rotate(-8deg) scale(.82,.72)}}@keyframes zzz{from{opacity:0;transform:translateY(10px) scale(.7)}50%{opacity:1}to{opacity:0;transform:translate(25px,-45px) scale(1.2)}}@keyframes halo{50%{transform:scale(1.08);opacity:.45}}
@media(max-width:600px){.name-editor{max-width:280px;flex-wrap:wrap}.name-feedback{max-width:280px}.edit-name{width:30px;height:30px}}
.miss-you-button{position:relative;background:linear-gradient(180deg,#fffaf6,#ffe7ef)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.65),0 5px 14px rgba(184,95,124,.18);color:#8a4a58!important}.miss-you-button span{color:#c8697d;animation:missPulse 2.4s ease-in-out infinite}.miss-you-button:after{content:"";position:absolute;inset:7px;border-radius:15px;border:1px solid rgba(255,255,255,.72);pointer-events:none}@keyframes missPulse{50%{transform:scale(1.12);filter:drop-shadow(0 0 5px #fff)}}
@media(prefers-reduced-motion:reduce){.pet{transform:none!important}.sprite-prop{display:none!important}.world[data-milestone] .pet-stage:before{animation:none!important;opacity:.5}}
