:root{--fb-bg:#fffaf2;--fb-card:#f6eee2;--fb-text:#2b2420;--fb-hint:#8f857a;--fb-accent:#ff9f45;--fb-accent-text:#fff;--bg:var(--tg-theme-bg-color,var(--fb-bg));--card:var(--tg-theme-secondary-bg-color,var(--fb-card));--text:var(--tg-theme-text-color,var(--fb-text));--hint:var(--tg-theme-hint-color,var(--fb-hint));--accent:var(--tg-theme-button-color,var(--fb-accent));--accent-text:var(--tg-theme-button-text-color,var(--fb-accent-text));--danger:var(--tg-theme-destructive-text-color,#e5484d);--good:#4cc38a;--mid:#f5b83d;--radius:16px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--fb-bg:#1b1916;--fb-card:#29251f;--fb-text:#f3ede4;--fb-hint:#a39889}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--text);overscroll-behavior:none;margin:0;font:15px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,system-ui,sans-serif}.app{max-width:480px;padding:16px 16px calc(24px + env(safe-area-inset-bottom));min-height:100vh;margin:0 auto}h1{margin:0;font-size:24px}h2,h3{margin:0 0 8px}h3{font-size:15px}.hint{color:var(--hint);font-size:13px}.error{color:var(--danger)}.center{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:70vh;display:flex}.center-row{justify-content:center;display:flex}.screen{flex-direction:column;gap:14px;display:flex}.card{background:var(--card);border-radius:var(--radius);padding:14px}.card p{margin:0 0 10px}.row{gap:8px;margin-top:10px;display:flex}.row>*{flex:1}.btn{appearance:none;background:var(--accent);color:var(--accent-text);font:inherit;cursor:pointer;border:0;border-radius:12px;padding:12px 14px;font-weight:600;transition:transform 80ms,opacity .2s}.btn:active:not(:disabled){transform:scale(.96)}.btn:disabled{opacity:.45;cursor:default}.btn.big{padding:15px;font-size:17px}.btn.ghost{color:var(--accent);background:0 0}.btn.small{font-size:13px;font-weight:500}.btn.action{flex-direction:column;align-items:center;gap:2px;padding:12px 4px;font-size:14px;display:flex}.btn.action small{opacity:.9;font-size:11px;font-weight:500}.field{flex-direction:column;gap:6px;font-weight:600;display:flex}.field input{font:inherit;background:var(--card);color:var(--text);border:2px solid #0000;border-radius:12px;outline:none;padding:12px 14px}.field input:focus{border-color:var(--accent)}.swatches{justify-content:center;gap:12px;display:flex}.swatch{cursor:pointer;border:3px solid #0000;border-radius:50%;width:36px;height:36px;transition:transform .15s}.swatch.selected{border-color:var(--text);transform:scale(1.15)}.pet-list{flex-direction:column;gap:10px;display:flex}.pet-card{text-align:left;font:inherit;color:inherit;cursor:pointer;border:0;align-items:center;gap:12px;display:flex}.pet-header{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.streak{color:#ff7a1a;font-weight:600}.xp{background:var(--card);border-radius:4px;width:96px;height:8px;margin-bottom:6px;overflow:hidden}.xp-fill{background:linear-gradient(90deg,#ffd166,#ff9f45);height:100%;transition:width .5s}.stage-area{-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;padding-top:28px;display:flex;position:relative}.tap-hint{margin:-4px 0 0}.buchi{cursor:pointer;overflow:visible}.bubble{background:var(--card);text-align:center;z-index:2;border-radius:16px;max-width:85%;padding:8px 14px;font-weight:600;animation:.25s ease-out pop;position:absolute;top:0}.bubble:after{content:"";border:6px solid #0000;border-bottom:0;border-top-color:var(--card);margin-left:-6px;position:absolute;bottom:-6px;left:50%}.floater{pointer-events:none;white-space:nowrap;z-index:3;font-size:18px;font-weight:700;animation:1.4s ease-out forwards float-up;position:absolute;top:45%}.stats{grid-template-columns:1fr 1fr;gap:10px 16px;display:grid}.stat-label{font-size:13px;font-weight:600}.bar{background:color-mix(in srgb, var(--text) 10%, transparent);border-radius:5px;flex:1;height:10px;margin-top:4px;overflow:hidden}.bar-fill{background:var(--good);border-radius:5px;height:100%;transition:width .6s}.bar-fill.mid{background:var(--mid)}.bar-fill.low{background:var(--danger)}.bar-fill.warm{background:linear-gradient(90deg,#ffb547,#ff6f3c)}.warm-row{align-items:center;gap:10px;margin:8px 0;display:flex}.warm-row>span:first-child{width:56px;font-weight:600}.warm-row .bar{margin:0}.actions{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.combo{background:color-mix(in srgb, #ffd166 25%, var(--card));border-radius:12px;padding:10px 12px;font-size:13px;animation:.25s ease-out pop}.feed ul{margin:8px 0 0;padding:0;list-style:none}.feed li{border-bottom:1px solid color-mix(in srgb, var(--text) 8%, transparent);justify-content:space-between;gap:10px;padding:7px 0;font-size:14px;display:flex}.feed li .hint{white-space:nowrap}.buddies{gap:16px;display:flex}.buddy{align-items:center;gap:8px;display:flex}.buddy img,.avatar{object-fit:cover;border-radius:50%;width:36px;height:36px}.avatar{background:var(--accent);color:var(--accent-text);place-items:center;font-weight:700;display:grid}.notice{background:color-mix(in srgb, var(--danger) 15%, var(--card));border-radius:12px;margin-bottom:12px;padding:10px 12px;font-size:14px}.buchi .bob,.buchi .squish,.buchi .shadow{transform-box:view-box;transform-origin:100px 180px}.buchi .bob{animation:2.6s ease-in-out infinite bob}.buchi.mood-sleepy .bob{animation:3.6s ease-in-out infinite breathe}.buchi.mood-sad .bob{animation:4s ease-in-out infinite bob}.buchi.stage-egg .bob{animation:3s ease-in-out infinite wobble}.buchi .squish{animation:.45s ease-out squish}.buchi .zzz text{animation:2.4s ease-in-out infinite zzz}.buchi .zzz text:nth-child(2){animation-delay:.4s}.buchi .zzz text:nth-child(3){animation-delay:.8s}.buchi .tear{animation:2.2s ease-in infinite tear}@keyframes bob{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-6px)scale(.98,1.02)}}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.03,.97)}}@keyframes wobble{0%,70%,to{transform:rotate(0)}76%{transform:rotate(-5deg)}84%{transform:rotate(5deg)}92%{transform:rotate(-2deg)}}@keyframes squish{0%{transform:scale(1)}30%{transform:scale(1.12,.86)}60%{transform:scale(.94,1.08)}to{transform:scale(1)}}@keyframes zzz{0%,to{opacity:.2;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}@keyframes tear{0%{opacity:0;transform:translateY(0)}30%{opacity:1}to{opacity:0;transform:translateY(14px)}}@keyframes float-up{0%{opacity:0;transform:translateY(0)scale(.8)}15%{opacity:1;transform:translateY(-10px)scale(1.1)}to{opacity:0;transform:translateY(-110px)scale(1)}}@keyframes pop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.buchi *,.floater,.bubble{animation:none!important}}.species-picker{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.card.species{font:inherit;color:inherit;cursor:pointer;border:2px solid #0000;flex-direction:column;align-items:center;gap:2px;padding:8px 4px 10px;font-weight:600;transition:transform .1s,border-color .2s;display:flex}.card.species.selected{border-color:var(--accent)}.card.species:active{transform:scale(.96)}.buchi .wag{transform-box:fill-box;transform-origin:0 100%;animation:.5s ease-in-out infinite alternate wag}.buchi .sway{transform-box:fill-box;transform-origin:0 100%;animation:2.4s ease-in-out infinite alternate sway}.buchi.mood-sad .wag,.buchi.mood-sleepy .wag,.buchi.mood-sleepy .sway{animation:none}@keyframes wag{0%{transform:rotate(-14deg)}to{transform:rotate(14deg)}}@keyframes sway{0%{transform:rotate(-6deg)}to{transform:rotate(8deg)}}.sheet-backdrop{z-index:20;background:#00000073;justify-content:center;align-items:flex-end;animation:.2s ease-out fade;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);width:100%;max-width:480px;max-height:90vh;padding:20px 16px calc(16px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;flex-direction:column;gap:10px;animation:.25s ease-out slide-up;display:flex;overflow-y:auto}.sheet h3{margin:0;font-size:18px}.sheet p{margin:0}.link-box{background:var(--card);color:var(--text);border:0;border-radius:10px;width:100%;padding:10px 12px;font:13px ui-monospace,Consolas,monospace}.dev-note{border:1px dashed color-mix(in srgb, var(--text) 25%, transparent);border-radius:12px;flex-direction:column;gap:6px;margin-top:6px;padding:12px;display:flex}.dev-note .btn{text-align:center;text-decoration:none}.dev-bar{background:color-mix(in srgb, #7cc6fe 18%, var(--card));border-radius:10px;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;padding:6px 10px;font-size:12px;display:flex}.dev-bar a{color:var(--accent);white-space:nowrap;font-weight:600;text-decoration:none}@keyframes fade{0%{opacity:0}}@keyframes slide-up{0%{opacity:0;transform:translateY(40px)}}.pet-touch{touch-action:none;cursor:grab;position:relative}.pet-touch:active{cursor:grabbing}.floater.small{font-size:15px;animation:.9s ease-out forwards sparkle;transform:translate(-50%,-50%)}.butterfly{pointer-events:none;z-index:1;font-size:20px;animation:.25s ease-in-out infinite alternate flutter;position:absolute;transform:translate(-50%,-50%)}.stage-tools{align-items:center;gap:10px;margin-top:-4px;display:flex}.stage-tools .tap-hint{margin:0}.food{appearance:none;background:var(--card);cursor:grab;touch-action:none;border:0;border-radius:50%;flex:none;width:46px;height:46px;font-size:26px;line-height:1;animation:3s ease-in-out infinite food-nudge}.food.off{opacity:.35;cursor:default;animation:none}.food-drag{z-index:30;pointer-events:none;font-size:40px;transition:transform .12s;position:fixed;transform:translate(-50%,-60%)scale(1)}.food-drag.near{transform:translate(-50%,-60%)scale(1.25)rotate(-12deg)}.envelope,.ball-incoming{appearance:none;cursor:pointer;z-index:4;background:0 0;border:0;padding:0;line-height:1;position:absolute}.envelope{font-size:38px;animation:1.2s ease-in-out infinite hop-note;bottom:30px;right:4px}.envelope .badge{background:var(--danger);color:#fff;border-radius:9px;min-width:18px;padding:1px 5px;font-size:11px;font-weight:700;position:absolute;top:-4px;right:-8px}.ball-incoming{font-size:40px;animation:.9s ease-in-out infinite ball-bounce;top:8%;left:14%}.buchi .idle,.buchi .eyes{transform-box:view-box;transform-origin:100px 180px}.buchi .eyes{transform-origin:100px 112px}.buchi .blink{animation:4.2s infinite blink}.buchi.idle-hop .idle{animation:.8s ease-out hop}.buchi.idle-wiggle .idle{animation:.8s ease-in-out wiggle}.buchi.idle-giggle .idle{animation:.25s ease-in-out 4 giggle}.buchi.idle-sneeze .idle{animation:.8s ease-out sneeze}@keyframes blink{0%,93%,to{transform:scaleY(1)}96%{transform:scaleY(.1)}}@keyframes hop{0%,to{transform:translateY(0)scale(1)}20%{transform:translateY(0)scale(1.08,.9)}50%{transform:translateY(-28px)scale(.95,1.06)}80%{transform:translateY(0)scale(1.06,.94)}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-7deg)}75%{transform:rotate(7deg)}}@keyframes giggle{0%,to{transform:translate(0)rotate(0)}50%{transform:translate(3px)rotate(2deg)}}@keyframes sneeze{0%,to{transform:scale(1)}40%{transform:scale(.94,1.06)translateY(-4px)}55%{transform:scale(1.12,.88)}}@keyframes sparkle{0%{opacity:0;transform:translate(-50%,-50%)scale(.5)}30%{opacity:1;transform:translate(-50%,-80%)scale(1.1)}to{opacity:0;transform:translate(-50%,-200%)scale(.9)}}@keyframes flutter{0%{transform:translate(-50%,-50%)scaleX(1)}to{transform:translate(-50%,-50%)scaleX(.6)}}@keyframes food-nudge{0%,85%,to{transform:rotate(0)}90%{transform:rotate(-10deg)}95%{transform:rotate(10deg)}}@keyframes hop-note{0%,to{transform:translateY(0)rotate(-6deg)}50%{transform:translateY(-8px)rotate(6deg)}}@keyframes ball-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-16px)}}.wish{border:2px dashed #ffd166b3}.wish.granted{background:color-mix(in srgb, #ffd166 22%, var(--card));border-style:solid}.wish-head{align-items:center;gap:12px;display:flex}.wish-head h3{margin:0 0 2px}.wish-head p{margin:0;font-size:14px}.wish-emoji{font-size:30px}.wish-who{flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}.chip{background:color-mix(in srgb, var(--text) 8%, transparent);border-radius:999px;padding:3px 10px;font-size:13px;font-weight:600}.chip.done{background:color-mix(in srgb, var(--good) 25%, transparent)}.ball-row{align-items:center;gap:12px;display:flex}.ball-icon{font-size:28px}.ball-text{flex:1;min-width:0}.ball-card.incoming{background:color-mix(in srgb, #8bd17c 25%, var(--card));animation:.25s ease-out pop}.note-actions{flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:8px;display:flex}.note-actions .btn{padding-left:0}.note-input{font:inherit;resize:none;background:var(--card);width:100%;color:var(--text);border:2px solid #0000;border-radius:12px;outline:none;padding:12px 14px}.note-input:focus{border-color:var(--accent)}.right{text-align:right;margin-top:-6px}.gift-row{flex-wrap:wrap;gap:8px;display:flex}.gift{appearance:none;background:var(--card);cursor:pointer;border:2px solid #0000;border-radius:12px;width:46px;height:46px;font-size:24px}.gift.selected{border-color:var(--accent);transform:scale(1.08)}.note-paper{background:color-mix(in srgb, #ffd166 18%, var(--card));text-align:center;border-radius:14px;padding:18px 16px;animation:.4s ease-out unfold}.note-gift{font-size:56px;line-height:1.1}.note-body{font-size:18px;font-weight:600;margin:8px 0!important}.note-from{color:var(--hint);margin:4px 0 0!important}@keyframes unfold{0%{opacity:0;transform:scaleY(.2)rotate(-4deg)}}@media (prefers-reduced-motion:reduce){.butterfly,.food,.envelope,.ball-incoming,.note-paper{animation:none!important}}
