:root{--bg:#f6f1e6;--bg-soft:#efe7d7;--surface:#fffdf7;--surface-2:#f7f0e2;--ink:#3b332a;--ink-soft:#5f5546;--muted:#8b7f6d;--line:#e3d9c6;--accent:#6f9463;--accent-soft:#dfead9;--accent-ink:#3f6b45;--warm:#d98a63;--warm-soft:#f7e2d5;--sun:#e2b95f;--sky:#cfe3ea;--sky-2:#eaf2f4;--danger:#b4665b;--shadow:0 2px 6px #53442d0f, 0 12px 28px -18px #53442d66;--shadow-sm:0 1px 3px #53442d14;--radius:22px;--radius-sm:14px;--tab-h:68px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dusk]{--bg:#f4eef4;--bg-soft:#e9e0ec;--surface:#fffbff;--surface-2:#f6eef7;--ink:#382f41;--ink-soft:#574a63;--muted:#8a7d95;--line:#e2d5e6;--accent:#8a6fa8;--accent-soft:#e8ddf0;--accent-ink:#6a5185;--warm:#c9738a;--warm-soft:#f7dde5;--sun:#e0a86a;--sky:#d9d5ee;--sky-2:#eeecf8}[data-theme=forest]{--bg:#eef1e7;--bg-soft:#e2e8d8;--surface:#fbfdf7;--surface-2:#eef2e6;--ink:#2c3527;--ink-soft:#465041;--muted:#74806c;--line:#d7dfcc;--accent:#4f7d55;--accent-soft:#dbe8d8;--accent-ink:#34613c;--warm:#b4794b;--warm-soft:#efe0cd;--sun:#cfae55;--sky:#cbdfd9;--sky-2:#e7f1ec}[data-theme=sakura]{--bg:#fbf0f1;--bg-soft:#f6e2e5;--surface:#fffafb;--surface-2:#fbeef0;--ink:#45333a;--ink-soft:#614a53;--muted:#9b8189;--line:#eed8dd;--accent:#c9748c;--accent-soft:#f8e0e6;--accent-ink:#a35270;--warm:#d98a63;--warm-soft:#f8e3d6;--sun:#e6bd72;--sky:#e5dcee;--sky-2:#f3eef8}[data-mode=dark]{--bg:#171916;--bg-soft:#1e211c;--surface:#23261f;--surface-2:#2b2f26;--ink:#ece6d8;--ink-soft:#cfc7b5;--muted:#9a9382;--line:#383c31;--accent:#85ab77;--accent-soft:#2f3a2b;--accent-ink:#a9cb9c;--warm:#dc9a76;--warm-soft:#3b2e26;--sun:#e0be72;--sky:#2c3a40;--sky-2:#232c30;--danger:#d3897d;--shadow:0 2px 6px #00000040, 0 14px 30px -20px #000c;--shadow-sm:0 1px 3px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-mode=dark][data-theme=dusk]{--bg:#191620;--bg-soft:#201b28;--surface:#262030;--surface-2:#2e2739;--line:#3d3449;--accent:#a98ac4;--accent-soft:#362c42;--accent-ink:#c4aada}[data-mode=dark][data-theme=sakura]{--bg:#1d1619;--bg-soft:#241b1f;--surface:#2a2024;--surface-2:#33272c;--line:#43333a;--accent:#d68ba1;--accent-soft:#3d2b32;--accent-ink:#e6adbe}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;font-family:Nunito,Avenir Next,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:16px;line-height:1.5}h1,h2,h3,h4{letter-spacing:-.015em;margin:0;font-weight:800;line-height:1.25}h1{font-size:1.6rem}h2{font-size:1.22rem}h3{font-size:1.02rem}p{margin:0 0 .6em}p:last-child{margin-bottom:0}button,input,select,textarea{font:inherit;color:inherit}.app{background:var(--bg);max-width:560px;min-height:100dvh;margin:0 auto;position:relative}.screen{padding:14px 16px calc(var(--tab-h) + env(safe-area-inset-bottom) + 26px);flex-direction:column;gap:16px;animation:.25s fade-in;display:flex}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.topbar{padding-top:max(8px, env(safe-area-inset-top));justify-content:space-between;align-items:center;gap:10px;display:flex}.topbar .eyebrow{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.78rem;font-weight:700}.stack{flex-direction:column;gap:12px;display:flex}.stack-sm{flex-direction:column;gap:8px;display:flex}.row{align-items:center;gap:10px;display:flex}.row-between{justify-content:space-between;align-items:center;gap:10px;display:flex}.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.center{text-align:center}.muted{color:var(--muted)}.small{font-size:.85rem}.tiny{font-size:.76rem}.strong{font-weight:800}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card.tight{padding:13px 14px}.card.flat{box-shadow:none}.card.soft{background:var(--surface-2)}.card.accent{background:var(--accent-soft);border-color:#0000}.card.quiet{box-shadow:none;background:0 0;border-style:dashed}.card-title{align-items:center;gap:8px;margin-bottom:8px;font-size:1.02rem;font-weight:800;display:flex}.section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.76rem;font-weight:800}.btn{appearance:none;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;box-shadow:var(--shadow-sm);border-radius:999px;justify-content:center;align-items:center;gap:7px;padding:11px 17px;font-size:.94rem;font-weight:800;transition:transform .12s,background .15s,box-shadow .15s;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--accent);color:#fff;border-color:#0000}[data-mode=dark] .btn-primary{color:#16180f}.btn-ghost{box-shadow:none;color:var(--muted);background:0 0;border-color:#0000;padding:8px 12px}.btn-soft{background:var(--surface-2)}.btn-block{width:100%}.btn-sm{padding:7px 13px;font-size:.85rem}.btn-icon{border-radius:50%;width:42px;height:42px;padding:0;font-size:1.1rem}.btn-danger{color:var(--danger);border-color:var(--danger);background:0 0}.chip{background:var(--surface-2);border:1px solid var(--line);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:7px 12px;font-size:.84rem;font-weight:700;transition:all .15s;display:inline-flex}.chip.selected{background:var(--accent);color:#fff;border-color:#0000}[data-mode=dark] .chip.selected{color:#16180f}.chip.static{cursor:default}.chip.ghost{background:0 0}.pill{background:var(--surface-2);color:var(--ink-soft);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:.75rem;font-weight:800;display:inline-flex}.pill.accent{background:var(--accent-soft);color:var(--accent-ink)}.pill.warm{background:var(--warm-soft);color:var(--warm)}.bar{background:var(--surface-2);border:1px solid var(--line);border-radius:999px;height:10px;overflow:hidden}.bar>span{background:var(--accent);border-radius:999px;height:100%;transition:width .5s cubic-bezier(.2,.8,.3,1);display:block}.bar.thin{height:7px}.bar.big{height:14px}.steps{align-items:center;gap:5px;display:flex}.steps i{background:var(--surface-2);border:1px solid var(--line);border-radius:999px;width:100%;max-width:26px;height:8px;display:block}.steps i.on{background:var(--accent);border-color:#0000}.tabbar{width:100%;max-width:560px;height:calc(var(--tab-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);z-index:40;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tabbar button{color:var(--muted);cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:0;font-size:.66rem;font-weight:800;display:flex}.tabbar button span.ico{font-size:1.32rem;line-height:1;transition:transform .18s}.tabbar button.active{color:var(--accent-ink)}.tabbar button.active span.ico{transform:translateY(-2px)scale(1.12)}.tabbar button .dot{background:var(--warm);border-radius:50%;width:8px;height:8px;margin:-18px 0 0 18px;position:absolute}.sheet-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;background:#2820166b;justify-content:center;align-items:flex-end;animation:.18s fade-in;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:560px;padding:10px 16px calc(20px + env(safe-area-inset-bottom));border:1px solid var(--line);border-bottom:0;border-radius:26px 26px 0 0;max-height:88dvh;animation:.24s cubic-bezier(.2,.9,.3,1) sheet-up;overflow-y:auto}@keyframes sheet-up{0%{opacity:.4;transform:translateY(30px)}to{opacity:1;transform:none}}.sheet-handle{background:var(--line);border-radius:999px;width:44px;height:5px;margin:4px auto 12px}.field{flex-direction:column;gap:5px;display:flex}.field label{color:var(--ink-soft);font-size:.8rem;font-weight:800}.field .hint{color:var(--muted);font-size:.76rem}input[type=text],input[type=number],input[type=date],input[type=password],select,textarea{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface-2);outline:none;width:100%;padding:11px 13px;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}textarea{resize:vertical;min-height:76px}.switch{justify-content:space-between;align-items:center;gap:12px;padding:11px 0;display:flex}.switch input{display:none}.switch>label{flex:none;display:block}.switch .track{background:var(--line);cursor:pointer;border-radius:999px;flex:none;width:50px;height:30px;transition:background .2s;display:block;position:relative}.switch .track:after{content:"";width:24px;height:24px;box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;transition:transform .2s;position:absolute;top:3px;left:3px}.switch input:checked+.track{background:var(--accent)}.switch input:checked+.track:after{transform:translate(20px)}.world{border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);background:var(--sky-2);position:relative;overflow:hidden}.world svg{width:100%;height:auto;display:block}.world-caption{pointer-events:none;justify-content:space-between;align-items:flex-end;gap:8px;display:flex;position:absolute;bottom:12px;left:14px;right:14px}.world-caption .pill{color:#4a4034;background:#fffdf7db}.tree-tier{flex-direction:column;gap:9px;display:flex}.tier-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);align-items:center;gap:9px;font-size:.74rem;font-weight:800;display:flex}.tier-label:after{content:"";background:var(--line);flex:1;height:1px}.node{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);cursor:pointer;text-align:left;width:100%;box-shadow:var(--shadow-sm);align-items:flex-start;gap:12px;padding:13px 14px;transition:transform .12s,border-color .15s;display:flex}.node:active{transform:scale(.99)}.node.locked{opacity:.55;box-shadow:none;background:0 0}.node.done{background:var(--accent-soft);border-color:#0000}.node.crown{border-color:var(--sun)}.node.done.crown{background:linear-gradient(140deg, var(--accent-soft), var(--warm-soft))}.node .avatar{background:var(--surface-2);border-radius:13px;flex:none;place-items:center;width:42px;height:42px;font-size:1.25rem;display:grid}.node.done .avatar{background:#ffffff8c}[data-mode=dark] .node.done .avatar{background:#0000002e}.connector{background:var(--line);border-radius:2px;width:2px;height:12px;margin-left:34px}.quest{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);flex-direction:column;gap:10px;padding:15px;display:flex}.quest.done{background:var(--accent-soft);box-shadow:none;border-color:#0000}.quest-head{align-items:flex-start;gap:12px;display:flex}.quest-emoji{background:var(--surface-2);border-radius:15px;flex:none;place-items:center;width:46px;height:46px;font-size:1.4rem;display:grid}.quest ol{color:var(--ink-soft);flex-direction:column;gap:4px;margin:0;padding-left:1.1rem;font-size:.9rem;display:flex}.block-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.block-btn{border-radius:var(--radius-sm);border:1.5px solid var(--line);background:var(--surface-2);text-align:left;cursor:pointer;flex-direction:column;gap:2px;padding:12px 11px;transition:all .15s;display:flex}.block-btn .name{align-items:center;gap:6px;font-size:.92rem;font-weight:800;display:flex}.block-btn .ex{color:var(--muted);font-size:.72rem;line-height:1.35}.block-btn.on{background:var(--surface);box-shadow:var(--shadow-sm);border-color:currentColor}.block-btn.on .name:after{content:"✓";margin-left:auto}.satiety-grid{grid-template-columns:repeat(3,1fr);gap:7px;display:grid}.satiety-grid .chip{text-align:center;flex-direction:column;justify-content:center;gap:2px;padding:9px 4px}.satiety-grid .chip .em{font-size:1.2rem}.satiety-grid .chip .tx{font-size:.68rem;font-weight:700;line-height:1.2}.stat-grid{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.stat{background:var(--surface-2);border-radius:var(--radius-sm);text-align:center;padding:9px 4px}.stat .k{color:var(--muted);letter-spacing:.06em;font-size:.66rem;font-weight:800}.stat .v{font-size:1.16rem;font-weight:800}.toast-wrap{left:50%;bottom:calc(var(--tab-h) + env(safe-area-inset-bottom) + 14px);z-index:60;flex-direction:column;gap:8px;width:min(520px,100% - 28px);display:flex;position:fixed;transform:translate(-50%)}.toast{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow);align-items:center;gap:10px;padding:12px 14px;animation:.28s cubic-bezier(.2,.9,.3,1) toast-in;display:flex}.toast.celebrate{background:linear-gradient(135deg, var(--accent-soft), var(--warm-soft));border-color:#0000}@keyframes toast-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.confetti{pointer-events:none;z-index:70;position:fixed;inset:0;overflow:hidden}.confetti i{border-radius:2px;width:9px;height:14px;animation:linear forwards fall;position:absolute;top:-14px}@keyframes fall{to{opacity:.85;transform:translateY(105vh)rotate(560deg)}}.philosophy{text-align:center;color:var(--ink-soft);padding:6px 8px;font-size:1.06rem;font-weight:800;line-height:1.45}.divider{background:var(--line);border:0;height:1px;margin:4px 0}.list-row{border-bottom:1px solid var(--line);align-items:center;gap:11px;padding:11px 0;display:flex}.list-row:last-child{border-bottom:0}.badge-new{background:var(--warm);color:#fff;letter-spacing:.04em;border-radius:999px;padding:2px 7px;font-size:.64rem;font-weight:800}.spinner{border:2.5px solid var(--line);border-top-color:var(--accent);border-radius:50%;flex:none;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error-box{background:var(--warm-soft);border:1px solid var(--warm);color:var(--ink);border-radius:var(--radius-sm);padding:11px 13px;font-size:.88rem}.bubble{white-space:pre-wrap;word-break:break-word;border-radius:18px;max-width:88%;padding:11px 14px;font-size:.93rem;line-height:1.5}.bubble.user{background:var(--accent);color:#fff;border-bottom-right-radius:6px;align-self:flex-end}[data-mode=dark] .bubble.user{color:#16180f}.bubble.bot{background:var(--surface-2);border-bottom-left-radius:6px;align-self:flex-start}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
