:root{--bg:#fdf6ef;--bg-glow:#ffe8d2;--surface:#fff;--text:#2f2621;--muted:#9a8878;--border:#efe2d4;--accent:#e07a43;--accent-soft:#fbe6d8;--shadow:0 1px 2px #462d190f, 0 12px 32px #462d1914;--fur:#f2a65a;--fur-shade:#e08a3c;--ear-inner:#f7c6b0;--ink:#3d2b1d;--nose:#e8927c;--blush:#f4a58c;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#191410;--bg-glow:#2a1f16;--surface:#241d17;--text:#f2e8dd;--muted:#9b8877;--border:#362b22;--accent:#f0975f;--accent-soft:#3a2a1e;--shadow:0 1px 2px #0000004d, 0 12px 32px #00000059;--fur:#e09850;--fur-shade:#c47c37;--ear-inner:#b8836e;--ink:#2a1d13;--nose:#d97f6a;--blush:#c9765f}}*{box-sizing:border-box}body{background:var(--bg);background-image:radial-gradient(ellipse 70% 45% at 50% 0%, var(--bg-glow), transparent 70%);min-height:100dvh;color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:ui-rounded,SF Pro Rounded,Segoe UI,system-ui,sans-serif}.app{max-width:30rem;margin:0 auto;padding:2rem 1.25rem 4rem}.app__header{justify-content:center;display:flex}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:1.125rem;padding:.5rem}.card__footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;margin-top:.25rem;padding:.75rem .875rem .5rem;display:flex}.card__count{color:var(--muted);font-size:.8125rem}.card__clear{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:.5rem;padding:.25rem .5rem;font-size:.8125rem}.card__clear:hover{color:var(--accent);background:var(--accent-soft)}.reaction{flex-direction:column;align-items:center;display:flex}.reaction__stage{place-items:center;display:grid;position:relative}.cat{width:clamp(9rem,38vw,12rem);height:auto;overflow:visible}.cat__body,.cat__face,.cat__ear{fill:var(--fur)}.cat__paw{fill:var(--fur-shade)}.cat__ear-inner{fill:var(--ear-inner)}.cat__tail{stroke:var(--fur-shade)}.cat__eye{fill:var(--ink)}.cat__glint{fill:#fff;opacity:.9}.cat__eyes--happy path,.cat__mouth path{fill:none;stroke:var(--ink);stroke-width:4.5px;stroke-linecap:round}.cat__nose{fill:var(--nose)}.cat__whiskers path{stroke:var(--fur-shade);stroke-width:2.5px;stroke-linecap:round;opacity:.75}.cat__blush{fill:var(--blush);opacity:0;transition:opacity .22s}.cat:not(.cat--idle) .cat__blush{opacity:.45}.cat__tail,.cat__ear,.cat__eyes,.cat__head,.cat__all{transform-box:fill-box}.cat__tail{transform-origin:8% 92%;animation:3.6s ease-in-out infinite tail-sway}.cat__eyes--open{transform-origin:50%;animation:4.8s ease-in-out infinite blink}.cat:not(.cat--idle) .cat__all{transform-origin:bottom;animation:.72s cubic-bezier(.34,1.4,.64,1) hop}.cat:not(.cat--idle) .cat__head{transform-origin:bottom;animation:.9s ease-in-out head-tilt}.cat:not(.cat--idle) .cat__tail{animation:.26s ease-in-out 5 tail-wag}.cat:not(.cat--idle) .cat__ear--l{transform-origin:90% 100%;animation:.7s ease-out ear-perk-l}.cat:not(.cat--idle) .cat__ear--r{transform-origin:10% 100%;animation:.7s ease-out ear-perk-r}.cat--ecstatic .cat__all{animation-duration:.9s;animation-iteration-count:2}.cat--ecstatic .cat__tail{animation:.16s ease-in-out 10 tail-wag}@keyframes tail-sway{0%,to{transform:rotate(-5deg)}50%{transform:rotate(7deg)}}@keyframes tail-wag{0%,to{transform:rotate(-16deg)}50%{transform:rotate(20deg)}}@keyframes blink{0%,90%,to{transform:scaleY(1)}94%{transform:scaleY(.08)}}@keyframes hop{0%{transform:translateY(0)scale(1)}20%{transform:translateY(0)scale(1.06,.94)}50%{transform:translateY(-16px)scale(.97,1.04)}80%{transform:translateY(0)scale(1.04,.96)}to{transform:translateY(0)scale(1)}}@keyframes head-tilt{0%,to{transform:rotate(0)}35%{transform:rotate(-7deg)}70%{transform:rotate(4deg)}}@keyframes ear-perk-l{0%,to{transform:rotate(0)}40%{transform:rotate(-12deg)translateY(-3px)}}@keyframes ear-perk-r{0%,to{transform:rotate(0)}40%{transform:rotate(12deg)translateY(-3px)}}.reaction__particle{--x:calc((var(--i) - 2.5) * 2.6rem - 50%);z-index:2;pointer-events:none;opacity:0;animation:1.3s ease-out forwards particle-float;animation-delay:calc(var(--i) * 80ms);font-size:1.25rem;position:absolute;bottom:42%;left:50%}@keyframes particle-float{0%{opacity:0;transform:translate(var(--x), .75rem) scale(.4) rotate(0deg)}20%{opacity:1}to{opacity:0;transform:translate(var(--x), -5.5rem) scale(1.15) rotate(22deg)}}.reaction__praise{text-align:center;min-height:2.75rem;color:var(--accent);background:var(--accent-soft);opacity:0;border-radius:999px;place-items:center;margin:.25rem 0 1.5rem;padding:.5rem 1rem;font-size:1rem;font-weight:600;transition:opacity .2s,transform .26s cubic-bezier(.34,1.5,.64,1);display:grid;transform:translateY(6px)scale(.94)}.reaction__praise.is-visible{opacity:1;transform:translateY(0)scale(1)}.input-row{gap:.5rem;padding:.5rem;display:flex}.input-row__field{border:1px solid var(--border);background:var(--bg);min-width:0;color:var(--text);font:inherit;border-radius:.75rem;flex:1;padding:.6875rem .875rem;font-size:.9375rem}.input-row__field::placeholder{color:var(--muted)}.input-row__field:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:#0000}.input-row__add{background:var(--accent);color:#fff;font:inherit;cursor:pointer;border:0;border-radius:.75rem;padding:.6875rem 1.125rem;font-size:.9375rem;font-weight:600;transition:opacity .15s,transform .12s}.input-row__add:hover:not(:disabled){transform:translateY(-1px)}.input-row__add:disabled{opacity:.4;cursor:default}.empty{text-align:center;color:var(--muted);margin:0;padding:1.75rem 1.25rem 2rem;font-size:.9375rem;line-height:1.5}.todo-list{margin:0;padding:0;list-style:none}.todo{border-radius:.75rem;align-items:center;gap:.5rem;padding:.125rem .5rem .125rem 0;display:flex}.todo:hover{background:var(--bg)}.todo__label{cursor:pointer;flex:1;align-items:center;gap:.75rem;min-width:0;padding:.625rem .75rem;display:flex}.todo__checkbox{opacity:0;width:0;height:0;position:absolute}.todo__box{border:2px solid var(--border);border-radius:.5rem;flex:none;place-items:center;width:1.375rem;height:1.375rem;transition:background .16s,border-color .16s;display:grid}.todo__checkbox:focus-visible+.todo__box{outline:2px solid var(--accent);outline-offset:2px}.todo__checkbox:checked+.todo__box{background:var(--accent);border-color:var(--accent)}.todo__tick{fill:none;stroke:#fff;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:18;stroke-dashoffset:18px;width:.875rem;height:.875rem}.todo__checkbox:checked+.todo__box .todo__tick{stroke-dashoffset:0;transition:stroke-dashoffset .24s 60ms}.todo__text{overflow-wrap:anywhere;font-size:.9375rem;line-height:1.4;transition:color .2s,opacity .2s}.todo--done .todo__text{color:var(--muted);opacity:.7;text-decoration:line-through;-webkit-text-decoration-color:var(--muted);text-decoration-color:var(--muted)}.todo__remove{width:1.75rem;height:1.75rem;color:var(--muted);cursor:pointer;opacity:0;background:0 0;border:0;border-radius:.5rem;flex:none;place-items:center;padding:0;transition:opacity .15s;display:grid}.todo__remove svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;width:.75rem;height:.75rem}.todo:hover .todo__remove,.todo__remove:focus-visible{opacity:1}.todo__remove:hover{color:var(--accent);background:var(--accent-soft)}.account{justify-content:space-between;align-items:center;gap:.75rem;padding:0 .25rem .5rem;font-size:.8125rem;display:flex}.account__hint{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:.4375rem;display:inline-flex;overflow:hidden}.account__dot{background:#4ca97a;border-radius:50%;flex:none;width:.4375rem;height:.4375rem}.account__action{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;border-radius:.5rem;flex:none;padding:.25rem .5rem;font-size:.8125rem;font-weight:600}.account__action:hover{background:var(--accent-soft)}.banner{border-radius:.75rem;margin:0 0 .75rem;padding:.625rem .875rem;font-size:.8125rem;line-height:1.45}.banner--error{color:#b3452b;background:#fbe1d8;border:1px solid #f3c7b8}@media (prefers-color-scheme:dark){.banner--error{color:#f6b6a0;background:#3a201a;border-color:#563026}}.import{border:1px solid var(--border);background:var(--accent-soft);border-radius:.875rem;margin-bottom:.75rem;padding:.875rem}.import__text{margin:0 0 .625rem;font-size:.875rem;line-height:1.45}.import__error{color:#b3452b;margin:0 0 .625rem;font-size:.8125rem}.import__actions{gap:.5rem;display:flex}.import__accept,.import__dismiss{font:inherit;cursor:pointer;border-radius:.625rem;padding:.4375rem .875rem;font-size:.8125rem;font-weight:600}.import__accept{background:var(--accent);color:#fff;border:0}.import__dismiss{border:1px solid var(--border);background:var(--surface);color:var(--muted)}.import__accept:disabled,.import__dismiss:disabled{opacity:.5;cursor:default}.auth{border:1px solid var(--border);background:var(--surface);width:min(22rem,100vw - 2rem);color:var(--text);box-shadow:var(--shadow);border-radius:1.125rem;padding:0}.auth::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#28190f59}.auth__form{flex-direction:column;padding:1.5rem 1.25rem 1.25rem;display:flex;position:relative}.auth__title{margin:0;font-size:1.125rem}.auth__sub{color:var(--muted);margin:.25rem 0 1.125rem;font-size:.8125rem;line-height:1.45}.auth__google{border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit;cursor:pointer;border-radius:.75rem;justify-content:center;align-items:center;gap:.625rem;padding:.6875rem;font-size:.9375rem;font-weight:600;display:flex}.auth__google svg{width:1.0625rem;height:1.0625rem}.auth__google:hover:not(:disabled){border-color:var(--accent)}.auth__divider{color:var(--muted);align-items:center;gap:.75rem;margin:1rem 0;font-size:.75rem;display:flex}.auth__divider:before,.auth__divider:after{content:"";background:var(--border);flex:1;height:1px}.auth__label{color:var(--muted);margin-bottom:.3125rem;font-size:.75rem;font-weight:600}.auth__field{border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit;border-radius:.75rem;margin-bottom:.875rem;padding:.625rem .75rem;font-size:.9375rem}.auth__field:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:#0000}.auth__error,.auth__notice{margin:0 0 .75rem;font-size:.8125rem;line-height:1.45}.auth__error{color:#b3452b}.auth__notice{color:var(--accent)}@media (prefers-color-scheme:dark){.auth__error{color:#f6b6a0}}.auth__submit{background:var(--accent);color:#fff;font:inherit;cursor:pointer;border:0;border-radius:.75rem;padding:.6875rem;font-size:.9375rem;font-weight:600}.auth__submit:disabled{opacity:.5;cursor:default}.auth__swap{text-align:center;color:var(--muted);margin:.875rem 0 0;font-size:.8125rem}.auth__swap button{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-size:.8125rem;font-weight:600}.auth__close{width:1.75rem;height:1.75rem;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:.5rem;place-items:center;padding:0;display:grid;position:absolute;top:.75rem;right:.75rem}.auth__close svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;width:.75rem;height:.75rem}.auth__close:hover{color:var(--accent);background:var(--accent-soft)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reaction__praise{transform:none;transition:opacity .2s!important}.reaction__particle{display:none}}
