:root{--ink: #1d1147;--ink-soft: #5b4b8a;--paper: #fff6e8;--card: #ffffff;--line: #1d1147;--sky1: #7c5cff;--sky2: #ff8a5b;--sun: #ffd447;--ok: #22c55e;--warn: #f59e0b;--danger: #fb7185;--accent: #ff5ea8;--radius: 22px;font-family:Trebuchet MS,Avenir Next,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--sky1);color:var(--ink)}body{min-height:100dvh;background:linear-gradient(180deg,#6d4aff,#7c5cff 28%,#ff8a5b 78%,#ffd447)}button,input,select{font:inherit}button{cursor:pointer;margin:0}#app{min-height:100dvh;position:relative}.sky{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:0}.lobby>*:not(.sky),.page>*:not(.sky),.run>*:not(.sky),.done>*:not(.sky),.go-count>*:not(.sky){position:relative;z-index:1}.sky.thin{height:96px;inset:0 0 auto}.sun{position:absolute;top:18px;right:24px;width:88px;height:88px;border-radius:50%;background:var(--sun);box-shadow:0 0 0 10px #ffd44747,0 0 40px #ffd4478c;animation:spin 18s linear infinite}.sun.small{width:42px;height:42px;top:12px;right:16px;box-shadow:0 0 0 6px #ffd44740}.cloud{position:absolute;background:#ffffffdb;border-radius:40px;height:36px;animation:drift 18s linear infinite}.cloud:before,.cloud:after{content:"";position:absolute;background:inherit;border-radius:50%}.cloud:before{width:34px;height:34px;top:-16px;left:16px}.cloud:after{width:46px;height:46px;top:-22px;left:40px}.c1{width:110px;top:40px;left:-40px;animation-duration:22s}.c2{width:150px;top:90px;left:20%;animation-duration:28s;animation-delay:-8s}.c3{width:90px;top:28px;left:55%;animation-duration:20s;animation-delay:-4s}.topbar,.lobby-hero,.page,.run,.done,.go-count,.lobby{position:relative;z-index:1}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 8px 8px;flex-wrap:wrap}.brand{font-weight:800;letter-spacing:.12em;font-size:12px;color:var(--ink)}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.grow{flex:1}.card{background:var(--card);border:3px solid var(--ink);border-radius:var(--radius);padding:16px;box-shadow:0 6px 0 var(--ink)}h1{font-size:clamp(28px,6vw,42px);margin:0 0 8px;letter-spacing:-.03em}h2{font-size:15px;margin:0 0 12px;color:var(--ink-soft);font-weight:800;text-transform:uppercase;letter-spacing:.06em}p{color:var(--ink-soft);margin:0 0 16px;font-weight:700}.page{padding:8px 20px 40px;max-width:860px;margin:0 auto}.stack{display:flex;flex-direction:column;gap:16px}.btn{border:3px solid var(--ink);border-radius:16px;padding:12px 16px;font-weight:800;background:var(--paper);color:var(--ink);box-shadow:0 4px 0 var(--ink)}.btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}.btn.primary,.btn.didit{background:var(--ok);color:#052016;font-size:20px;letter-spacing:.02em}.btn.ok{background:var(--ok);color:#052016}.btn.danger{background:var(--danger);color:#fff}.btn.ghost{background:#ffffffb3}.btn.tiny{padding:8px 12px;font-size:13px;box-shadow:0 3px 0 var(--ink)}.btn:disabled{opacity:.4;cursor:default;transform:none}.btn.icon{width:42px;padding:0;height:42px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;font-weight:800;color:var(--ink-soft);letter-spacing:.06em;text-transform:uppercase}.field input,.field select,input.title,input#kidName,input#routineName{background:#fff;border:3px solid var(--ink);color:var(--ink);border-radius:12px;padding:10px 12px;font-weight:700}.kid-pills{display:flex;gap:14px 12px;flex-wrap:wrap}.pill{border:3px solid var(--ink);background:#fff;color:var(--ink);border-radius:999px;padding:8px 14px;font-weight:800;box-shadow:0 3px 0 var(--ink)}.pill.on{background:var(--kid, var(--accent));color:#1d1147}.step{display:grid;grid-template-columns:64px 1fr 140px auto;gap:10px;align-items:center}.mission-edit{display:flex;flex-direction:column;gap:4px;min-width:0}.mission-no{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.emoji{width:64px;height:64px;display:grid;place-items:center;font-size:32px;background:#fff6e8;border:3px solid var(--ink);border-radius:18px}.avatar-btn{flex:0 0 64px}.mins{display:flex;align-items:center;gap:6px;font-weight:800}.mins input{width:64px;text-align:center;background:#fff;border:3px solid var(--ink);color:var(--ink);border-radius:12px;padding:10px 8px;font-weight:800}.hint{font-size:14px;color:#15803d;font-weight:800}.lobby{min-height:100dvh;padding:28px 20px 40px;max-width:860px;margin:0 auto;display:flex;flex-direction:column}.lobby-hero{text-align:center;margin-bottom:8px}.logo-mark{font-size:56px;filter:drop-shadow(0 6px 0 rgba(29,17,71,.15));animation:bounce 1.6s ease-in-out infinite}.lobby-hero h1{font-size:clamp(40px,10vw,64px);color:#fff;text-shadow:0 4px 0 var(--ink)}.lobby-hero p{color:#fff6e8;font-size:18px;padding:0 12px;line-height:1.35}.player-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:12px 0 24px}.player-card{text-align:left;background:#fff;border:4px solid var(--ink);border-radius:28px;padding:18px;box-shadow:0 8px 0 var(--ink);color:var(--ink)}.player-card.on{outline:4px solid color-mix(in srgb,var(--kid) 70%,white)}.player-avatar{width:84px;height:84px;display:grid;place-items:center;font-size:48px;background:color-mix(in srgb,var(--kid) 35%,white);border:4px solid var(--ink);border-radius:24px;margin-bottom:10px}.player-name{font-size:28px;font-weight:800}.player-user{font-size:14px;font-weight:800;color:var(--ink-soft);margin:-4px 0 6px}.login-card{max-width:520px;margin:0 auto 18px;text-align:left}.login-card .btn,.page .card .btn.didit{width:100%}.profile-fields{align-items:stretch}.profile-fields .field{min-width:140px}.profile-ok{color:#15803d}.profile-ok strong{color:var(--ink)}.player-stats{display:flex;gap:12px;font-weight:800;color:var(--ink-soft);margin:6px 0 12px}.player-play{width:100%;background:var(--ok);border:3px solid var(--ink);border-radius:14px;text-align:center;padding:10px;font-weight:800;font-size:18px;color:var(--ink);box-shadow:0 4px 0 var(--ink)}.grownup{align-self:center}.go-count{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;text-shadow:0 4px 0 var(--ink)}.go-avatar{font-size:88px;animation:bounce .7s ease-in-out infinite}.go-count p{color:#fff6e8;font-size:22px}.go-n{font-size:clamp(96px,28vw,200px);font-weight:800;line-height:.9}.run{min-height:100dvh;display:flex;flex-direction:column;padding:12px 16px 20px}.run-top{display:flex;justify-content:space-between;align-items:center;font-weight:800;color:#fff;text-shadow:0 2px 0 rgba(29,17,71,.35)}.hud-player{display:flex;align-items:center;gap:8px}.hud-avatar{width:36px;height:36px;display:grid;place-items:center;background:#fff;border:3px solid var(--ink);border-radius:12px}.hud-stars{background:#fff;color:var(--ink);border:3px solid var(--ink);border-radius:999px;padding:6px 12px;font-weight:800;box-shadow:0 3px 0 var(--ink)}.quest-path{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:12px 0 4px}.node{width:44px;height:44px;display:grid;place-items:center;border:3px solid var(--ink);border-radius:14px;background:#ffffff8c;font-size:22px}.node.won{background:var(--sun)}.node.now{background:#fff;transform:scale(1.15);box-shadow:0 0 0 4px #ffffff73}.node.todo{opacity:.55}.emoji-xl{font-size:72px;text-align:center;margin-top:6px}.emoji-xl.bounce{animation:bounce 1.2s ease-in-out infinite}.mission-tag{text-align:center;font-weight:800;letter-spacing:.12em;text-transform:uppercase;font-size:12px;color:#fff6e8}.step-name{text-align:center;font-size:clamp(28px,7vw,52px);font-weight:800;margin:2px 0 0;color:#fff;text-shadow:0 4px 0 var(--ink)}.clock{text-align:center;font-variant-numeric:tabular-nums;font-size:clamp(72px,22vw,160px);font-weight:800;line-height:.92;margin:4px 0;color:#fff;text-shadow:0 6px 0 var(--ink)}.track{position:relative;height:28px;background:#1d114740;border:3px solid var(--ink);border-radius:99px;overflow:visible;margin:8px 8px 0}.track-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--ok),var(--sun));border-radius:99px;transition:width .2s linear}.runner{position:absolute;top:-18px;transform:translate(-50%);font-size:28px;transition:left .2s linear;filter:drop-shadow(0 3px 0 rgba(29,17,71,.25))}.next{text-align:center;color:#fff6e8;font-size:18px;font-weight:800;margin-top:18px}.paused-tag{display:none;text-align:center;margin-top:8px;font-weight:800;color:var(--ink);background:var(--sun);border:3px solid var(--ink);align-self:center;padding:4px 12px;border-radius:999px}.run.paused .paused-tag{display:inline-block}.controls{margin-top:auto;display:grid;grid-template-columns:1fr 1fr;gap:18px 14px;padding-top:16px;padding-bottom:6px}.controls.game .didit{grid-column:1 / -1;padding:22px 12px;font-size:clamp(22px,5vw,32px)}.controls .btn{padding:16px 12px;font-size:16px}.run.hurry{animation:hurry .9s ease-in-out infinite}.run.panic .clock{color:#ffe4e6;animation:shake .35s infinite}.run.panic .runner{animation:shake .35s infinite}.done{min-height:100dvh;display:grid;place-items:center;text-align:center;padding:24px}.win-card{background:#fff;border:4px solid var(--ink);border-radius:32px;padding:28px 22px;box-shadow:0 10px 0 var(--ink);max-width:460px;width:100%}.win-avatar{font-size:72px;animation:bounce .9s ease-in-out infinite}.win-banner{display:inline-block;background:var(--sun);border:3px solid var(--ink);border-radius:999px;padding:4px 12px;font-weight:800;letter-spacing:.12em;font-size:12px;margin-bottom:8px}.win-card h1{font-size:clamp(28px,7vw,40px)}.win-stars{font-size:36px;margin:8px 0}.win-score,.win-streak{color:var(--ink-soft);font-size:18px;margin:4px 0}.win-actions{display:grid;gap:18px;margin-top:16px;padding-bottom:6px}.toggle{display:flex;gap:8px;align-items:center;color:var(--ink);font-size:13px;font-weight:800;background:#ffffffb3;border:3px solid var(--ink);border-radius:999px;padding:6px 10px}.praise{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none;z-index:30;opacity:0;transform:scale(.8)}.praise.show{animation:pop .9s ease-out}.praise-card{background:#fff;border:4px solid var(--ink);border-radius:28px;padding:18px 28px;font-size:28px;font-weight:800;text-align:center;box-shadow:0 8px 0 var(--ink)}.praise-stars{font-size:40px}.burst{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;display:grid;place-items:center;z-index:25}.burst-bit{position:absolute;font-size:28px;animation:burst var(--d) ease-out forwards}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:24;overflow:hidden}.confetti span{position:absolute;top:-20px;font-size:24px;animation:fall linear forwards}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes drift{0%{transform:translate(-20vw)}to{transform:translate(110vw)}}@keyframes hurry{0%,to{filter:none}50%{filter:saturate(1.25) brightness(1.05)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes pop{0%{opacity:0;transform:scale(.6)}25%{opacity:1;transform:scale(1.08)}70%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}@keyframes burst{0%{transform:translate(0) scale(.3);opacity:1}to{transform:translate(var(--x),var(--y)) scale(1.15);opacity:0}}@keyframes fall{to{transform:translateY(110dvh) rotate(240deg);opacity:.2}}@media(max-width:640px){.step{grid-template-columns:56px 1fr}.mins,.step-actions{grid-column:1 / -1}.topbar{padding-top:8px}}.pet-stage{position:relative;height:150px;border-radius:22px;background:linear-gradient(180deg,#b8e0ff,#c6f6d5 70%,#86efac);border:3px solid var(--ink);overflow:hidden;margin-bottom:10px}.pet-house{position:absolute;right:12px;bottom:8px;font-size:64px;filter:drop-shadow(0 4px 0 rgba(29,17,71,.15))}.pet-sprite{position:absolute;left:18px;bottom:10px;font-size:72px;z-index:1}.pet-sprite.happy{animation:bounce .9s ease-in-out infinite}.pet-sprite.hungry{transform:translateY(10px) scale(.92);filter:saturate(.8)}.pet-sprite.bored{transform:rotate(-8deg) translateY(6px)}.pet-toy{position:absolute;left:92px;bottom:18px;font-size:32px;z-index:2;animation:bounce 1.4s ease-in-out infinite}.pet-actions .btn{padding:12px 8px;margin:0;width:100%}.picker-list{display:flex;flex-direction:column;gap:18px;margin-bottom:18px}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%) translateY(20px);background:#fff;color:var(--ink);border:3px solid var(--ink);border-radius:16px;padding:12px 16px;font-weight:800;z-index:50;opacity:0;pointer-events:none;box-shadow:0 5px 0 var(--ink);max-width:min(360px,90vw);text-align:center}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.player-play{width:100%;color:var(--ink);box-shadow:0 4px 0 var(--ink)}.player-play:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}.player-links{display:grid;grid-template-columns:1fr 1fr;gap:18px 14px;margin-top:12px}.player-links .btn{padding:10px 8px;font-size:15px}.sky.thin{height:96px}.page>h1,.page>p,.page>.topbar,.page>.shop-tabs{z-index:2}.shop-page>.didit,.yard-page>.didit{width:100%}.page.yard-page{max-width:1100px}.yard-page .topbar,.shop-page .topbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px}.yard-page .brand,.shop-page .brand{text-align:center;justify-self:center}.shop-tabs{display:flex;gap:16px 12px;flex-wrap:wrap;margin:4px 0 18px}.tab{border:3px solid var(--ink);background:#ffffffb3;border-radius:999px;padding:8px 14px;font-weight:800;color:var(--ink);box-shadow:0 3px 0 var(--ink)}.tab.on{background:var(--sun)}.shop-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:22px 18px;margin-bottom:18px}.shop-card{background:#fff;border:3px solid var(--ink);border-radius:22px;padding:14px;box-shadow:0 6px 0 var(--ink);display:flex;flex-direction:column;gap:6px}.shop-emoji{font-size:48px;text-align:center}.shop-card h3{margin:0;font-size:18px}.shop-fits{display:inline-flex;align-items:center;gap:4px;width:fit-content;max-width:100%;margin:0;padding:3px 10px;border-radius:999px;background:#f3e8ff;border:2px solid var(--ink);font-size:12px;font-weight:800;color:#5b21b6;line-height:1.3}.shop-card p{margin:0;font-size:13px;min-height:2.6em}.shop-status{font-size:12px;font-weight:800;color:#15803d}.shop-card .btn{margin-top:auto}.yard{display:flex;flex-direction:column;gap:16px;margin-bottom:16px}.empty-yard{background:#fff;border:3px solid var(--ink);border-radius:24px;padding:28px 18px;text-align:center;box-shadow:0 6px 0 var(--ink)}.empty-emoji{font-size:64px}.pet-card{background:#fff;border:4px solid var(--ink);border-radius:28px;padding:14px;box-shadow:0 8px 0 var(--ink)}.pet-stage{position:relative;height:188px;border-radius:8px;background:#7ec8ff url(/sprites/yard-bg.png) center / cover no-repeat;image-rendering:pixelated;image-rendering:crisp-edges;border:4px solid var(--ink);overflow:hidden;margin-bottom:10px;cursor:pointer;box-shadow:inset 0 -10px #1d11471f}.pet-stage.shared-stage{height:min(72dvh,620px);min-height:420px;margin-bottom:12px}.house-slot{position:absolute;bottom:0;width:108px;height:112px;z-index:3;pointer-events:none}.shared-stage .house-slot{width:88px;height:92px;pointer-events:auto;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.shared-stage .house-slot .px-house{width:88px;height:88px}.px-house{position:absolute;right:6px;bottom:4px;width:108px;height:108px;object-fit:contain;image-rendering:pixelated;image-rendering:crisp-edges;filter:drop-shadow(0 4px 0 rgba(29,17,71,.2));pointer-events:none;z-index:3}.house-slot .px-house{left:0;right:auto;bottom:0}.px-house.occupied{filter:drop-shadow(0 4px 0 rgba(29,17,71,.2)) saturate(1.08) brightness(1.04)}.home-zzz{position:absolute;right:36px;top:22px;z-index:4;font-weight:800;color:#5b4b8a;pointer-events:none;animation:float-fx 1.4s ease-out infinite}.house-slot .home-zzz{right:28px;top:8px}.home-zzz.z2{right:22px;top:10px;font-size:12px;animation-delay:.3s}.house-slot .home-zzz.z2{right:14px;top:0}.px-actor{position:absolute;left:48px;bottom:8px;width:96px;height:110px;z-index:2;pointer-events:none;will-change:left,transform;transform-origin:center bottom}.px-actor.selected{z-index:6}.px-actor.selected .px-pet{filter:drop-shadow(0 0 0 3px #ffe566) drop-shadow(0 3px 0 rgba(29,17,71,.18))}.px-actor.tucked{z-index:4}.px-actor.tucked .px-pet{transform:scale(.3);transform-origin:center bottom;animation-duration:1.25s;filter:brightness(.88)}.px-pet{position:absolute;left:0;bottom:0;width:96px;height:96px;background-repeat:no-repeat;background-size:192px 96px;image-rendering:pixelated;image-rendering:crisp-edges;animation:px-idle .55s steps(2) infinite;filter:drop-shadow(0 3px 0 rgba(29,17,71,.18))}.mood-happy .px-pet{animation-duration:.32s}.mood-hungry .px-pet{animation-duration:1.15s;filter:saturate(.75) brightness(.92) drop-shadow(0 3px 0 rgba(29,17,71,.18))}.mood-bored .px-pet{animation-duration:1.35s}@keyframes px-idle{to{background-position:-192px 0}}.px-yard-toy{position:absolute;left:18px;bottom:10px;width:42px;height:42px;object-fit:contain;image-rendering:pixelated;image-rendering:crisp-edges;z-index:4;pointer-events:auto;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 2px 0 rgba(29,17,71,.16))}.tap-mark{position:absolute;bottom:10px;width:16px;height:8px;margin-left:-8px;border:3px solid #fff;border-radius:50%;pointer-events:none;z-index:6;animation:tap-fade .5s ease-out forwards}@keyframes tap-fade{0%{transform:scale(.6);opacity:1}to{transform:scale(1.6);opacity:0}}.walking .px-pet{animation:px-idle .18s steps(2) infinite,walk-bob .28s ease-in-out infinite}@keyframes walk-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.px-fx{position:absolute;top:-12px;right:-8px;bottom:0;left:-8px;pointer-events:none;z-index:4}.px-nibble{position:absolute;left:64px;bottom:8px;width:28px;height:28px;image-rendering:pixelated;animation:nibble .4s ease-in-out infinite}@keyframes nibble{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-6px,6px) scale(.85)}}.spark,.heart{position:absolute;font-size:16px;color:#ffe566;animation:float-fx 1.2s ease-out infinite}.spark.s2{left:40px;animation-delay:.2s;color:#fff}.spark.s3{left:70px;animation-delay:.4s}.heart{color:#fb7185;left:20px;top:0}.heart.h2{left:56px;animation-delay:.25s}@keyframes float-fx{0%{transform:translateY(20px) scale(.6);opacity:0}30%{opacity:1}to{transform:translateY(-36px) scale(1.1);opacity:0}}.acting{z-index:5}.act-feed .px-pet{animation-duration:.26s}.act-play .px-pet{animation-duration:.2s}.act-care .px-pet,.act-house .px-pet{animation-duration:.8s}.act-cuddle .px-pet{animation-duration:.22s}.prop-wheel{position:absolute;left:16px;bottom:2px;width:112px;height:122px;z-index:4;pointer-events:auto;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.house-slot.dragging,.px-yard-toy.dragging,.prop-wheel.dragging{cursor:grabbing;z-index:9;filter:brightness(1.08)}.wheel-drum{position:absolute;left:8px;top:0;width:96px;height:96px;border-radius:50%;border:8px solid #3f3f46;box-shadow:inset 0 0 0 3px #d4d4d8,0 0 0 3px #1d1147;background:radial-gradient(circle at 50% 50%,transparent 0 28px,rgba(63,63,70,.12) 29px);overflow:hidden;z-index:2}.wheel-spokes{position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:50%;background:repeating-conic-gradient(from 0deg,#71717a 0deg 6deg,transparent 6deg 30deg);-webkit-mask:radial-gradient(circle,transparent 22%,#000 23%,#000 46%,transparent 47%);mask:radial-gradient(circle,transparent 22%,#000 23%,#000 46%,transparent 47%)}.wheel-hub{position:absolute;left:50%;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;background:#27272a;border:3px solid #1d1147;border-radius:50%;box-shadow:inset 0 0 0 2px #a1a1aa;z-index:2}.wheel-front{position:absolute;left:8px;top:0;width:96px;height:96px;border-radius:50%;border:8px solid rgba(39,39,42,.55);clip-path:inset(52% 0 0 0);z-index:5;pointer-events:none;box-sizing:border-box}.wheel-leg{position:absolute;bottom:4px;width:8px;height:32px;background:#3f3f46;border:3px solid #1d1147;border-radius:3px;z-index:1}.wheel-leg.l{left:22px;transform:rotate(-18deg)}.wheel-leg.r{right:22px;transform:rotate(18deg)}.wheel-stand{position:absolute;left:18px;right:18px;bottom:2px;height:8px;background:#27272a;border:3px solid #1d1147;border-radius:4px;z-index:1}.prop-wheel.is-spinning .wheel-spokes{animation:wheel-spin .38s linear infinite}.prop-wheel.is-spinning .wheel-drum{animation:wheel-shake .18s ease-in-out infinite}.prop-wheel.is-spinning .wheel-stand,.prop-wheel.is-spinning .wheel-leg{animation:wheel-rattle .16s ease-in-out infinite}@keyframes wheel-spin{to{transform:rotate(360deg)}}@keyframes wheel-shake{0%,to{transform:translateY(0)}50%{transform:translateY(1px)}}@keyframes wheel-rattle{0%,to{transform:translate(0)}50%{transform:translate(1px)}}.prop-wheel .px-actor.in-wheel,.wheel-drum .px-actor.in-wheel{left:0!important;bottom:0!important;width:96px;height:96px;z-index:3;pointer-events:none;transform:none!important}.prop-wheel .px-actor.in-wheel .px-pet,.wheel-drum .px-actor.in-wheel .px-pet{left:0;bottom:4px;width:96px;height:96px;z-index:3;transform-origin:center bottom;animation:px-idle .1s steps(2) infinite,wheel-run .16s ease-in-out infinite}@keyframes wheel-run{0%,to{transform:scale(.64) translateY(0)}50%{transform:scale(.64) translateY(-2px)}}.speed-line,.speed-line.sl2,.speed-line.sl3{position:absolute;left:-14px;bottom:44px;width:22px;height:3px;background:#fff6e8;opacity:.85;animation:dash .22s linear infinite}.speed-line.sl2{bottom:30px;width:14px;animation-delay:.08s}.speed-line.sl3{bottom:56px;width:10px;animation-delay:.16s}@keyframes dash{0%{transform:translate(10px);opacity:.9}to{transform:translate(-22px);opacity:0}}.play-toy-tennis .px-pet{animation:px-idle .16s steps(2) infinite,fetch-run .9s ease-in-out infinite}[data-prop=toy-tennis].is-playing{z-index:4;animation:tennis-fetch .9s ease-in-out infinite}@keyframes fetch-run{0%,to{transform:translate(0) scaleX(1)}40%{transform:translate(46px) scaleX(1)}50%{transform:translate(46px) scaleX(-1)}90%{transform:translate(0) scaleX(-1)}}@keyframes tennis-fetch{0%{transform:translate(0) scale(1)}30%{transform:translate(62px,-58px) scale(.82)}55%{transform:translate(78px,4px) scale(1)}78%{transform:translate(18px,-16px) scale(.9)}to{transform:translate(0) scale(1)}}.play-toy-yarn .px-pet{animation:px-idle .2s steps(2) infinite,yarn-pounce .7s ease-in-out infinite}[data-prop=toy-yarn].is-playing{animation:yarn-orbit 1.05s linear infinite}@keyframes yarn-pounce{0%,to{transform:translate(0) scale(1)}30%{transform:translate(6px,12px) scale(1.12,.82)}52%{transform:translate(20px,-30px) scale(.88,1.18)}72%{transform:translate(8px,4px) scale(1.06,.9)}}@keyframes yarn-orbit{0%{transform:translate(0) rotate(0)}25%{transform:translate(46px,-22px) rotate(90deg)}50%{transform:translate(10px,-44px) rotate(180deg)}75%{transform:translate(-28px,-12px) rotate(270deg)}to{transform:translate(0) rotate(360deg)}}.yarn-bit,.yarn-bit.y2,.yarn-bit.y3{position:absolute;left:70px;bottom:36px;width:10px;height:10px;border-radius:50%;background:#e11d48;animation:yarn-orbit 1.05s linear infinite}.yarn-bit.y2{animation-delay:-.35s;width:7px;height:7px}.yarn-bit.y3{animation-delay:-.7s;width:5px;height:5px;left:58px}.play-toy-peck .px-pet{animation:px-idle .18s steps(2) infinite,peck-bob .45s ease-in-out infinite}[data-prop=toy-peck].is-playing{animation:roll-ball .65s ease-in-out infinite}@keyframes peck-bob{0%,to{transform:translate(0) rotate(0)}40%{transform:translate(12px,16px) rotate(18deg)}}@keyframes roll-ball{0%,to{transform:translate(0) rotate(0)}50%{transform:translate(52px) rotate(220deg)}}.peck-dust{position:absolute;left:78px;bottom:12px;color:#d6b26a;font-size:14px;animation:dust .4s ease-out infinite}.peck-dust.p2{left:92px;animation-delay:.15s}.peck-dust.p3{left:64px;animation-delay:.28s;font-size:10px}@keyframes dust{0%{transform:translateY(0);opacity:1}to{transform:translateY(-16px);opacity:0}}.px-actor.play-toy-swing{transform-origin:50% 0%;animation:swing-perch .95s ease-in-out infinite}[data-prop=toy-swing].is-playing{animation:swing-perch .95s ease-in-out infinite;transform-origin:50% 0%}.px-actor.play-toy-swing .px-pet{animation:px-idle .7s steps(2) infinite}@keyframes swing-perch{0%,to{transform:rotate(-16deg)}50%{transform:rotate(16deg)}}.play-toy-teddy .px-pet{animation:px-idle .5s steps(2) infinite,nuzzle .7s ease-in-out infinite}[data-prop=toy-teddy].is-playing{width:54px;height:54px;animation:hug .55s ease-in-out infinite}@keyframes hug{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-14px,6px) scale(1.14)}}@keyframes nuzzle{0%,to{transform:translate(0) rotate(0)}50%{transform:translate(8px,4px) rotate(8deg)}}.squeak{position:absolute;right:8px;top:4px;font-size:18px;color:#7c5cff;animation:float-fx 1s ease-out infinite}.squeak.n2{right:28px;top:-4px;animation-delay:.2s;font-size:14px}.squeak.n3{right:16px;top:18px;animation-delay:.4s;color:#fb7185}.play-toy-bubbles .px-pet{animation:px-idle .22s steps(2) infinite,hop-watch .55s ease-in-out infinite}[data-prop=toy-bubbles].is-playing{animation:wand-wave .5s ease-in-out infinite}@keyframes wand-wave{0%,to{transform:rotate(-22deg) translateY(0)}50%{transform:rotate(28deg) translateY(-10px)}}@keyframes hop-watch{0%,to{transform:translateY(0)}50%{transform:translateY(-14px)}}.bubble{position:absolute;left:50px;bottom:20px;width:16px;height:16px;border:3px solid rgba(255,255,255,.9);border-radius:50%;animation:bubble-up 1.3s ease-out infinite}.bubble.b2{left:72px;width:12px;height:12px;animation-delay:.2s}.bubble.b3{left:30px;width:20px;height:20px;animation-delay:.45s}.bubble.b4{left:88px;width:10px;height:10px;animation-delay:.7s}@keyframes bubble-up{0%{transform:translateY(10px) scale(.6);opacity:0}20%{opacity:1}85%{opacity:1}to{transform:translateY(-76px) scale(1.15);opacity:0}}.play-toy-bone .px-pet{animation:px-idle .16s steps(2) infinite,bone-chomp .55s ease-in-out infinite}[data-prop=toy-bone].is-playing{animation:bone-shake .55s ease-in-out infinite}@keyframes bone-chomp{0%,to{transform:translate(0) rotate(0)}40%{transform:translate(10px,8px) rotate(-12deg)}70%{transform:translate(4px,2px) rotate(8deg)}}@keyframes bone-shake{0%,to{transform:translate(0) rotate(-8deg)}50%{transform:translate(18px,-10px) rotate(16deg)}}.play-toy-lure .px-pet{animation:px-idle .18s steps(2) infinite,hop-watch .5s ease-in-out infinite}[data-prop=toy-lure].is-playing{animation:lure-flutter .7s ease-in-out infinite}@keyframes lure-flutter{0%,to{transform:translate(0) rotate(-12deg)}50%{transform:translate(28px,-36px) rotate(18deg)}}.play-toy-boomerang .px-pet{animation:px-idle .16s steps(2) infinite,hop-watch .45s ease-in-out infinite}[data-prop=toy-boomerang].is-playing{animation:boom-arc .9s ease-in-out infinite}.play-toy-dustbath .px-pet{animation:px-idle .16s steps(2) infinite,dust-roll .7s ease-in-out infinite}[data-prop=toy-dustbath].is-playing{animation:dust-shake .7s ease-in-out infinite}@keyframes dust-roll{0%,to{transform:translate(0) rotate(0)}30%{transform:translate(10px,8px) rotate(-22deg)}65%{transform:translate(-8px,4px) rotate(16deg)}}@keyframes dust-shake{0%,to{transform:translate(0) scale(1)}50%{transform:translateY(-5px) scale(1.08)}}@keyframes boom-arc{0%{transform:translate(0) rotate(0)}35%{transform:translate(52px,-48px) rotate(160deg)}70%{transform:translate(8px,-8px) rotate(300deg)}to{transform:translate(0) rotate(360deg)}}.play-toy-float .px-pet{animation:px-idle .2s steps(2) infinite,float-bob .7s ease-in-out infinite}[data-prop=toy-float].is-playing{animation:float-bob .7s ease-in-out infinite}@keyframes float-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-16px)}}.play-free .px-pet{animation:px-idle .18s steps(2) infinite,hop-watch .4s ease-in-out infinite}.zzz{position:absolute;left:70px;top:8px;font-weight:800;color:#5b4b8a;animation:float-fx 1.4s ease-out infinite}.zzz.z2{left:86px;top:-4px;animation-delay:.3s;font-size:12px}.px-yard-toy[data-prop=toy-swing]{left:22px;bottom:42px;width:48px;height:48px}.px-yard-toy[data-prop=toy-teddy]{width:48px;height:48px}.shop-sprite,.px-mini{image-rendering:pixelated;image-rendering:crisp-edges;object-fit:contain}.shop-sprite{width:72px;height:72px;display:block;margin:0 auto}.shop-pet-idle{width:72px;height:72px;margin:0 auto;background-size:144px 72px;background-repeat:no-repeat;image-rendering:pixelated;image-rendering:crisp-edges;animation:px-idle-sm .6s steps(2) infinite}@keyframes px-idle-sm{to{background-position:-144px 0}}.px-mini{width:32px;height:32px;flex:0 0 32px}.pet-strip{display:flex;flex-wrap:wrap;gap:10px;padding:2px 2px 12px;margin-bottom:4px}.pet-chip{flex:0 0 auto;display:flex;align-items:center;gap:8px;border:3px solid var(--ink);background:#fff;border-radius:999px;padding:4px 12px 4px 4px;font-weight:800;color:var(--ink);box-shadow:0 3px 0 var(--ink)}.pet-chip.on{background:var(--sun)}.chip-face{width:36px;height:36px;flex:0 0 36px;border-radius:50%;background-color:#c6f6d5;background-size:72px 36px;background-repeat:no-repeat;background-position:0 0;image-rendering:pixelated;image-rendering:crisp-edges;animation:chip-idle .55s steps(2) infinite;border:2px solid var(--ink)}@keyframes chip-idle{to{background-position:-72px 0}}.pet-name{width:100%;font-size:22px;font-weight:800;text-align:center;border:3px solid var(--ink);border-radius:12px;padding:8px;color:var(--ink)}.pet-mood{text-align:center;font-weight:800;margin:8px 0;color:var(--ink-soft)}.meters{display:grid;gap:8px;margin-bottom:10px}.meter{display:grid;grid-template-columns:58px 1fr;gap:8px;align-items:center;font-weight:800;font-size:13px}.meter-bar{height:16px;background:#fde68a;border:3px solid var(--ink);border-radius:99px;overflow:hidden}.meter-bar i{display:block;height:100%;background:#22c55e}.meter-bar.joy i{background:#fb7185}.pet-actions{display:grid;grid-template-columns:1fr 1fr;gap:20px 16px;padding-bottom:6px}.pet-actions .btn{padding:12px 8px;width:100%;margin:0}.picker{position:fixed;top:0;right:0;bottom:0;left:0;background:#1d114773;display:grid;place-items:end center;z-index:60;padding:16px 16px max(36px,env(safe-area-inset-bottom,0px))}.picker-card{background:#fff;border:4px solid var(--ink);border-radius:28px 28px 22px 22px;padding:20px 18px 24px;width:min(480px,100%);max-height:min(70dvh,560px);overflow-x:hidden;overflow-y:auto;box-shadow:0 10px 0 var(--ink)}.picker-card h3{margin:0 0 16px}.picker-list{display:flex;flex-direction:column;gap:18px;margin-bottom:18px;padding-bottom:4px}.picker-list .btn,.picker-card #pick-cancel{width:100%;min-height:52px;margin:0;flex-shrink:0}.pick-item{display:flex;align-items:center;gap:12px;justify-content:flex-start}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%) translateY(20px);background:#fff;color:var(--ink);border:3px solid var(--ink);border-radius:16px;padding:12px 16px;font-weight:800;z-index:45;opacity:0;pointer-events:none;box-shadow:0 5px 0 var(--ink);max-width:min(360px,90vw);text-align:center}.toast.show{animation:pop 1.7s ease-out}
