@font-face{font-family:Grandstander;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/grandstander-vietnamese-500-normal-l-E_48Zp.woff2) format("woff2"),url(/assets/grandstander-vietnamese-500-normal-YiG5OKh6.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Grandstander;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/grandstander-latin-ext-500-normal-Cl1RZ0OR.woff2) format("woff2"),url(/assets/grandstander-latin-ext-500-normal-BwNu2pWm.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Grandstander;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/grandstander-latin-500-normal-CN115CDG.woff2) format("woff2"),url(/assets/grandstander-latin-500-normal-DW5-3QoC.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Grandstander;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/grandstander-vietnamese-700-normal-64TgBrxv.woff2) format("woff2"),url(/assets/grandstander-vietnamese-700-normal-D9hBLVnv.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Grandstander;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/grandstander-latin-ext-700-normal-Vv3vXM5G.woff2) format("woff2"),url(/assets/grandstander-latin-ext-700-normal-C9MhOlpq.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Grandstander;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/grandstander-latin-700-normal-B7EXRwbV.woff2) format("woff2"),url(/assets/grandstander-latin-700-normal-C_7sGtqO.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Grandstander;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/grandstander-vietnamese-800-normal-CLIxpULc.woff2) format("woff2"),url(/assets/grandstander-vietnamese-800-normal-CMv8GGy-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Grandstander;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/grandstander-latin-ext-800-normal-DXxZD3HK.woff2) format("woff2"),url(/assets/grandstander-latin-ext-800-normal-CMK0XiP1.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Grandstander;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/grandstander-latin-800-normal-C5RZ1tt5.woff2) format("woff2"),url(/assets/grandstander-latin-800-normal-CCyNXI-Z.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-ext-400-normal-DRk46D-x.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-400-normal-Bbz-b3yf.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-400-normal-BrHNak5F.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-400-normal-BbWidj28.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-ext-700-normal-BoVPHkS0.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-700-normal-CKkU2Dpt.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-700-normal-GZI4o3u0.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-700-normal-BK6Glc0m.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f1f4f9;--surface: #ffffff;--fg: #1b2240;--muted: #56607f;--line: #d6dcea;--night: #1f2a4f;--night-fg: #f4f1e2;--hay: #f2b632;--hay-deep: #c88f12;--hay-soft: #fdf0cc;--hay-ink: #2b2205;--clover: #2f8a5c;--clover-soft: #dcf1e5;--warn: #b5562b;--warn-soft: #fbe4d8;--lock: #b9c0d4;--image-bg: #ffffff;--display: "Grandstander", "Comic Sans MS", "Trebuchet MS", system-ui, sans-serif;--body: "Atkinson Hyperlegible", "Verdana", system-ui, sans-serif;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #11162a;--surface: #192039;--fg: #e9ecf7;--muted: #a0a8c8;--line: #2b3458;--night: #0b1022;--hay: #f5c04d;--hay-soft: #3a3115;--clover: #5cc38c;--clover-soft: #173827;--warn: #f0a07a;--warn-soft: #3d2418;--lock: #4a5378;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--bg);color:var(--fg);font:17px/1.5 var(--body);-webkit-tap-highlight-color:transparent}h1,h2,h3{font-family:var(--display);line-height:1.15;margin:0;text-wrap:balance}h1{font-size:1.7rem;font-weight:800}h2{font-size:1.35rem;font-weight:800}h3{font-size:1.1rem;font-weight:700}p{margin:0}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--hay);outline-offset:2px}.sprite{position:absolute;width:0;height:0;overflow:hidden}.screen{max-width:560px;margin:0 auto;min-height:100dvh;padding:calc(env(safe-area-inset-top,0px) + 16px) 16px calc(env(safe-area-inset-bottom,0px) + 24px);display:flex;flex-direction:column;gap:16px}.screen.night{background:var(--night);color:var(--night-fg);max-width:none}.screen.night>*{width:100%;max-width:528px;margin-inline:auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px}.topbar .title{font-family:var(--display);font-weight:800;font-size:1.25rem}.back{background:none;border:0;padding:8px 4px;font-weight:700;color:var(--muted)}.label{font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.muted{color:var(--muted)}.small{font-size:.85rem}.btn{display:block;width:100%;border:0;border-radius:16px;padding:16px;font:800 1.1rem/1.1 var(--display);background:var(--hay);color:var(--hay-ink);box-shadow:0 4px 0 var(--hay-deep);transition:transform 80ms ease}.btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--hay-deep)}.btn:disabled{opacity:.5;box-shadow:none;transform:none}.btn.secondary{background:var(--surface);color:var(--fg);border:2px solid var(--line);box-shadow:none}.btn.green{background:var(--clover);color:#fff;box-shadow:0 4px #1f6342}.btn-row{display:grid;gap:10px}.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;font-weight:700;font-size:.9rem;border:2px solid var(--line);background:var(--surface)}.godis-chip{background:var(--hay-soft);border-color:var(--hay);font-variant-numeric:tabular-nums}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px}.stack{display:grid;gap:12px}.pig{width:84px;height:auto;flex:none}.pig.big{width:160px}.talk{display:flex;align-items:flex-end;gap:10px}.bubble{background:var(--hay-soft);color:var(--fg);border-radius:16px;padding:12px 14px;font-size:.98rem;position:relative;flex:1}.bubble b{font-family:var(--display)}.night .bubble{background:#f4f1e21f;color:var(--night-fg)}.login{justify-content:center;text-align:center}.login .pigs{display:flex;justify-content:center;gap:6px}.login form{display:grid;gap:12px;text-align:left}.field{display:grid;gap:6px}.field input,.field textarea{width:100%;padding:14px;border-radius:12px;border:2px solid var(--line);background:var(--surface);color:var(--fg);font-size:1.05rem}.night .field input{border-color:#f4f1e24d}.error{color:var(--warn);font-weight:700}.night .error{color:#ffb48f}.week{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px}.dots{display:flex;gap:6px}.dots span{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:.7rem;font-weight:700;background:var(--line);color:var(--muted)}.dots span.on{background:var(--clover);color:#fff}.dots span.today{outline:2px solid var(--hay);outline-offset:1px}.path{display:grid;gap:14px;padding-block:8px}.node{display:flex;align-items:center;gap:14px;background:none;border:0;padding:0;text-align:left}.node:nth-child(2){margin-left:44px}.node:nth-child(3){margin-left:18px}.node .dot{width:64px;height:64px;border-radius:50%;flex:none;display:grid;place-items:center;font:800 1.4rem/1 var(--display);background:var(--hay);color:var(--hay-ink);box-shadow:0 5px 0 var(--hay-deep)}.node.locked .dot{background:var(--lock);color:var(--surface);box-shadow:none}.node .name{font-family:var(--display);font-weight:700;font-size:1.1rem;display:block}.node .sub{font-size:.85rem;color:var(--muted)}.home-links{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:auto}.progress{display:flex;gap:6px}.progress i{flex:1;height:6px;border-radius:3px;background:var(--line)}.progress i.on{background:var(--hay)}.choices{display:flex;flex-wrap:wrap;gap:8px}.choice{padding:10px 14px;border-radius:999px;border:2px solid var(--line);background:var(--surface);font-weight:700;font-size:.95rem}.choice[aria-pressed=true]{border-color:var(--hay);background:var(--hay-soft)}.thermo{display:grid;gap:8px}.thermo .row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.thermo output{font:800 2rem/1 var(--display);font-variant-numeric:tabular-nums;min-width:2ch;text-align:right}.thermo input[type=range]{width:100%;height:36px;accent-color:var(--hay)}.thermo .scale{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted)}.stage{background:var(--image-bg);border-radius:18px;overflow:hidden;border:1px solid var(--line);aspect-ratio:5 / 4;display:grid;place-items:center}.stage img{width:100%;height:100%;object-fit:contain;display:block}.levels{display:flex;gap:6px;justify-content:center}.levels i{width:10px;height:10px;border-radius:50%;background:var(--line)}.levels i.on{background:var(--hay)}.timer{display:flex;align-items:center;gap:12px}.timer svg{width:56px;height:56px;flex:none;transform:rotate(-90deg)}.timer .bg{fill:none;stroke:var(--line);stroke-width:6}.timer .fg{fill:none;stroke:var(--clover);stroke-width:6;stroke-linecap:round;transition:stroke-dashoffset 1s linear}.timer b{font:800 1.5rem/1 var(--display);font-variant-numeric:tabular-nums}.body-howto{font-size:1.15rem}.big-count{font:800 4rem/1 var(--display);text-align:center;font-variant-numeric:tabular-nums}.pause-btn{border:2px solid var(--line);background:var(--surface);border-radius:999px;padding:8px 14px;font-weight:700;font-size:.9rem}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b10228c;display:grid;place-items:end center;padding:16px;padding-bottom:calc(env(safe-area-inset-bottom,0px) + 16px);z-index:10}.sheet{background:var(--bg);border-radius:22px;padding:20px;width:100%;max-width:528px;display:grid;gap:14px}.compare{display:grid;grid-template-columns:1fr 1fr;gap:10px}.compare div{border-radius:14px;padding:12px;display:grid;gap:4px}.compare .was{background:var(--warn-soft)}.compare .is{background:var(--clover-soft)}.compare b{font-family:var(--display);font-size:1.05rem}.bars{display:grid;gap:8px}.bar{display:grid;grid-template-columns:76px 1fr 28px;gap:10px;align-items:center;font-size:.85rem;font-variant-numeric:tabular-nums}.bar i{display:block;height:14px;border-radius:7px;background:var(--warn);min-width:4px}.bar i.low{background:var(--clover)}.reward{text-align:center;font:800 1.4rem/1.2 var(--display);color:var(--clover)}.pick-list{display:grid;gap:10px}.pick{display:flex;justify-content:space-between;align-items:center;gap:10px;text-align:left;border:2px solid var(--line);background:var(--surface);border-radius:14px;padding:14px}.pick b{font-family:var(--display)}.pick .done{color:var(--clover);font-weight:700;font-size:.85rem}.pantry-total{display:flex;justify-content:space-between;align-items:center;background:var(--hay-soft);border-radius:16px;padding:14px 16px}.pantry-total b{font:800 2rem/1 var(--display);font-variant-numeric:tabular-nums}.pig-pick{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pig-pick button{border:3px solid var(--line);background:var(--surface);border-radius:18px;padding:10px;display:grid;justify-items:center;gap:4px;font-family:var(--display);font-weight:700}.pig-pick button[aria-pressed=true]{border-color:var(--hay);background:var(--hay-soft)}.pig-pick .pig{width:100%;max-width:120px}.food{display:flex;justify-content:space-between;align-items:center;gap:10px}.food svg{width:32px;height:32px;flex:none}@media(prefers-reduced-motion:no-preference){.munch{animation:munch .6s ease 2}@keyframes munch{50%{transform:scale(1.08) rotate(-3deg)}}}.tabs{display:flex;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:4px}.tabs button{flex:1;border:0;background:none;border-radius:10px;padding:10px 6px;font-weight:700;font-size:.9rem;color:var(--muted)}.tabs button[aria-selected=true]{background:var(--hay);color:var(--hay-ink)}.kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px;display:grid;gap:2px}.kpi b{font:800 1.8rem/1 var(--display);font-variant-numeric:tabular-nums}.kpi small{color:var(--muted);font-size:.8rem;line-height:1.3}.chart svg{width:100%;height:auto;display:block}.chart .ax{stroke:var(--line);stroke-width:1}.chart .t{fill:var(--muted);font:10px var(--body)}.chart .before{fill:var(--warn)}.chart .after{fill:var(--clover)}.legend{display:flex;gap:14px;font-size:.8rem;color:var(--muted)}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}.log{display:grid;gap:8px}.log-row{border-bottom:1px dashed var(--line);padding-bottom:8px;display:grid;gap:2px;font-size:.88rem}.log-row .head{display:flex;justify-content:space-between;gap:8px;font-weight:700}.toggle{display:flex;align-items:flex-start;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.toggle:last-child{border-bottom:0}.toggle input{width:24px;height:24px;flex:none;accent-color:var(--clover);margin-top:2px}.toggle .caution{font-size:.82rem;color:var(--warn);display:block;margin-top:2px}.reward-row{display:grid;grid-template-columns:1fr 76px auto;gap:8px;align-items:center}.reward-row input{width:100%;min-width:0;padding:10px;border-radius:10px;border:2px solid var(--line);background:var(--surface)}.icon-btn{border:2px solid var(--line);background:var(--surface);border-radius:10px;padding:8px 10px;font-weight:700}.toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 20px);transform:translate(-50%);background:var(--night);color:var(--night-fg);padding:10px 16px;border-radius:999px;font-weight:700;z-index:20}
