:root{--bg-1:#221712;--bg-2:#120c0a;--glow:#ffaa5033;--panel:#ffecd60f;--panel-line:#ffdcbe1a;--text:#fff4e8;--muted:#bfa692;--accent:#ffb547;--feed-1:#8af0cb;--feed-2:#2fae86;--play-1:#ffa394;--play-2:#e0513f;--sleep-1:#b4a8ff;--sleep-2:#6a55e6;--frame:#2a1914;--rug-1:#2fae86;--rug-2:#8af0cb;--floor-edge:#1a0f0b;--pet-shadow:#0d0706;--wall-1:#5b362a;--wall-2:#40251c;--floor-1:#33201a;--floor-2:#24160f;--sky-1:#ff9e6e;--sky-2:#ffd9a0;--sun:#ffc36b;--lamp:#ffbe6e59;--cloud:#f2d2c0}:root[data-time=morning]{--bg-1:#2a1a1c;--bg-2:#140c0e;--glow:#ffa08233;--cloud:#fff0ea;--wall-1:#7a4e44;--wall-2:#5e3a32;--floor-1:#3f2820;--floor-2:#2d1c16;--sky-1:#ffb199;--sky-2:#ffe6c9;--sun:#ffe08a;--lamp:#ffc89629}:root[data-time=day]{--bg-1:#2c2119;--bg-2:#16100c;--glow:#ffe1b433;--cloud:#fff;--wall-1:#8c6552;--wall-2:#6e4e40;--floor-1:#4a3228;--floor-2:#36241d;--sky-1:#7cc4ff;--sky-2:#d8f0ff;--sun:#ffe08a;--lamp:#fff0d21a}:root[data-time=night]{--bg-1:#151729;--bg-2:#07080f;--glow:#8296ff24;--cloud:#4a4f70;--wall-1:#2e2330;--wall-2:#1e1720;--floor-1:#1f1618;--floor-2:#140e10;--sky-1:#141836;--sky-2:#2b3160;--sun:#f4ebc8;--lamp:#ffb4646b}*{box-sizing:border-box}html,body{height:100%}body{color:var(--text);background:radial-gradient(100% 45% at 50% 0%, var(--glow), transparent 70%), linear-gradient(180deg, var(--bg-1), var(--bg-2));-webkit-tap-highlight-color:transparent;background-attachment:fixed;margin:0;font-family:Fredoka,system-ui,sans-serif}.sky-fx{pointer-events:none;opacity:0;transition:opacity 1s;position:fixed;inset:0}[data-weather=rain] .sky-fx,[data-weather=storm] .sky-fx{opacity:.18;background-image:repeating-linear-gradient(100deg,#0000 0 22px,#c8e1ffe6 22px 23px,#0000 23px 47px);background-size:47px 90px;animation:.5s linear infinite pageRain}[data-weather=snow] .sky-fx{opacity:.35;background-image:radial-gradient(circle,#fff 1.4px,#0000 2px),radial-gradient(circle,#fff 1px,#0000 1.6px);background-position:0 0,20px 30px;background-size:70px 70px,45px 45px;animation:9s linear infinite pageSnow}[data-weather=fog] .sky-fx{opacity:.5;background:linear-gradient(#dce1eb1f,#0000 60%)}@keyframes pageRain{to{background-position:-16px 90px}}@keyframes pageSnow{to{background-position:30px 280px,-20px 210px}}.app{max-width:480px;min-height:100%;padding:calc(12px + var(--tg-content-safe-area-inset-top,0px) + var(--tg-safe-area-inset-top,env(safe-area-inset-top,0px))) 14px calc(96px + var(--tg-safe-area-inset-bottom,env(safe-area-inset-bottom,0px)));flex-direction:column;gap:14px;margin:0 auto;display:flex;position:relative}.panel{background:var(--panel);border:1px solid var(--panel-line);border-radius:24px}svg.i{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.topbar{align-items:center;gap:10px;display:flex}.avatar{color:#1d130f;background:linear-gradient(160deg,var(--feed-1),var(--feed-2));width:48px;height:48px;box-shadow:0 0 0 2px var(--bg-1), 0 0 0 4px var(--accent);border-radius:50%;flex:none;place-items:center;font-size:24px;font-weight:700;display:grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.who{flex:1;min-width:0}.who b{white-space:nowrap;text-overflow:ellipsis;font-size:18px;font-weight:600;display:block;overflow:hidden}.who span{color:var(--muted);font-size:13px}.pill{border-radius:999px;align-items:center;gap:6px;padding:5px 12px 5px 6px;font-size:16px;font-weight:600;display:flex}.coin{background:radial-gradient(circle at 35% 30%,#ffe7a8,#ffb547 55%,#c97a12);border-radius:50%;flex:none;width:22px;height:22px;box-shadow:inset 0 0 0 3px #ffffff2e}.star{flex:none;width:22px;height:22px}.stage{border:1px solid var(--panel-line);border-radius:28px;overflow:hidden;box-shadow:0 20px 40px #00000073}.stage svg{cursor:pointer;touch-action:manipulation;width:100%;height:auto;display:block}.stats{gap:10px;padding:14px 14px 14px 12px;display:grid}.stat{--c1:var(--feed-1);--c2:var(--feed-2);grid-template-columns:26px 1fr 34px;align-items:center;gap:10px;display:grid}.stat.happy{--c1:var(--play-1);--c2:var(--play-2)}.stat.energy{--c1:var(--sleep-1);--c2:var(--sleep-2)}.stat .ico{width:22px;height:22px;fill:var(--c1);justify-self:center}.bar{background:#ffffff12;border-radius:999px;height:14px;overflow:hidden;box-shadow:inset 0 1px 2px #0006}.fill{background:linear-gradient(180deg, var(--c1), var(--c2));border-radius:999px;width:0;height:100%;transition:width .6s;position:relative}.fill:after{content:"";background:linear-gradient(#fff9,#fff0);border-radius:4px;height:4px;position:absolute;top:2px;left:6px;right:6px}.stat b{text-align:right;font-size:15px;font-weight:600}.actions{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.btn{--c1:var(--feed-1);--c2:var(--feed-2);cursor:pointer;color:#fff;text-shadow:0 1px 2px #00000040;background:radial-gradient(120% 140% at 50% 0%, var(--c1), var(--c2) 70%);border:0;border-radius:999px;padding:12px 6px 11px;font-family:inherit;transition:transform .1s,filter .2s;position:relative;overflow:hidden;box-shadow:inset 0 -4px 8px #00000038,inset 0 1px #fff6,0 6px 16px #0006}.btn:after{content:"";pointer-events:none;background:linear-gradient(#ffffff59,#fff0);border-radius:999px;height:32%;position:absolute;top:3px;left:14%;right:14%}.btn.play{--c1:var(--play-1);--c2:var(--play-2)}.btn.sleep{--c1:var(--sleep-1);--c2:var(--sleep-2)}.btn:active{transform:scale(.95)}.btn:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.btn[disabled]{filter:grayscale(.85)brightness(.6);cursor:not-allowed}.btn b{font-size:18px;font-weight:600;display:block}.btn small{opacity:.9;justify-content:center;align-items:center;gap:3px;font-size:12px;display:flex}.btn small .coin{width:12px;height:12px;box-shadow:none}.daily{color:var(--text);cursor:pointer;text-align:left;align-items:center;gap:12px;padding:10px 12px;font-family:inherit;animation:2.4s ease-in-out infinite dailyGlow;display:flex}.daily[hidden]{display:none}.daily>svg.i{width:30px;height:30px;color:var(--accent);flex:none}.daily span{flex-direction:column;flex:1;display:flex}.daily b{font-size:16px;font-weight:600}.daily small{color:var(--muted);font-size:12px}.daily em{color:#2a1a0c;background:linear-gradient(180deg,#ffd27a,var(--accent));border-radius:999px;align-items:center;gap:4px;padding:6px 12px;font-size:16px;font-style:normal;font-weight:600;display:flex}.daily em .coin{width:14px;height:14px;box-shadow:none}@keyframes dailyGlow{0%,to{box-shadow:0 0 #ffb54700}50%{box-shadow:0 0 0 3px #ffb54740}}.sheet{z-index:20;position:fixed;inset:0}.sheet[hidden]{display:none}.sheet-backdrop{background:#0000008c;animation:.2s fadeIn;position:absolute;inset:0}.sheet-panel{max-width:480px;padding:16px 14px calc(18px + var(--tg-safe-area-inset-bottom,env(safe-area-inset-bottom,0px)));background:linear-gradient(180deg,#2d201a,var(--bg-2));border-top:1px solid var(--panel-line);border-radius:26px 26px 0 0;margin:0 auto;animation:.25s slideUp;position:absolute;bottom:0;left:0;right:0}.sheet-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.sheet-head b{font-size:18px;font-weight:600}.sheet-x{background:var(--panel);border:1px solid var(--panel-line);color:var(--text);cursor:pointer;border-radius:50%;width:34px;height:34px;font-size:14px}.foods{grid-template-columns:1fr 1fr;gap:10px;display:grid}.food-card{cursor:pointer;color:var(--text);background:var(--panel);border:1px solid var(--panel-line);border-radius:20px;flex-direction:column;align-items:center;gap:4px;padding:14px 8px 12px;font-family:inherit;display:flex}.food-card:active{transform:scale(.97)}.food-card i{font-size:40px;font-style:normal;line-height:1.1}.food-card b{font-size:16px;font-weight:600}.food-card small{color:var(--muted);font-size:12px}.food-card em{background:#ffffff14;border-radius:999px;align-items:center;gap:4px;margin-top:4px;padding:4px 12px;font-style:normal;font-weight:600;display:flex}.food-card em .coin{width:14px;height:14px;box-shadow:none}.food-card[disabled]{opacity:.4;cursor:not-allowed}@keyframes slideUp{0%{transform:translateY(100%)}}@keyframes fadeIn{0%{opacity:0}}.debug{display:none}.is-debug .debug{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.debug span{text-align:center;width:100%;color:var(--muted);font-size:12px}.chip{color:var(--text);cursor:pointer;border:1px solid var(--panel-line);background:var(--panel);border-radius:999px;padding:5px 11px;font-family:inherit;font-size:13px}.chip.on{background:var(--accent);color:#1d130f;border-color:#0000}.nav{z-index:5;max-width:480px;padding:8px 8px calc(8px + var(--tg-safe-area-inset-bottom,env(safe-area-inset-bottom,0px)));background:linear-gradient(180deg, #0000, var(--bg-2) 30%);grid-template-columns:repeat(5,1fr);margin:0 auto;display:grid;position:fixed;bottom:0;left:0;right:0}.nav button{color:var(--muted);letter-spacing:.3px;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:3px;padding:6px 0;font-family:inherit;font-size:11px;display:flex}.nav button.on{color:var(--accent)}.nav button.on svg.i{filter:drop-shadow(0 0 8px var(--accent))}.toast{white-space:nowrap;left:50%;top:calc(16px + env(safe-area-inset-top,0px));color:var(--text);border:1px solid var(--panel-line);z-index:30;background:#2b211c;border-radius:14px;align-items:center;gap:6px;padding:10px 16px;transition:transform .3s;display:flex;position:fixed;transform:translate(-50%,-160%);box-shadow:0 10px 30px #0006}.toast.show{transform:translate(-50%)}.toast .coin{width:16px;height:16px}.app.is-loading .stats,.app.is-loading .actions{opacity:.4;pointer-events:none}.actor{transform-box:fill-box;transform-origin:50% 100%}.leg{transform-box:fill-box;transform-origin:50% 15%}.arm{transform-box:fill-box;transform-origin:50% 17%}.upper{transform-box:fill-box;transform-origin:50% 100%}.head{transform-box:fill-box;transform-origin:50% 100%;animation:5s ease-in-out infinite headTilt}.eyes{transform-box:fill-box;transform-origin:50%;animation:4.4s infinite blink}.antennae{transform-box:fill-box;transform-origin:50% 100%;animation:3.4s ease-in-out infinite sway}.ant{transition:transform .5s}.ant-l{transform-box:fill-box;transform-origin:100% 100%}.ant-r{transform-box:fill-box;transform-origin:0 100%}.heart{transform-box:fill-box;transform-origin:50%;animation:1.6s ease-in-out infinite pulse}.food,.zzz{opacity:0}.food{transform-box:fill-box;transform-origin:50%}.zzz{transform-box:fill-box}.fx{display:none}#pet[data-mood=happy] .fx.happy,#pet[data-mood=hungry] .fx.hungry,#pet[data-mood=sleepy] .fx.sleepy,#pet[data-mood=sad] .fx.sad,#pet[data-mood=excited] .fx.excited{display:inline}#pet[data-mood=sad] .ant-l,#pet.sleep .ant-l{transform:rotate(-38deg)}#pet[data-mood=sad] .ant-r,#pet.sleep .ant-r{transform:rotate(38deg)}#pet[data-mood=hungry] .ant-l{transform:rotate(-16deg)}#pet[data-mood=hungry] .ant-r{transform:rotate(16deg)}#pet[data-mood=excited] .antennae{animation-duration:.9s}.pet:not(.walking):not(.sleep) .upper{animation:3s ease-in-out infinite breathe}.pet.walking .leg-l{animation:.46s ease-in-out infinite leg}.pet.walking .leg-r{animation:.46s ease-in-out -.23s infinite leg}.pet.walking .arm-l{animation:.46s ease-in-out -.23s infinite armswing}.pet.walking .arm-r{animation:.46s ease-in-out infinite armswing}.pet.walking .upper{animation:.23s ease-in-out infinite alternate bob}.pet.wave .arm-r{animation:1.2s ease-in-out wave}.pet.jump{animation:.75s jump}.pet.jump .arm-l{animation:.75s armsUpL}.pet.jump .arm-r{animation:.75s armsUpR}.pet.jump .leg-l{animation:.75s tuckL}.pet.jump .leg-r{animation:.75s tuckR}.pet.dance{animation:.8s ease-in-out 2 dance}.pet.dance .arm-l{animation:.8s ease-in-out 2 armsUpL}.pet.dance .arm-r{animation:.8s ease-in-out .4s 2 armsUpR}.pet.dance .leg-l{animation:.4s ease-in-out 4 leg}.pet.dance .leg-r{animation:.4s ease-in-out -.2s 4 leg}.pet.eat .arm-l{animation:1.4s ease-in-out eatL}.pet.eat .arm-r{animation:1.4s ease-in-out eatR}.pet.eat .food{animation:1.4s ease-in-out food}.pet.eat .upper{animation:.2s ease-in-out 7 alternate chew}.pet.sleep .eyes{animation:none}.pet.sleep .upper{animation:4s ease-in-out infinite sleepy}.pet.sleep .zzz{animation:1.8s ease-in-out infinite zzz}.pet.sleep .zzz.z2{animation-delay:.9s}.pet.sleep .arm-l{transform:rotate(-10deg)}.pet.sleep .arm-r{transform:rotate(10deg)}@keyframes blink{0%,91%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes sway{0%,to{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}@keyframes headTilt{0%,to{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}@keyframes pulse{0%,to{transform:scale(1)}15%{transform:scale(1.18)}30%{transform:scale(1)}}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(.985,1.025)}}@keyframes bob{0%{transform:translateY(0)}to{transform:translateY(-5px)}}@keyframes leg{0%,to{transform:rotate(26deg)}50%{transform:rotate(-26deg)}}@keyframes armswing{0%,to{transform:rotate(-22deg)}50%{transform:rotate(22deg)}}@keyframes wave{0%{transform:rotate(0)}18%{transform:rotate(-155deg)}32%{transform:rotate(-120deg)}46%{transform:rotate(-160deg)}60%{transform:rotate(-120deg)}74%{transform:rotate(-155deg)}to{transform:rotate(0)}}@keyframes jump{0%{transform:translateY(0)scale(1)}16%{transform:translateY(0)scale(1.12,.86)}46%{transform:translateY(-90px)scale(.94,1.07)}76%{transform:translateY(0)scale(1.12,.88)}to{transform:translateY(0)scale(1)}}@keyframes armsUpL{0%,to{transform:rotate(0)}40%,60%{transform:rotate(150deg)}}@keyframes armsUpR{0%,to{transform:rotate(0)}40%,60%{transform:rotate(-150deg)}}@keyframes tuckL{0%,to{transform:rotate(0)}46%{transform:rotate(-35deg)}}@keyframes tuckR{0%,to{transform:rotate(0)}46%{transform:rotate(35deg)}}@keyframes dance{0%,to{transform:rotate(0)translateY(0)}25%{transform:rotate(-9deg)translateY(-10px)}50%{transform:rotate(0)translateY(0)}75%{transform:rotate(9deg)translateY(-10px)}}@keyframes eatL{0%,to{transform:rotate(0)}20%,80%{transform:rotate(-62deg)}}@keyframes eatR{0%,to{transform:rotate(0)}20%,80%{transform:rotate(62deg)}}@keyframes food{0%{opacity:0;transform:translateY(24px)scale(.6)}20%{opacity:1;transform:translateY(0)scale(1)}75%{opacity:1;transform:translateY(-6px)scale(.35)}to{opacity:0;transform:translateY(-8px)scale(.1)}}@keyframes chew{0%{transform:scale(1)}to{transform:scale(1.04,.96)}}@keyframes sleepy{0%,to{transform:translateY(6px)scale(1)}50%{transform:translateY(6px)scale(1.02,.97)}}@keyframes zzz{0%{opacity:0;transform:translate(0)}35%{opacity:1}to{opacity:0;transform:translate(14px,-30px)}}.float{transform-box:fill-box;animation:1.1s ease-out forwards floatUp}@keyframes floatUp{0%{opacity:0;transform:translateY(0)scale(.5)}20%{opacity:1}to{opacity:0;transform:translateY(-80px)scale(1.15)}}#world .night{opacity:0;transition:opacity .8s}#world.is-night .night{opacity:1}#world .moon-cut{opacity:0}[data-time=night] #world .moon-cut,[data-time=night] #world .stars{opacity:1}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}#window{cursor:pointer}.w-overcast,.w-clouds,.w-fog,.w-flash,.w-drops line,.w-drops circle{opacity:0;transition:opacity .8s}.sun{transition:opacity .8s}[data-weather=clouds] .w-clouds{opacity:.95}[data-weather=clouds] .w-overcast{opacity:.15}[data-weather=rain] .w-clouds,[data-weather=snow] .w-clouds,[data-weather=storm] .w-clouds{opacity:1}[data-weather=rain] .w-overcast,[data-weather=storm] .w-overcast{opacity:.55}[data-weather=snow] .w-overcast{opacity:.35}[data-weather=fog] .w-fog{opacity:.7}[data-weather=rain] .sun,[data-weather=snow] .sun,[data-weather=storm] .sun,[data-weather=fog] .sun{opacity:0}[data-weather=rain] .w-drops line,[data-weather=storm] .w-drops line{opacity:.8}[data-weather=snow] .w-drops circle{opacity:.95}[data-weather=storm] .w-flash{animation:5s infinite flash}.w-drops line{stroke:#cfe3ff;stroke-width:1.4px;stroke-linecap:round;animation:.6s linear infinite rain}.w-drops circle{fill:#fff;animation:4s linear infinite snow}@keyframes rain{0%{transform:translate(0)}to{transform:translate(-8px,96px)}}@keyframes snow{0%{transform:translate(0)}50%{transform:translate(4px,48px)}to{transform:translate(-2px,96px)}}@keyframes flash{0%,93%,97%,to{opacity:0}94%,96%{opacity:.8}}:root[data-weather=rain],:root[data-weather=storm]{--cloud:#8f94a6}:root[data-weather=snow]{--cloud:#d9dde6}
