:root{--bg: #171b26;--card: #1f2534;--line: #2c3446;--text: #f0f3fa;--muted: #a8b2c8;--accent: #ffc46b;--green: #57d98a;--sceneH: 54vh}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;min-height:100vh}#app{max-width:560px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}.loading{padding:40px 20px;text-align:center;color:var(--muted)}.scene-wrap{position:relative;height:var(--sceneH);min-height:380px;overflow:hidden;border-radius:0 0 24px 24px;flex:none}.scene-wrap .scene{position:absolute;inset:0;width:100%;height:100%}.scene.pop .sway{animation:pop .5s ease}.chip-bar{position:absolute;top:14px;left:14px;right:14px;display:flex;justify-content:space-between;align-items:center;gap:8px}.chip{background:#0c0f18b8;backdrop-filter:blur(4px);border-radius:999px;padding:7px 14px;font-size:14px;font-weight:600;border:1px solid rgba(255,255,255,.14)}.chip .fire{color:#ff9e6b}.feed-btn{position:absolute;bottom:14px;left:50%;transform:translate(-50%);background:var(--accent);color:#241a06;border:none;border-radius:999px;padding:12px 26px;font-size:16px;font-weight:700;cursor:pointer;box-shadow:0 6px 18px #00000059}.feed-btn:active{transform:translate(-50%) scale(.94)}.feed-btn:disabled{opacity:.55}.content{padding:16px 16px 32px;display:flex;flex-direction:column;gap:10px}.h2{font-size:15px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:4px 2px 0}.habit{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;cursor:pointer;transition:border-color .15s}.habit:active{border-color:var(--accent)}.habit.done{opacity:.62}.habit.done .h-title{text-decoration:line-through}.tick{width:34px;height:34px;border-radius:12px;flex:none;border:2px solid var(--line);display:grid;place-items:center;font-size:18px;color:transparent;transition:.15s}.habit.done .tick{background:var(--green);border-color:var(--green);color:#0c2b18}.h-title{font-size:16px;font-weight:600}.h-note{font-size:12.5px;color:var(--muted);margin-top:2px}.add-row{display:flex;gap:8px}.add-row input{flex:1;background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:14px;padding:13px 14px;font-size:15px;outline:none}.add-row input:focus{border-color:var(--accent)}.add-row button{background:var(--card);color:var(--accent);border:1px solid var(--accent);border-radius:14px;padding:0 18px;font-size:15px;font-weight:700;cursor:pointer}.paywall-note{background:#ffc46b14;border:1px dashed var(--accent);border-radius:14px;padding:12px 14px;font-size:13.5px;color:var(--accent)}.onb{padding:22px 18px 40px;display:flex;flex-direction:column;gap:18px}.onb h1{font-size:22px;margin:6px 0 0}.onb .lead{color:var(--muted);font-size:14.5px;line-height:1.5;margin:-10px 0 0}.onb h3{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:0}.onb input[type=text]{background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:14px;padding:13px 14px;font-size:16px;outline:none;width:100%}.opts{display:grid;grid-template-columns:1fr 1fr;gap:8px}.opts.three{grid-template-columns:1fr 1fr 1fr}.opt{background:var(--card);border:2px solid var(--line);border-radius:16px;padding:12px 8px;text-align:center;cursor:pointer;font-size:14px;font-weight:600}.opt svg{width:64px;height:64px;display:block;margin:0 auto 4px}.opt.on{border-color:var(--accent);background:#ffc46b1a}.cta{background:var(--accent);color:#241a06;border:none;border-radius:999px;padding:15px;font-size:16.5px;font-weight:700;cursor:pointer;margin-top:6px}.cta:disabled{opacity:.5}.err{color:#ff9e6b;font-size:13.5px}.chat{position:fixed;inset:0;z-index:50;background:var(--bg);display:flex;flex-direction:column;max-width:560px;margin:0 auto}.chat-head{padding:14px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;flex:none}.chat-close{width:34px;height:34px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--text);font-size:16px;cursor:pointer;flex:none}.chat-title{font-weight:700;font-size:16px}.chat-msgs{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px}.msg{max-width:82%;border-radius:18px;padding:10px 14px;font-size:15px;line-height:1.45;white-space:pre-wrap;word-break:break-word}.msg.cat{background:var(--card);border:1px solid var(--line);align-self:flex-start;border-bottom-left-radius:6px}.msg.me{background:#3f4c6e;align-self:flex-end;border-bottom-right-radius:6px}.msg .canned{display:block;margin-top:6px;font-size:11.5px;color:var(--muted)}.msg.typing span{display:inline-block;width:6px;height:6px;margin:0 1.5px;border-radius:50%;background:var(--muted);animation:blink 1.2s infinite}.msg.typing span:nth-child(2){animation-delay:.2s}.msg.typing span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,to{opacity:.25}50%{opacity:1}}.chat-note{padding:0 16px 6px;font-size:12px;color:var(--muted)}.chat-input-row{display:flex;gap:8px;padding:10px 12px calc(12px + env(safe-area-inset-bottom));flex:none;border-top:1px solid var(--line)}.chat-input-row input{flex:1;background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:999px;padding:12px 16px;font-size:15px;outline:none}.chat-input-row input:focus{border-color:var(--accent)}.chat-input-row button{width:46px;height:46px;border-radius:50%;border:none;background:var(--accent);color:#241a06;font-size:18px;font-weight:700;cursor:pointer;flex:none}.chat-limit{margin:10px 16px;padding:10px 14px;border-radius:14px;font-size:13px;background:#ffc46b14;border:1px dashed var(--accent);color:var(--accent)}@keyframes twinkle{0%,to{opacity:.15}50%{opacity:1}}@keyframes fall{0%{transform:translateY(-40px) rotate(0)}to{transform:translateY(360px) rotate(420deg)}}@keyframes sway{0%,to{transform:rotate(-5deg)}50%{transform:rotate(7deg)}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes glow{0%,to{opacity:.5}50%{opacity:.95}}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes drift{0%{transform:translate(0)}to{transform:translate(560px)}}@keyframes petpulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.tw{animation:twinkle 2.8s ease-in-out infinite}.fall{animation:fall linear infinite}.sway{animation:sway 3.4s ease-in-out infinite;transform-box:fill-box;transform-origin:88% 92%}.floaty{animation:floaty 3s ease-in-out infinite}.glow{animation:glow 3.2s ease-in-out infinite}.drift{animation:drift linear infinite}.chip-btn{cursor:pointer;border:1px solid rgba(255,255,255,.14);background:#0c0f18b8;color:var(--text);font-size:14px}.scene-toggle{position:absolute;top:60px;left:14px;display:flex;gap:4px;background:#0c0f18b8;border-radius:999px;padding:4px;backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.14)}.scene-toggle button{border:none;background:transparent;color:var(--muted);font-size:16px;border-radius:999px;width:36px;height:30px;cursor:pointer}.scene-toggle button.on{background:var(--accent)}.pet-zone{position:absolute;left:26%;width:48%;top:42%;height:44%;cursor:pointer;-webkit-tap-highlight-color:transparent}.scene.petted{animation:petpulse .6s ease}.heart{position:fixed;bottom:34vh;z-index:60;font-size:18px;color:#ff9ec4;animation:heartup 1.4s ease-out forwards;pointer-events:none}@keyframes heartup{0%{opacity:0;transform:translateY(0) scale(.6)}20%{opacity:1}to{opacity:0;transform:translateY(-120px) scale(1.2)}}.splash{position:fixed;inset:0;z-index:80;display:grid;place-items:center;background:#0a0c148c;backdrop-filter:blur(3px);animation:fadein .25s ease;pointer-events:none}.splash.out{opacity:0;transition:opacity .5s ease}.splash-card{text-align:center;padding:28px 34px;background:var(--card);border:1px solid var(--line);border-radius:24px}.splash-big{font-size:24px;font-weight:800}.splash-sub{margin-top:8px;color:var(--muted);font-size:14.5px}@keyframes fadein{0%{opacity:0}}.confetti{position:fixed;top:-12px;z-index:90;width:8px;height:14px;border-radius:3px;animation:conffall linear forwards;pointer-events:none}@keyframes conffall{to{transform:translateY(105vh) rotate(540deg);opacity:.9}}.cat-bubble{position:fixed;left:50%;bottom:40vh;transform:translate(-50%);z-index:70;background:#0c0f18e0;color:var(--text);border:1px solid rgba(255,255,255,.16);padding:10px 16px;border-radius:18px 18px 18px 6px;font-size:14.5px;max-width:78vw;text-align:center;animation:fadein .25s ease;pointer-events:none}.cat-bubble.out{opacity:0;transition:opacity .5s ease}.h-edit{margin-left:auto;flex:none;width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:15px;cursor:pointer}.habit.editing{gap:6px}.habit.editing .h-title,.habit.editing .tick{display:none}.h-edit-input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font-size:15.5px;border-bottom:1px dashed var(--line);padding:4px 2px;min-width:0}.h-edit.save{color:var(--green);border-color:#57d98a66}.h-edit.del{color:#ff8a8a;border-color:#ff8a8a59}.share-modal{position:fixed;inset:0;z-index:85;display:grid;place-items:center;background:#0a0c14b8;backdrop-filter:blur(4px);padding:20px}.share-card{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:16px;max-width:340px;width:100%;animation:fadein .25s ease}.share-card img{width:100%;border-radius:16px;display:block}.share-actions{display:flex;flex-direction:column;gap:8px;margin-top:12px}.cta.ghost{background:transparent;color:var(--muted);border:1px solid var(--line)}
