:root{--orange:#ff6b35;--orange-d:#c94a1e;--green:#5bbf3a;--green-d:#2f7d1e;--brown:#8c5a2b;--cream:#fbf6ee;--ink:#2a1d14;--muted:#6d5a4a;--card:#fffcf6f0;--line:#ead9c4;--shadow:0 10px 30px #3c1e0a2e;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--card:#261e18f0;--ink:#f7eee4;--muted:#c9b6a3;--line:#4a3a2e;--cream:#1e1813}}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);overscroll-behavior:none;background:#f3e7d6;margin:0;font-family:Nunito,system-ui,-apple-system,Segoe UI,sans-serif}#app{height:100dvh;position:fixed;inset:0;overflow:hidden}#stage{position:absolute;inset:0}#stage canvas{touch-action:none;width:100%;height:100%;display:block}button{font:inherit;cursor:pointer}.logo{letter-spacing:2px;color:var(--orange);text-shadow:0 4px 0 var(--orange-d), 0 10px 24px #c94a1e59;font-size:clamp(48px,12vw,96px);font-weight:900;line-height:1}.sub{color:var(--green-d);margin-top:6px;font-size:clamp(18px,4.5vw,28px);font-weight:800}#boot{z-index:50;background:radial-gradient(circle at 50% 40%,#fff3e2,#f3e2c8);place-items:center;display:grid;position:absolute;inset:0}#boot[hidden]{display:none}.boot-card{text-align:center;padding:24px}#boot-msg{color:var(--muted);margin-top:18px;font-weight:700}#boot button{margin-top:18px}.btn{background:var(--orange);color:#fff;min-height:48px;box-shadow:0 4px 0 var(--orange-d);border:0;border-radius:16px;padding:14px 20px;font-size:17px;font-weight:800;transition:transform 80ms}.btn:active{box-shadow:0 2px 0 var(--orange-d);transform:translateY(2px)}.btn.green{background:var(--green);box-shadow:0 4px 0 var(--green-d)}.btn.ghost{background:var(--card);color:var(--ink);box-shadow:inset 0 0 0 2px var(--line), var(--shadow)}.btn.small{border-radius:12px;min-height:40px;padding:8px 12px;font-size:14px}.btn:focus-visible,.icon-btn:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #3a86ff}.icon-btn{background:var(--card);width:48px;height:48px;box-shadow:var(--shadow);color:var(--ink);border:0;border-radius:14px;place-items:center;font-size:22px;display:grid}#screen{pointer-events:none;z-index:20;position:absolute;inset:0}.panel{pointer-events:auto;padding:calc(16px + var(--safe-t)) calc(16px + var(--safe-r)) calc(16px + var(--safe-b)) calc(16px + var(--safe-l));justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.panel.dim{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#28140859}.card{background:var(--card);box-shadow:var(--shadow);border-radius:24px;width:min(560px,100%);max-height:100%;padding:22px;overflow:auto}.card h2{margin:0 0 10px;font-size:24px}.card p{color:var(--muted);line-height:1.45}.stack{gap:10px;display:grid}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.title-panel{padding-top:calc(5vh + var(--safe-t));flex-direction:column;justify-content:flex-start}.title-panel .menu{width:min(440px,100%);margin-top:auto;margin-bottom:1vh}.row.three{grid-template-columns:repeat(3,1fr);display:grid}.row.three .btn{text-align:center;justify-content:center;align-items:center;width:100%}@media (orientation:landscape) and (min-width:700px){.title-panel{padding-right:calc(5vw + var(--safe-r));align-items:flex-end}.title-panel .logo,.title-panel .sub{align-self:flex-end;margin-right:4vw}.title-panel .menu{width:min(420px,45vw)}}.menu .btn{text-align:left;flex-direction:column;align-items:flex-start;width:100%;display:flex}.menu .btn small{opacity:.9;font-size:13px;font-weight:600}.top-right{top:calc(12px + var(--safe-t));right:calc(12px + var(--safe-r));gap:8px;display:flex;position:absolute}.top-left{top:calc(12px + var(--safe-t));left:calc(12px + var(--safe-l));gap:8px;display:flex;position:absolute}.langs button{background:var(--card);color:var(--ink);box-shadow:var(--shadow);border:0;border-radius:12px;min-height:44px;padding:8px 10px;font-weight:800}.langs button[aria-pressed=true]{background:var(--orange);color:#fff}.fine{color:var(--muted);text-align:center;margin-top:8px;font-size:12px}#hud{pointer-events:none;z-index:10;position:absolute;inset:0}#hud[hidden]{display:none}.hud-top{top:calc(10px + var(--safe-t));left:calc(10px + var(--safe-l));right:calc(10px + var(--safe-r));grid-template-columns:auto 1fr auto;align-items:center;gap:10px;display:grid;position:absolute}.hud-top .icon-btn{pointer-events:auto}.belly{background:var(--card);box-shadow:var(--shadow);border-radius:16px;padding:8px 12px}.belly-head{color:var(--muted);white-space:nowrap;justify-content:space-between;gap:6px;font-size:13px;font-weight:800;display:flex}@media (max-width:420px){.belly-head{font-size:11px}.score-box .v{font-size:18px}.score-box{min-width:72px}}.belly-bar{background:#eadfd2;border-radius:8px;height:14px;margin-top:5px;display:flex;position:relative;overflow:hidden}.belly-bar .seg{height:100%;transition:width .4s}.belly-bar .seg.h{background:linear-gradient(#8fd16b,#4fa52c)}.belly-bar .seg.j{background:linear-gradient(#b07a48,#6e4322)}.belly-bar .seg.c{background:linear-gradient(#ffd27a,#e9a43a)}.belly-bar .half{background:#00000040;width:2px;position:absolute;top:0;bottom:0;left:50%}.score-box{background:var(--card);box-shadow:var(--shadow);text-align:right;border-radius:16px;min-width:96px;padding:6px 12px}.score-box .v{color:var(--orange-d);font-size:22px;font-weight:900}.score-box .l{color:var(--muted);font-size:12px;font-weight:700}.hud-sub{top:calc(80px + var(--safe-t));align-items:center;gap:8px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.chip{background:var(--card);box-shadow:var(--shadow);white-space:nowrap;border-radius:999px;padding:5px 12px;font-size:13px;font-weight:800}.chip.trial{color:#7a5a00;background:#fff1c2}.chip.habit-junk{color:#6e4322;background:#e8d4c2}.chip.habit-healthy{color:var(--green-d);background:#dff3d3}.timer{top:calc(120px + var(--safe-t));background:#0000001a;border-radius:6px;width:min(260px,60vw);height:8px;position:absolute;left:50%;overflow:hidden;transform:translate(-50%)}.timer>i{background:var(--orange);height:100%;transition:width .1s linear;display:block}.timer.warn>i{background:#e63946}.hint{bottom:calc(14px + var(--safe-b));color:var(--muted);background:var(--card);box-shadow:var(--shadow);text-align:center;border-radius:16px;width:max-content;max-width:92vw;padding:6px 14px;font-size:14px;font-weight:700;position:absolute;left:50%;transform:translate(-50%)}.fact{left:50%;top:calc(150px + var(--safe-t));background:var(--card);width:min(420px,92vw);box-shadow:var(--shadow);text-align:center;opacity:0;border-radius:16px;padding:10px 14px;font-size:14px;font-weight:700;transition:opacity .3s;position:absolute;transform:translate(-50%)}.fact.show{opacity:1}.fact.good{border-left:6px solid var(--green)}.fact.bad{border-left:6px solid var(--brown)}#labels{pointer-events:none;z-index:9;position:absolute;inset:0}.plate-label{background:var(--card);box-shadow:var(--shadow);text-align:center;white-space:nowrap;text-overflow:ellipsis;border-radius:12px;max-width:44vw;padding:4px 10px;font-size:13px;font-weight:800;position:absolute;overflow:hidden;transform:translate(-50%)}.plate-label small{color:var(--muted);font-size:12px;font-weight:700;display:block}.plate-label.sel{outline:3px solid #3a86ff}#toasts{pointer-events:none;z-index:15;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:38%;left:0;right:0}.toast{background:var(--card);box-shadow:var(--shadow);border-radius:999px;padding:8px 16px;font-size:16px;font-weight:900;animation:1.6s forwards pop}.toast.big{color:var(--orange-d);font-size:22px}.toast.good{color:var(--green-d)}.toast.bad{color:var(--brown)}@keyframes pop{0%{opacity:0;transform:scale(.6)}12%{opacity:1;transform:scale(1.08)}20%{transform:scale(1)}80%{opacity:1}to{opacity:0;transform:translateY(-24px)}}@media (prefers-reduced-motion:reduce){.toast{animation:1.6s forwards fade}@keyframes fade{0%,80%{opacity:1}to{opacity:0}}}.results .big{color:var(--orange-d);font-size:40px;font-weight:900}.outcome{font-size:22px;font-weight:900}.outcome.victory{color:var(--green-d)}.outcome.defeat{color:var(--brown)}.stats{grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0;display:grid}.stat{text-align:center;background:#7f7f7f1f;border-radius:14px;padding:8px}.stat b{font-size:18px;display:block}.stat span{color:var(--muted);font-size:12px;font-weight:700}.receipt-img{width:100%;max-width:280px;box-shadow:var(--shadow);border-radius:6px;margin:8px auto;display:block}.mart-grid{grid-template-columns:repeat(auto-fill,minmax(124px,1fr));gap:10px;margin-top:12px;display:grid}.bag{color:#3b2412;text-align:left;min-height:112px;box-shadow:inset 0 -6px 0 #0000001f, var(--shadow);background:linear-gradient(#d9b78a,#c49a66);border:0;border-radius:14px 14px 18px 18px;padding:34px 10px 12px;position:relative}.bag:before{content:"";border:4px solid #50321499;border-bottom:0;border-radius:14px 14px 0 0;width:40%;height:14px;position:absolute;top:6px;left:50%;transform:translate(-50%)}.bag b{font-size:15px;display:block}.bag small{opacity:.85;margin-top:4px;font-size:12px;display:block}.bag .tag{background:#fff8e6;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:900;position:absolute;top:8px;right:8px}.bag.free{background:linear-gradient(#ffb38f,#ff8a5c)}.bag[aria-pressed=true]{outline:4px solid #3a86ff}.bag-detail{border-top:2px dashed var(--line);margin-top:14px;padding-top:12px}.foods-preview{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.foods-preview span{color:#2a1d14;background:#efe7dc;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:700}.foods-preview span.h{background:#dff3d3}.foods-preview span.j{background:#efdcc9}.note{color:var(--ink);background:#ffc85026;border-radius:12px;padding:10px;font-size:13px}.onboard{font-size:14px;line-height:1.5}.recipes-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px;margin-top:10px;display:grid}.recipe{background:#7f7f7f1f;border-radius:10px;padding:6px 10px;font-size:13px;font-weight:700}.recipe.h{border-left:4px solid var(--green)}.recipe.j{border-left:4px solid var(--brown)}label.field{gap:4px;font-weight:800;display:grid}select,input[type=number]{font:inherit;border:2px solid var(--line);background:var(--cream);color:var(--ink);border-radius:12px;min-height:44px;padding:10px}.switch{justify-content:space-between;align-items:center;gap:10px;font-weight:800;display:flex}@media (max-width:520px){.stats{grid-template-columns:repeat(3,1fr)}.card{padding:16px}.hud-sub{top:calc(78px + var(--safe-t))}}.title-panel .fine{background:var(--card);border-radius:12px;padding:6px 10px}@media (max-height:470px){.logo{font-size:44px}.sub{margin-top:2px;font-size:16px}.menu .btn small{display:none}.btn{min-height:44px;padding:9px 14px;font-size:15px}.title-panel{padding-top:calc(8px + var(--safe-t))}.title-panel .fine{display:none}.hud-sub{top:calc(64px + var(--safe-t))}.timer{top:calc(98px + var(--safe-t))}.fact{top:auto;bottom:calc(56px + var(--safe-b))}}.bag{padding-top:30px}.bag-logo{border-radius:50%;width:64px;height:64px;margin:0 auto 6px;display:block;box-shadow:0 3px 8px #0000002e}.bag b,.bag small{text-align:center}.bag-head{align-items:center;gap:14px;display:flex}.bag-head h2{margin:0 0 4px}.bag-logo-big{width:96px;height:96px;box-shadow:var(--shadow);border-radius:50%;flex:none}.recipe-country{grid-column:1/-1;align-items:center;gap:8px;margin-top:8px;display:flex}.recipe-country img{border-radius:50%;width:32px;height:32px}.lang-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;display:grid}.lang-btn{min-height:56px;color:var(--ink);background:#7f7f7f1f;border:0;border-radius:14px;flex-direction:column;align-items:center;gap:2px;padding:10px;font-weight:800;display:flex}.lang-btn small{opacity:.6;font-size:11px}.lang-btn.on{background:var(--orange);color:#fff}.lang-bag{border-radius:50%;width:30px;height:30px}.bag.home{outline:3px solid var(--orange);outline-offset:2px}html,body{font-family:Nunito,system-ui,-apple-system,Segoe UI,Noto Sans,Noto Sans Arabic,Noto Sans Devanagari,Noto Sans Thai,PingFang SC,Microsoft YaHei,Hiragino Sans,Yu Gothic,Malgun Gothic,sans-serif}
