:root{--ink: #4a2a78;--ink-soft: #6b4ea0;--paper: #fff8ec;--card: #fffdf8;--line: #4a2a78;--sky1: #7ec8ff;--sky2: #ffb347;--sun: #ffd24a;--ok: #3ee08a;--warn: #ffb347;--danger: #ff6b9d;--accent: #ff5ea8;--radius: 18px;--display: "Nunito", "Source Sans 3", "Segoe UI", sans-serif;--ui: "Nunito", "Source Sans 3", "Segoe UI", sans-serif;font-family:var(--ui);font-weight:700}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--sky1);color:var(--ink);overflow-x:hidden}body{min-height:100dvh;background:linear-gradient(180deg,#7ec8ff,#b8e8ff 42%,#ffe566);color:var(--ink);font-family:var(--ui);font-weight:700;letter-spacing:0;line-height:1.35;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:radial-gradient(circle at 12% 16%,rgba(255,210,74,.55) 0 72px,transparent 73px),radial-gradient(circle at 90% 10%,rgba(255,94,168,.32) 0 58px,transparent 59px),radial-gradient(circle at 82% 88%,rgba(62,224,138,.3) 0 90px,transparent 91px)}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;opacity:.45;background-image:radial-gradient(rgba(255,255,255,.55) 1.4px,transparent 1.6px);background-size:26px 26px}button,input,select{font:inherit}button{cursor:pointer;margin:0}#app{min-height:100dvh;position:relative;z-index:1}.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:72px;inset:0 0 auto}.sun{position:absolute;top:14px;right:20px;width:64px;height:64px;border-radius:50%;background:var(--sun);box-shadow:0 0 0 8px #ffd24a47,0 0 28px #ffd24a80;animation:spin 18s linear infinite}.sun.small{width:36px;height:36px;top:10px;right:14px;box-shadow:0 0 0 5px #ffd24a40}.cloud{position:absolute;background:#ffffffeb;border-radius:40px;height:28px;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:.22em;font-size:11px;color:var(--accent);text-transform:uppercase}.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:18px;padding:16px;box-shadow:0 6px 0 var(--ink);color:var(--ink)}h1{font-family:var(--display);font-size:clamp(24px,5.5vw,36px);margin:0 0 8px;font-weight:900;letter-spacing:-.02em;color:var(--ink);text-shadow:none;overflow-wrap:anywhere}h2{font-family:var(--display);font-size:13px;margin:0 0 10px;color:var(--accent);font-weight:800;text-transform:uppercase;letter-spacing:.06em}p{color:var(--ink-soft);margin:0 0 12px;font-weight:700}.page{padding:6px 14px 28px;max-width:860px;margin:0 auto}.shop-page>.didit,.yard-page>.didit{width:100%}.stack{display:flex;flex-direction:column;gap:16px}.btn{position:relative;border:3px solid var(--ink);border-radius:16px;padding:10px 14px;min-height:44px;font-family:var(--ui);font-weight:800;letter-spacing:0;text-transform:none;font-size:15px;line-height:1.15;color:var(--ink);text-shadow:none;background:#fff;filter:none;box-shadow:0 4px 0 var(--ink);white-space:normal;overflow-wrap:anywhere;text-align:center;transition:transform .08s ease,box-shadow .08s ease}.btn:hover{filter:none;background:#fff8ec}.btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}.btn.primary,.btn.didit{background:var(--sun);color:var(--ink);font-size:17px;letter-spacing:0;text-shadow:none;filter:none}.btn.ok{background:var(--ok);color:#052016}.btn.danger{background:var(--danger);color:#fff}.btn.ghost{background:#ffffffd1;color:var(--ink)}.btn.tiny{padding:6px 10px;min-height:34px;font-size:13px;letter-spacing:0}.btn:disabled{opacity:.4;cursor:default;transform:none;filter:none}.btn.icon{width:42px;padding:0;height:42px;min-height:42px;text-transform:none}.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:2px solid #ffb3d0;color:var(--ink);border-radius:14px;padding:10px 12px;font-weight:700;box-shadow:inset 0 2px #fffc}.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:6px 12px;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:14px;box-shadow:none}.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:10px;padding:8px 6px;font-weight:800;box-shadow:none}.hint{font-size:14px;color:#15803d;font-weight:800}.lobby{min-height:100dvh;padding:16px 16px 28px;max-width:860px;margin:0 auto;display:flex;flex-direction:column;background:transparent}.lobby,.page,.run,.done,.go-count{background-color:transparent}body:has(.shop-page){background:linear-gradient(180deg,#c9b6ff,#ffb3e0 48%,#ffe566)}body:has(.run),body:has(.go-count){background:linear-gradient(180deg,#5ec8ff,#8ee8d0 52%,#ffe566)}body:has(.done){background:linear-gradient(180deg,#ff9ec8,#ffd24a 48%,#7ee8a0)}body:has(.yard-page),body:has(.log-page){background:linear-gradient(180deg,#7ec8ff,#b8f0d0 62%,#86efac)}.lobby-hero{text-align:center;margin-bottom:4px}.logo-mark{width:72px;height:72px;margin:0 auto 4px;filter:drop-shadow(0 4px 0 rgba(74,42,120,.2));animation:bounce 1.8s ease-in-out infinite}.logo-mark img{width:100%;height:100%;object-fit:contain}.lobby-hero h1{font-family:var(--display);font-size:clamp(28px,8vw,48px);color:#fff;letter-spacing:-.03em;text-shadow:0 3px 0 var(--ink)}.lobby-hero p{color:#fff8ec;font-size:15px;font-weight:700;padding:0 8px;line-height:1.3;text-shadow:0 1px 0 rgba(74,42,120,.25)}.player-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:10px 0 18px}.player-card{text-align:left;background:#fff;border:3px solid var(--ink);border-radius:20px;padding:14px;box-shadow:0 6px 0 var(--ink);color:var(--ink)}.player-card.on{outline:3px solid #ff5ea8;outline-offset:2px}.player-avatar{width:64px;height:64px;display:grid;place-items:center;font-size:36px;background:color-mix(in srgb,var(--kid) 40%,white);border:3px solid var(--ink);border-radius:18px;margin-bottom:8px}.player-name{font-size:22px;font-weight:800;overflow-wrap:anywhere}.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 8px;font-family:var(--ui);font-weight:800;letter-spacing:0;text-transform:none;font-size:16px;color:var(--ink);text-shadow:none;box-shadow:0 4px 0 var(--ink)}.player-play:hover{filter:none;background:#6eef9a}.player-play:active{transform:translateY(3px);box-shadow:0 1px 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;font-family:var(--display);text-shadow:0 4px 0 var(--ink)}.go-avatar{font-size:64px;animation:bounce .7s ease-in-out infinite}.go-count p{color:#fff8ec;font-size:16px;font-family:var(--ui);font-weight:700}.go-n{font-family:var(--display);font-size:clamp(72px,22vw,140px);font-weight:900;line-height:.9;letter-spacing:-.03em}.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:4px 10px;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:40px;height:40px;display:grid;place-items:center;border:3px solid var(--ink);border-radius:12px;background:#ffffffb3;font-size:20px;box-shadow:none}.node.won{background:var(--sun)}.node.now{background:#fff;transform:scale(1.1);box-shadow:0 0 0 3px #ffffff8c}.node.todo{opacity:.55}.emoji-xl{font-size:52px;text-align:center;margin-top:4px}.emoji-xl.bounce{animation:bounce 1.2s ease-in-out infinite}.mission-tag{text-align:center;font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:11px;color:#fff8ec}.step-name{text-align:center;font-family:var(--display);font-size:clamp(20px,5.5vw,32px);font-weight:900;margin:2px 0 0;color:#fff;letter-spacing:-.02em;text-shadow:0 3px 0 var(--ink);overflow-wrap:anywhere;padding:0 8px}.clock{text-align:center;font-family:var(--display);font-variant-numeric:tabular-nums;font-size:clamp(52px,16vw,96px);font-weight:900;line-height:.92;margin:2px 0;color:#fff;text-shadow:0 4px 0 var(--ink)}.track{position:relative;height:22px;background:#1d114738;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:#fff8ec;font-size:15px;font-weight:800;margin-top:10px;text-shadow:0 1px 0 rgba(74,42,120,.3)}.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:8px;padding-top:12px;padding-bottom:4px}.controls.game .didit{grid-column:1 / -1;padding:14px 10px;font-size:clamp(16px,4.2vw,22px)}.controls .btn{padding:12px 8px;font-size:15px}.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:3px solid var(--ink);border-radius:22px;padding:20px 16px 16px;box-shadow:0 8px 0 var(--ink);max-width:420px;width:100%}.win-avatar{font-size:56px;animation:bounce .9s ease-in-out infinite}.win-banner{display:inline-block;background:var(--sun);border:3px solid var(--ink);border-radius:999px;padding:3px 10px;font-weight:800;letter-spacing:.08em;font-size:11px;margin-bottom:6px}.win-card h1{font-size:clamp(22px,6vw,32px);color:var(--ink);text-shadow:none}.win-stars{font-size:28px;margin:6px 0}.win-score,.win-streak{color:var(--ink-soft);font-size:15px;margin:4px 0}.win-actions{display:grid;gap:8px;margin-top:12px;padding-bottom:2px}.toggle{display:flex;gap:8px;align-items:center;color:var(--ink);font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;background:#fff;border:3px solid var(--ink);border-radius:999px;padding:4px 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:3px solid var(--ink);border-radius:20px;padding:16px 20px;font-family:var(--display);font-size:22px;font-weight:800;text-align:center;box-shadow:0 8px 0 var(--ink);color: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:4px;gap:8px}.page{padding:6px 12px 24px}.lobby{padding:12px 12px 24px}.lobby-hero h1{font-size:clamp(26px,9vw,36px)}.logo-mark{width:56px;height:56px}.player-name{font-size:18px}.player-links{gap:6px}.player-links .btn{font-size:12px;padding:8px 4px}.clock{font-size:clamp(48px,16vw,80px)}.step-name{font-size:clamp(18px,6vw,26px)}.controls{gap:6px}.controls .btn{padding:10px 6px;font-size:13px}.controls.game .didit{font-size:18px;padding:12px 8px}.shop-tabs{gap:6px}.tab{padding:6px 10px;font-size:12px}.pet-actions{gap:6px}.btn{font-size:14px;padding:8px 10px}h1{font-size:clamp(20px,6vw,28px)}}.empty-emoji{font-size:64px}.pet-stage{position:relative;height:150px;border-radius:22px;background:#7be0a0 url(/sprites/yard-bg.png) center bottom / cover no-repeat;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-name{width:100%;font-size:22px;font-weight:800;text-align:center;border:1px solid var(--line);border-radius:12px;padding:8px;color:var(--ink)}.pet-mood{text-align:center;font-weight:800;margin:8px 0;color:var(--ink-soft)}.pet-actions .btn{padding:10px 6px;margin:0;width:100%;font-size:14px}.picker-card{background:#fff;border:3px solid var(--ink);border-radius:22px;padding:16px 14px 18px;width:min(480px,100%);max-height:min(70dvh,560px);overflow-x:hidden;overflow-y:auto;box-shadow:0 8px 0 var(--ink)}.picker-card h3{margin:0 0 16px}.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:10px 14px;font-weight:800;z-index:50;opacity:0;pointer-events:none;box-shadow:0 6px 0 var(--ink);max-width:min(360px,90vw);text-align:center}.log-list{display:flex;flex-direction:column;gap:12px}.log-card{padding:14px}.log-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap;margin-bottom:10px}.log-head h2{margin:0 0 2px;text-transform:none;letter-spacing:0;font-size:16px;color:var(--ink)}.log-when{margin:0;font-size:13px}.log-summary{display:flex;flex-wrap:wrap;gap:8px;font-weight:800;font-size:13px;color:var(--ink-soft)}.log-status{background:var(--sun);color:var(--ink);border:2px solid var(--ink);border-radius:999px;padding:2px 8px}.log-missions{display:grid;gap:6px}.log-mission{display:grid;grid-template-columns:28px 1fr auto auto;gap:8px;align-items:center;background:#fff8ec;border:2px solid #ffb3d0;border-radius:12px;padding:8px 10px;font-weight:800;font-size:14px}.log-emoji{font-size:20px;text-align:center}.log-title{overflow-wrap:anywhere}.log-time{font-variant-numeric:tabular-nums;color:var(--ink-soft)}.log-time.fast{color:#15803d}.log-reason{font-size:12px;color:var(--ink-soft)}@media(max-width:640px){.log-mission{grid-template-columns:28px 1fr auto}.log-reason{grid-column:2 / -1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.player-play{width:100%;color:var(--ink);background:var(--ok);border:3px solid var(--ink);box-shadow:0 4px 0 var(--ink);font-weight:800;letter-spacing:0;text-transform:none}.player-links{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.player-links .btn{padding:8px 6px;font-size:13px;min-height:40px}.player-links .btn[data-log]{grid-column:1 / -1}.sky.thin{height:72px}.page>h1,.page>p,.page>.topbar,.page>.shop-tabs{z-index:2}.shop-page>.didit,.yard-page>.didit,.yard-page>.btn{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}.yard-menus{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 12px;position:relative;z-index:8}.yard-menu{background:#fff;border:3px solid var(--ink);border-radius:16px;box-shadow:0 4px 0 var(--ink);position:relative}.yard-menu summary{list-style:none;cursor:pointer;padding:10px;font-weight:800;font-size:14px;display:flex;justify-content:space-between;align-items:center;gap:6px;color:var(--ink)}.yard-menu summary::-webkit-details-marker{display:none}.yard-menu summary:after{content:"▾";font-size:12px}.yard-menu[open]{z-index:9}.yard-count{font-size:11px;font-weight:800;color:var(--ink-soft);margin-left:auto}.yard-menu-list{position:absolute;left:0;right:0;top:calc(100% + 6px);min-width:min(280px,86vw);background:#fff;border:3px solid var(--ink);border-radius:14px;padding:8px;box-shadow:0 6px 0 var(--ink);max-height:min(50dvh,360px);overflow:auto;z-index:10}.yard-menu[data-menu=toy] .yard-menu-list,.yard-menu[data-menu=house] .yard-menu-list{left:auto;right:0}.yard-opt{display:grid;grid-template-columns:1fr minmax(7.5rem,auto);gap:8px;align-items:center;padding:6px 4px;font-weight:800;font-size:14px;color:var(--ink)}.yard-opt+.yard-opt{border-top:2px solid #ffe3f0}.yard-opt-name{min-width:0;overflow-wrap:anywhere}.yard-opt select{border:3px solid var(--ink);border-radius:10px;padding:6px 8px;font-weight:800;font-size:13px;background:#fff8ec;color:var(--ink);max-width:100%}.yard-opt-empty,.yard-empty-note{margin:4px;font-size:13px;font-weight:800;color:var(--ink-soft)}@media(max-width:640px){.yard-menus{gap:6px}.yard-menu summary{padding:8px;font-size:13px}.yard-count{display:none}}.shop-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 12px}.tab{border:3px solid var(--ink);background:#fff;border-radius:999px;padding:6px 12px;font-weight:800;letter-spacing:0;text-transform:none;font-size:13px;color:var(--ink);box-shadow:0 3px 0 var(--ink)}.tab.on{background:var(--sun);color:var(--ink)}.shop-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px}.shop-card{background:#fff;border:3px solid var(--ink);border-radius:18px;padding:12px 12px 10px;box-shadow:0 5px 0 var(--ink);display:flex;flex-direction:column;gap:4px}.shop-emoji{font-size:48px;text-align:center}.shop-card h3{margin:0;font-size:16px;font-family:var(--display);font-weight:700;letter-spacing:.04em}.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:#ffe566;border:2px solid #ff7a5a;font-size:12px;font-weight:800;color:#4a2a78;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:20px;padding:20px 14px;text-align:center;box-shadow:0 6px 0 var(--ink)}.empty-emoji{font-size:56px}.pet-card{background:#fff;border:3px solid var(--ink);border-radius:20px;padding:12px;box-shadow:0 6px 0 var(--ink)}.pet-stage{position:relative;height:188px;border-radius:16px;background:#7be0a0 url(/sprites/yard-bg.png) center bottom / cover no-repeat;image-rendering:auto;border:3px solid var(--ink);overflow:hidden;margin-bottom:10px;cursor:pointer;box-shadow:inset 0 -12px #22a05a2e}.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:auto;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,bottom,transform;transform-origin:center bottom;transition:transform .34s ease}.px-actor.acting,.px-actor.in-wheel{transition:none}.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:none;filter:brightness(.88);transition:transform .45s ease,filter .45s ease}.px-actor.tucked .px-pet:after{animation:none;opacity:0}.px-pet{position:absolute;left:0;bottom:0;width:96px;height:96px;background-repeat:no-repeat;background-size:192px 96px;background-position:0 0;image-rendering:auto;animation:ue-breathe 2.6s ease-in-out infinite;filter:drop-shadow(0 6px 8px rgba(0,0,0,.35));transition:opacity .22s ease,filter .25s ease}.px-pet:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:inherit;background-repeat:no-repeat;background-size:192px 96px;background-position:-192px 0;opacity:0;animation:ue-blend 3.2s ease-in-out infinite;pointer-events:none}.px-pet.sheet-swap{opacity:.55}.mood-happy .px-pet{animation-duration:2.1s}.mood-hungry .px-pet{animation-duration:3.4s;filter:saturate(.75) brightness(.92) drop-shadow(0 6px 8px rgba(0,0,0,.35))}.mood-bored .px-pet{animation-duration:3.6s}@keyframes ue-breathe{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.03)}}@keyframes ue-blend{0%,to{opacity:0}48%,52%{opacity:1}}@keyframes ue-walk{0%,to{transform:translateY(0) rotate(0)}30%{transform:translateY(-5px) rotate(-2.4deg)}70%{transform:translateY(-2px) rotate(2.2deg)}}.px-yard-toy{position:absolute;left:18px;bottom:10px;width:42px;height:42px;object-fit:contain;image-rendering:auto;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))}.yard-toy-wrap img{width:100%;height:100%;object-fit:contain;pointer-events:none;display:block}.toy-stow{position:absolute;top:-10px;right:-10px;z-index:9;width:26px;height:26px;padding:0;border:3px solid var(--ink);border-radius:50%;background:#ff6b9d;color:#fff;font-size:13px;font-weight:800;line-height:20px;text-align:center;cursor:pointer;box-shadow:0 3px 0 var(--ink)}.prop-wheel .toy-stow{top:4px;right:4px}.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:ue-walk .72s ease-in-out infinite}.walking .px-pet:after{animation-duration:1.15s}.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:auto;animation:nibble .55s 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:wheel-run .28s 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:fetch-run 1.15s ease-in-out infinite}[data-prop=toy-tennis].is-playing{z-index:4;animation:tennis-fetch 1.15s 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: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: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:ue-breathe 1.4s ease-in-out infinite}@keyframes swing-perch{0%,to{transform:rotate(-16deg)}50%{transform:rotate(16deg)}}.play-toy-teddy .px-pet{animation:nuzzle .85s 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:hop-watch .7s 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: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: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: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: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,[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:hop-watch .7s 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:auto;object-fit:contain}.shop-sprite{width:72px;height:72px;display:block;margin:0 auto}.shop-pet-idle{position:relative;overflow:hidden;width:72px;height:72px;margin:0 auto;background-size:144px 72px;background-repeat:no-repeat;background-position:0 0;image-rendering:auto;animation:ue-breathe 2.8s ease-in-out infinite}.shop-pet-idle:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:inherit;background-repeat:no-repeat;background-size:144px 72px;background-position:-144px 0;opacity:0;animation:ue-blend 3s ease-in-out infinite;pointer-events:none}.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:3px 10px 3px 3px;font-weight:800;color:var(--ink);box-shadow:0 3px 0 var(--ink);font-size:13px}.pet-chip.on{background:var(--sun);color:var(--ink)}.chip-face{width:36px;height:36px;flex:0 0 36px;border-radius:50%;background-color:#fff3c4;background-size:72px 36px;background-repeat:no-repeat;background-position:0 0;image-rendering:auto;animation:ue-breathe 2.6s ease-in-out infinite;border:2px solid var(--ink);position:relative;overflow:hidden}.chip-face:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:inherit;background-repeat:no-repeat;background-size:72px 36px;background-position:-72px 0;opacity:0;animation:ue-blend 2.8s ease-in-out infinite;pointer-events:none}.pet-name{width:100%;font-family:var(--display);font-size:18px;font-weight:800;letter-spacing:0;text-align:center;border:3px solid var(--ink);border-radius:12px;padding:6px;color:var(--ink);background:#fff8ec;box-shadow:none}.pet-mood{text-align:center;font-weight:500;letter-spacing:.04em;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:14px;background:#efe6ff;border:3px solid var(--ink);border-radius:99px;overflow:hidden;box-shadow:none}.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:8px;padding-bottom:2px}.pet-actions .btn{padding:10px 6px;width:100%;margin:0;font-size:14px}.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:3px solid var(--ink);border-radius:22px;padding:16px 14px 18px;width:min(480px,100%);max-height:min(70dvh,560px);overflow-x:hidden;overflow-y:auto;box-shadow:0 8px 0 var(--ink);-webkit-backdrop-filter:none;backdrop-filter:none}.picker-card h3{margin:0 0 16px;font-family:var(--display);letter-spacing:.06em}.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:10px 14px;font-weight:800;z-index:45;opacity:0;pointer-events:none;box-shadow:0 6px 0 var(--ink);max-width:min(360px,90vw);text-align:center}.toast.show{animation:pop 1.7s ease-out}
