:root{--bone:#f3eee4;--surface:#fbf8f2;--raised:#fff;--border:#e4dac9;--ink:#2a241c;--muted:#6b6153;--accent:#8a5622;--accent-grad:linear-gradient(135deg,#8a5622,#b67e3f 48%,#e0b074);--on-accent:#fbf8f2;--track:#ebe3d4;--display:"Fraunces",Georgia,serif;--body:"Inter",system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bone);color:var(--ink);-webkit-font-smoothing:antialiased;min-height:100dvh}body,button,input{font-family:var(--body)}.wrap{max-width:560px;margin:0 auto;padding:0 20px}.brandmark{width:26px;height:26px;border-radius:7px;background:var(--accent-grad);display:inline-block;flex-shrink:0}.display{font-family:var(--display);letter-spacing:-.01em}.card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:20px}.filltrack{height:16px;border-radius:999px;background:var(--track);overflow:hidden;box-shadow:inset 0 1px 2px rgba(0,0,0,.16)}.fillbar{height:100%;border-radius:999px;transition:width 1s cubic-bezier(.22,.61,.36,1)}.btn,.fillbar{background:var(--accent-grad)}.btn{color:var(--on-accent);border:none;border-radius:12px;padding:13px 18px;font-weight:600;font-size:15px;cursor:pointer}.btn:disabled{opacity:.6;cursor:default}.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--border);border-radius:10px;padding:8px 12px;font-weight:600;font-size:13px;cursor:pointer}.field{width:100%;padding:13px 15px;border-radius:12px;border:1px solid var(--border);background:var(--raised);color:var(--ink);outline:none}.field,input,select,textarea{font-size:16px}.field:focus{border-color:var(--accent)}.habit{display:flex;align-items:center;gap:14px;background:var(--raised);border:1px solid var(--border);border-radius:14px;padding:12px 14px}.check{width:30px;height:30px;border-radius:999px;flex-shrink:0;display:grid;place-items:center;cursor:pointer;border:2px solid var(--border);background:transparent;padding:0}.check.on{background:var(--accent-grad);border:none}@media (prefers-reduced-motion:reduce){.fillbar{transition:none}}@keyframes hv-pop{0%{transform:translateY(4px) scale(.9);opacity:0}15%{transform:translateY(0) scale(1);opacity:1}80%{opacity:1}to{transform:translateY(-6px);opacity:0}}@media (prefers-reduced-motion:reduce){[style*=hv-pop]{animation:none!important}}