@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--accent:#30d158;--accent-hi:color-mix(in oklab, var(--accent) 55%, #fff);--accent-lo:color-mix(in oklab, var(--accent) 72%, #000);--accent-soft:color-mix(in oklab, var(--accent) 16%, transparent);--accent-ink:color-mix(in oklab, var(--accent) 22%, #000);--bg:#000;--surface:linear-gradient(180deg, #18181b 0%, #0e0e10 100%);--surface-2:#1d1d21;--hair:#ffffff12;--text:#f5f5f7;--text-2:#a1a1a8;--text-3:#6e6e75;--amber:#ffb340;--amber-bg:#ffb34017;--water:#5ac8fa;--radius:24px;--sheen:inset 0 1px 0 #ffffff0f;--lift:0 24px 48px -24px #000000f2;--safe-top:env(safe-area-inset-top);--safe-bottom:env(safe-area-inset-bottom);--ease:cubic-bezier(.16, 1, .3, 1);--display:"Geist Variable", -apple-system, system-ui, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;caret-color:var(--accent);accent-color:var(--accent);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif}*{box-sizing:border-box;margin:0}html,body{background:var(--bg);color:var(--text);overscroll-behavior:none;min-height:100%}body{-webkit-tap-highlight-color:transparent}::selection{background:var(--accent-soft);color:var(--text)}::-webkit-scrollbar{display:none}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(70% 55% at 50% -8%, color-mix(in oklab, var(--accent) 26%, transparent), transparent 72%), radial-gradient(45% 35% at 100% 0%, color-mix(in oklab, var(--accent-hi) 12%, transparent), transparent 70%);height:62vh;transition:background .6s var(--ease);position:fixed;inset:0 0 auto}#root{z-index:1;min-height:100dvh;position:relative}button,input{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation;background:0 0;border:0}input:focus{outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:12px}.num-font,.display{font-family:var(--display);font-variant-numeric:tabular-nums}.screen{padding:calc(var(--safe-top) + 14px) 16px calc(var(--safe-bottom) + 120px);max-width:520px;margin:0 auto}.card{background:var(--surface);border:1px solid var(--hair);border-radius:var(--radius);box-shadow:var(--sheen), var(--lift);padding:20px;position:relative}.stack>*+*{margin-top:14px}.muted{color:var(--text-2)}.title{font-family:var(--display);letter-spacing:-.035em;font-size:34px;font-weight:700;line-height:1.05}.section-title{font-family:var(--display);letter-spacing:-.02em;font-size:20px;font-weight:650}.btn{background:linear-gradient(180deg, var(--accent-hi) -40%, var(--accent) 55%, var(--accent-lo) 140%);width:100%;height:58px;color:var(--accent-ink);letter-spacing:-.01em;box-shadow:inset 0 1px 0 #fff6, 0 14px 30px -12px color-mix(in oklab, var(--accent) 70%, transparent);transition:transform .2s var(--ease), opacity .25s, box-shadow .25s;border-radius:18px;justify-content:center;align-items:center;gap:8px;font-size:17px;font-weight:650;display:flex;position:relative}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.3;box-shadow:none}.btn.ghost{background:var(--surface-2);color:var(--text);box-shadow:var(--sheen)}.btn.warn-btn{background:linear-gradient(180deg, #ffc76a, var(--amber));color:#3a2400;box-shadow:var(--sheen)}.link{color:var(--text-3);padding:10px;font-size:14px;font-weight:500}.notice{background:var(--amber-bg);color:#ffd08a;border:1px solid #ffb34033;border-radius:18px;align-items:flex-start;gap:12px;padding:14px 16px;font-size:14px;line-height:1.45;display:flex}.notice strong{color:var(--amber);font-weight:650}.gate{min-height:100dvh;padding:calc(var(--safe-top) + 56px) 24px calc(var(--safe-bottom) + 20px);flex-direction:column;max-width:460px;margin:0 auto;display:flex}.gate-why{color:var(--text-3);text-align:center;max-width:300px;margin:14px auto 0;font-size:14px;line-height:1.5}.gate-hero{text-align:center;flex-direction:column;flex:1;align-items:center;display:flex}.app-icon{border:1px solid var(--hair);width:104px;height:104px;box-shadow:var(--sheen), 0 30px 60px -20px color-mix(in oklab, var(--accent) 55%, transparent);animation:rise .9s var(--ease) both;background:radial-gradient(80% 80% at 50% 0,#1c1c20,#050506);border-radius:24px;place-items:center;display:grid}.gate-icon{padding:6px}.gate h1{font-family:var(--display);letter-spacing:-.045em;animation:rise .9s 80ms var(--ease) both;margin-top:28px;font-size:44px;font-weight:750}.gate .tag{color:var(--text-2);animation:rise .9s .14s var(--ease) both;margin-top:10px;font-size:17px;line-height:1.45}.steps{text-align:left;width:100%;margin-top:40px}.step{background:var(--surface);border:1px solid var(--hair);box-shadow:var(--sheen);animation:rise .8s var(--ease) both;border-radius:20px;align-items:center;gap:14px;padding:16px;display:flex}.step+.step{margin-top:10px}.step-n{width:30px;height:30px;font-family:var(--display);color:var(--accent-ink);background:linear-gradient(180deg, var(--accent-hi), var(--accent));border-radius:50%;flex:none;place-items:center;font-size:14px;font-weight:700;display:grid}.step-t{font-size:16px;line-height:1.35}.step-t b{font-weight:650}.glyph{vertical-align:-3px;width:18px;height:18px;display:inline-block}.glyph.share{color:#0a84ff}@media (height<=700px){.gate{padding-top:calc(var(--safe-top) + 28px)}.gate-icon{border-radius:20px;width:84px;height:84px;padding:5px}.gate h1{margin-top:18px;font-size:38px}.gate .tag{font-size:16px}.steps{margin-top:24px}.step{padding:13px 14px}.gate-hint{margin-top:16px}}.gate-hint{color:var(--text-3);justify-content:center;align-items:center;gap:6px;margin-top:28px;font-size:13px;display:flex}.gate-hint svg{width:16px;height:16px;animation:1.8s ease-in-out infinite bob}@keyframes rise{0%{opacity:0;filter:blur(6px);transform:translateY(14px)}to{opacity:1;filter:none;transform:none}}@keyframes bob{50%{transform:translateY(4px)}}.ob{min-height:100dvh;padding:calc(var(--safe-top) + 12px) 24px calc(var(--safe-bottom) + 20px);flex-direction:column;max-width:460px;margin:0 auto;display:flex}.ob-top{align-items:center;gap:14px;height:44px;display:flex}.ob-back{width:38px;height:38px;color:var(--text-2);background:var(--surface-2);border-radius:50%;place-items:center;display:grid}.ob-back:disabled{visibility:hidden}.ob-bar{background:var(--surface-2);border-radius:3px;flex:1;height:5px;overflow:hidden}.ob-bar>i{background:linear-gradient(90deg, var(--accent-lo), var(--accent), var(--accent-hi));height:100%;transition:width .6s var(--ease);box-shadow:0 0 12px color-mix(in oklab, var(--accent) 60%, transparent);border-radius:3px;display:block}.ob-body{flex-direction:column;flex:1;padding-top:44px;display:flex}.ob-body.fwd{animation:slide-in .55s var(--ease)}.ob-body.back{animation:slide-back .55s var(--ease)}.ob-q{font-family:var(--display);letter-spacing:-.035em;text-wrap:balance;font-size:32px;font-weight:700;line-height:1.1}.ob-sub{color:var(--text-2);margin-top:12px;font-size:16px;line-height:1.5}.ob-field{margin-top:36px}.ob-foot{z-index:2;margin:0 -24px calc(-1 * (var(--safe-bottom) + 20px));padding:16px 24px calc(var(--safe-bottom) + 20px);background:linear-gradient(#0000,#000 30%);position:sticky;bottom:0}@keyframes slide-in{0%{opacity:0;filter:blur(4px);transform:translate(32px)}to{opacity:1;filter:none;transform:none}}@keyframes slide-back{0%{opacity:0;filter:blur(4px);transform:translate(-32px)}to{opacity:1;filter:none;transform:none}}.brand-mark{width:100%;height:100%;display:block;overflow:visible}.brand-mark .bm-line{filter:drop-shadow(0 0 14px color-mix(in oklab, var(--accent) 60%, transparent))}.brand-mark.animate .bm-line{stroke-dasharray:1;stroke-dashoffset:1px;animation:draw 1.3s .25s var(--ease) forwards}.brand-mark.animate .bm-dot{transform-box:fill-box;transform-origin:50%;animation:dot-pop .6s 1.35s var(--ease) both}.brand-mark.animate .bm-grid{animation:.9s both fade}@keyframes dot-pop{0%{transform:scale(0)}60%{transform:scale(1.25)}to{transform:scale(1)}}.ob:before{content:"";pointer-events:none;z-index:-1;background-image:linear-gradient(#ffffff0b 1px,#0000 1px),linear-gradient(90deg,#ffffff0b 1px,#0000 1px);background-position:50% -1px;background-size:44px 44px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(120% 70% at 50% 20%,#000 20%,#0000 75%);mask-image:radial-gradient(120% 70% at 50% 20%,#000 20%,#0000 75%)}.welcome-mark{border:1px solid var(--hair);width:180px;height:180px;box-shadow:var(--sheen), 0 40px 80px -30px color-mix(in oklab, var(--accent) 60%, transparent);animation:rise .9s var(--ease) both;background:radial-gradient(90% 90% at 50% 0,#1d1d21,#060607);border-radius:42px;margin:9vh auto 0;padding:8px}.welcome{flex-direction:column;flex:1;justify-content:flex-end;padding-bottom:12px;display:flex}.perks{animation:rise 1s .5s var(--ease) both;gap:12px;margin-top:26px;padding:0;list-style:none;display:grid}.perks li{color:var(--text);align-items:center;gap:12px;font-size:16px;display:flex}.perks svg{width:34px;height:34px;color:var(--accent);background:var(--accent-soft);border-radius:11px;flex:none;padding:8px}@media (height<=700px){.welcome-mark{border-radius:28px;width:116px;height:116px;margin-top:2vh;padding:5px}.welcome h1{font-size:46px}.welcome p{margin-top:10px;font-size:17px}.perks{gap:8px;margin-top:16px}.perks li{font-size:15px}.perks svg{width:30px;height:30px;padding:7px}}.ob-note{text-align:center;color:var(--text-3);margin-top:10px;font-size:13px}.ob-segs{flex:1;gap:5px;display:flex}.ob-segs i{background:var(--surface-2);height:5px;transition:background .5s var(--ease), box-shadow .5s;border-radius:3px;flex:1}.ob-segs i.on{background:linear-gradient(90deg, var(--accent-lo), var(--accent));box-shadow:0 0 10px color-mix(in oklab, var(--accent) 55%, transparent)}.ob-eyebrow{letter-spacing:.02em;color:var(--accent);margin-top:26px;font-size:13px;font-weight:650}.ob-eyebrow span{color:var(--text-3);margin:0 6px}.ob-eyebrow+.ob-body{padding-top:10px}.ob-chip{color:var(--accent);background:var(--accent-soft);animation:rise .5s var(--ease) both;font-variant-numeric:tabular-nums;border-radius:14px;align-self:flex-start;margin-top:16px;padding:8px 14px;font-size:14px;font-weight:650}.plan{background:var(--surface);border:1px solid var(--hair);box-shadow:var(--sheen);animation:rise .6s var(--ease) both;border-radius:20px;margin-top:22px;padding:16px 16px 14px}.plan-chart{width:100%;height:auto;display:block;overflow:visible}.plan-goal{stroke:var(--text-3);stroke-width:1.2px;stroke-dasharray:3 4}.plan-fill{fill:color-mix(in oklab, var(--accent) 14%, transparent)}.plan-line{fill:none;stroke:var(--accent);stroke-width:3.5px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:draw 1.1s var(--ease) forwards;filter:drop-shadow(0 3px 8px color-mix(in oklab, var(--accent) 50%, transparent))}.plan-start{fill:var(--text-2)}.plan-end{fill:var(--accent);stroke:#0e0e10;stroke-width:3px}.plan-labels{color:var(--text-2);font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:8px;font-size:13px;display:flex}.plan-labels .hit{color:var(--accent);font-weight:650}.plan-note{color:var(--text-3);margin-top:4px;font-size:12.5px}.accent-preview{width:120px;height:120px;margin:28px auto 0;padding:6px}.ob-body.is-done{justify-content:center}.done{text-align:center;flex-direction:column;align-items:center;display:flex}.done-mark{width:132px;height:132px;margin-bottom:26px;padding:6px}.summary{background:var(--surface);border:1px solid var(--hair);width:100%;box-shadow:var(--sheen);text-align:left;animation:rise .7s .3s var(--ease) both;border-radius:20px;margin-top:22px;padding:4px 18px}.summary div{justify-content:space-between;padding:14px 0;font-size:16px;display:flex}.summary div+div{border-top:1px solid var(--hair)}.summary span{color:var(--text-2)}.summary b{font-variant-numeric:tabular-nums;font-weight:650}.done .ob-sub{margin-top:16px}.welcome h1{font-family:var(--display);letter-spacing:-.05em;animation:rise 1s .3s var(--ease) both;font-size:60px;font-weight:800;line-height:.95}.welcome p{color:var(--text-2);max-width:330px;animation:rise 1s .4s var(--ease) both;margin-top:16px;font-size:19px;line-height:1.45}@keyframes draw{to{stroke-dashoffset:0}}.text-in{border:0;border-bottom:2px solid var(--surface-2);width:100%;font-family:var(--display);letter-spacing:-.03em;background:0 0;padding:8px 0;font-size:38px;font-weight:650;transition:border-color .3s}.text-in:focus{border-color:var(--accent)}.text-in::placeholder{color:var(--text-3)}.num-row{gap:12px;display:flex}.num{background:var(--surface);border:1px solid var(--hair);box-shadow:var(--sheen);border-radius:20px;flex:1;align-items:baseline;gap:6px;padding:16px 18px;transition:border-color .25s,box-shadow .25s;display:flex}.num:focus-within{border-color:color-mix(in oklab, var(--accent) 70%, transparent);box-shadow:var(--sheen), 0 0 0 4px var(--accent-soft)}.num input{width:100%;min-width:0;font-family:var(--display);letter-spacing:-.03em;font-variant-numeric:tabular-nums;background:0 0;border:0;font-size:42px;font-weight:700}.num input::placeholder{color:var(--text-3)}.num span{color:var(--text-2);white-space:nowrap;font-size:16px;font-weight:500}.num-cap{color:var(--text-2);margin:0 0 8px 4px;font-size:13px;font-weight:500}.choices{flex-direction:column;gap:10px;display:flex}.choice{text-align:left;background:var(--surface);border:1px solid var(--hair);box-shadow:var(--sheen);transition:border-color .25s, background .25s, transform .2s var(--ease);border-radius:20px;align-items:center;gap:14px;padding:16px 18px;display:flex}.choice:active{transform:scale(.98)}.choice.on{border-color:color-mix(in oklab, var(--accent) 70%, transparent);background:linear-gradient(180deg, color-mix(in oklab, var(--accent) 14%, #141416), #0e0e10)}.choice-dot{border:2px solid var(--text-3);width:22px;height:22px;transition:all .25s var(--ease);border-radius:50%;flex:none}.choice.on .choice-dot{border:6px solid var(--accent)}.choice b{font-size:17px;font-weight:600;display:block}.choice small{color:var(--text-2);margin-top:3px;font-size:14px;display:block}.seg{background:var(--surface-2);border-radius:16px;padding:4px;display:flex}.seg button{height:46px;color:var(--text-2);border-radius:12px;flex:1;font-weight:600;transition:background .25s,color .25s,box-shadow .25s}.seg button.on{color:var(--text);box-shadow:var(--sheen), 0 4px 12px -4px #000c;background:#2c2c31}.target-hero{text-align:center;margin-top:32px}.target-hero input{text-align:center;width:100%;font-family:var(--display);letter-spacing:-.05em;font-variant-numeric:tabular-nums;color:var(--accent);background:0 0;border:0;font-size:84px;font-weight:800}.target-hero .unit{color:var(--text-2);margin-top:-4px;font-size:14px}.target-row{align-items:center;gap:10px;display:flex}.target-row input{border-radius:18px;flex:1;min-width:0;transition:background .2s}.target-row input:focus{background:#ffffff0a}.target-step{background:var(--accent-soft);width:52px;height:52px;color:var(--accent);transition:transform .15s var(--ease);border-radius:50%;flex:none;place-items:center;display:grid}.target-step:active{transform:scale(.9)}.target-step svg{width:22px;height:22px}.sheet .target-hero{margin-top:4px}.sheet .target-hero input{font-size:64px}.target-pace{text-align:center;margin-top:12px;font-size:14px;line-height:1.5}.eq-goal{text-align:center;color:var(--text-3);border-radius:12px;margin:-4px -8px;padding:4px 8px;font-size:13px;transition:background .2s}.eq-goal:active,.eq-goal:hover{background:#ffffff0f}.row-edit{align-items:center;gap:14px;display:flex}.stat-row{gap:10px;margin-top:28px;display:flex}.stat{background:var(--surface);border:1px solid var(--hair);box-shadow:var(--sheen);border-radius:18px;flex:1;padding:14px 16px}.stat b{font-family:var(--display);letter-spacing:-.02em;font-size:22px;font-weight:700;display:block}.stat span{color:var(--text-2);font-size:12px}.swatches{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.swatch{aspect-ratio:1;outline-offset:4px;transition:outline-color .25s, transform .3s var(--ease);border-radius:50%;outline:2px solid #0000;position:relative;box-shadow:inset 0 2px #ffffff4d,inset 0 -6px 12px #00000040,0 10px 20px -10px #000000e6}.swatch.on{outline-color:var(--text);transform:scale(1.06)}.swatch.custom{background:conic-gradient(from 90deg,#ff453a,#ffd60a,#30d158,#64d2ff,#bf5af2,#ff453a);overflow:hidden}.swatch.custom input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.dock{z-index:30;left:50%;bottom:calc(var(--safe-bottom) + 12px);align-items:center;gap:10px;width:min(100% - 32px,488px);display:flex;position:fixed;transform:translate(-50%)}.tabs{-webkit-backdrop-filter:blur(24px)saturate(180%);background:#1c1c20b8;border:1px solid #ffffff17;border-radius:30px;flex:1;padding:6px;display:flex;box-shadow:inset 0 1px #ffffff14,0 20px 40px -12px #000000e6}.tab{height:50px;color:var(--text-3);transition:color .25s, background .3s var(--ease);border-radius:24px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:10.5px;font-weight:600;display:flex}.tab svg{width:23px;height:23px}.tab.on{color:var(--accent);background:#ffffff12}.fab{background:linear-gradient(180deg, var(--accent-hi) -30%, var(--accent) 55%, var(--accent-lo) 140%);width:62px;height:62px;color:var(--accent-ink);box-shadow:inset 0 1px 0 #ffffff73, 0 16px 30px -10px color-mix(in oklab, var(--accent) 75%, transparent);transition:transform .25s var(--ease);border-radius:50%;flex:none;place-items:center;display:grid}.fab:active{transform:scale(.92)}.fab svg{width:28px;height:28px}.fab.on{outline:2px solid var(--text);outline-offset:3px}.top{justify-content:space-between;align-items:center;margin:6px 0 18px;display:flex}.date-nav{align-items:center;gap:4px;margin-left:-8px;display:flex}.date-nav button.arrow{width:34px;height:34px;color:var(--text-2);border-radius:50%;place-items:center;display:grid}.date-nav button.arrow:disabled{opacity:.2}.date-nav svg{width:20px;height:20px}.date-sub{color:var(--text-2);margin-top:3px;font-size:14px}.streak{background:var(--surface);border:1px solid var(--hair);height:36px;box-shadow:var(--sheen);font-family:var(--display);border-radius:18px;align-items:center;gap:6px;padding:0 14px 0 10px;font-size:15px;font-weight:650;display:inline-flex}.streak svg{color:#ff9f0a;width:18px;height:18px}.streak.cold svg{color:var(--text-3)}.hero{background:radial-gradient(90% 70% at 50% 0%, color-mix(in oklab, var(--accent) 14%, transparent), transparent 70%), var(--surface);padding:24px 20px 20px;overflow:hidden}.ring{width:216px;height:216px;margin:0 auto;position:relative}.ring svg{width:100%;height:100%;overflow:visible;transform:rotate(-90deg)}.ring .arc{transition:stroke-dashoffset 1.1s var(--ease)}.ring .arc-glow{filter:blur(10px);opacity:.55;transition:stroke-dashoffset 1.1s var(--ease)}.ring-mid{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.ring-mid b{font-family:var(--display);letter-spacing:-.05em;font-variant-numeric:tabular-nums;font-size:54px;font-weight:750;line-height:1}.ring-mid span{color:var(--text-2);margin-top:6px;font-size:14px}.equation{color:var(--text-3);justify-content:center;align-items:center;gap:12px;margin-top:18px;font-size:13px;display:flex}.equation div{text-align:center}.equation b{font-family:var(--display);color:var(--text);font-variant-numeric:tabular-nums;font-size:17px;font-weight:650;display:block}.equation .op{color:var(--text-3);font-size:17px}.macros{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px;display:grid}.macro{padding:16px 14px}.macro .name{color:var(--text-2);font-size:13px;font-weight:500}.macro .val{font-family:var(--display);letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-top:4px;font-size:24px;font-weight:700}.macro .val small{color:var(--text-3);letter-spacing:0;font-size:13px;font-weight:500}.bar{background:#ffffff12;border-radius:3px;height:6px;margin-top:12px;overflow:hidden}.bar>i{height:100%;transition:width 1s var(--ease);border-radius:3px;display:block}.bar.p>i{background:linear-gradient(90deg, var(--accent-lo), var(--accent-hi))}.bar.c>i{background:linear-gradient(90deg, color-mix(in oklab, var(--accent) 45%, #3a7bd5), color-mix(in oklab, var(--accent) 35%, #8fd3ff))}.bar.f>i{background:linear-gradient(90deg, color-mix(in oklab, var(--accent) 40%, #9b51e0), color-mix(in oklab, var(--accent) 30%, #e0aaff))}.diary{margin-top:12px;padding:6px 20px}.meal{padding:16px 0}.meal+.meal{border-top:1px solid var(--hair)}.meal-head{justify-content:space-between;align-items:center;display:flex}.meal-head h3{letter-spacing:-.01em;font-size:17px;font-weight:650}.meal-head .kc{color:var(--text-2);font-variant-numeric:tabular-nums;margin-top:2px;font-size:14px;font-weight:500}.add{background:var(--accent-soft);width:38px;height:38px;color:var(--accent);transition:transform .2s var(--ease), background .2s;border-radius:50%;flex:none;place-items:center;display:grid}.add:active{background:color-mix(in oklab, var(--accent) 28%, transparent);transform:scale(.9)}.add svg{width:20px;height:20px}.entry{text-align:left;width:100%;animation:rise .5s var(--ease) both;background:#ffffff09;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;margin-top:8px;padding:10px 12px;font-size:15px;display:flex}.entry small{color:var(--text-3);margin-top:2px;font-size:12px;display:block}.entry .k{font-family:var(--display);font-variant-numeric:tabular-nums;font-weight:650}.tiles{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.tile{text-align:left;flex-direction:column;min-height:176px;padding:18px;display:flex;overflow:hidden}.tile-head{color:var(--text-2);align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.tile-head svg{width:18px;height:18px}.tile .big{font-family:var(--display);letter-spacing:-.04em;font-variant-numeric:tabular-nums;margin-top:auto;font-size:36px;font-weight:750;position:relative}.tile .big small{color:var(--text-2);letter-spacing:0;margin-left:3px;font-size:15px;font-weight:500}.tile .sub{color:var(--text-2);margin-top:2px;font-size:13px;position:relative}.water{position:relative}.water .tile-head svg{color:var(--water)}.water-body{margin-top:auto}.water .big,.water .sub{white-space:nowrap}.water .jug{position:absolute;top:14px;right:14px}.water .big{letter-spacing:-.04em;margin-top:0;font-size:30px}.water .big small{font-size:13px}.jug{filter:drop-shadow(0 6px 14px #5ac8fa40);flex:none;width:44px;height:58px;overflow:visible}.jug-water{transition:transform .9s var(--ease)}.jug-wave{animation:2.6s linear infinite wave}@keyframes wave{0%{transform:translate(0)}to{transform:translate(30px)}}.water-ctrl{gap:8px;margin-top:12px;display:flex;position:relative}.water-ctrl button{font-variant-numeric:tabular-nums;background:#ffffff14;border-radius:12px;flex:1;place-items:center;height:38px;font-size:14px;font-weight:650;display:grid}.water-ctrl button[aria-label^=Add]{color:var(--water);background:#5ac8fa1f}.water-ctrl button svg{width:18px;height:18px}.weigh .tile-head svg{color:var(--accent)}.scrim{-webkit-backdrop-filter:blur(6px);z-index:50;background:#0000008c;animation:.3s fade;position:fixed;inset:0}.sheet{z-index:51;max-width:520px;left:0;right:0;bottom:calc(100% - var(--vv-top,0px) - var(--vv-h,100%));max-height:calc(var(--vv-h,100dvh) - var(--safe-top) - 12px);overscroll-behavior:contain;border:1px solid var(--hair);box-shadow:var(--sheen), 0 -30px 60px -20px #000000e6;padding:10px 20px calc(var(--safe-bottom) + 20px);animation:sheet-up .5s var(--ease);background:linear-gradient(#1c1c20,#111113 40%);border-bottom:0;border-radius:30px 30px 0 0;margin:0 auto;position:fixed;overflow-y:auto}.grabber{background:#ffffff2e;border-radius:3px;width:38px;height:5px;margin:0 auto 18px}.sheet h2{font-family:var(--display);letter-spacing:-.03em;margin-bottom:16px;font-size:24px;font-weight:700}.sheet .num{background:#ffffff0d;padding:12px 16px}.sheet .num input{font-size:26px}.sheet .grid2{grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;display:grid}.sheet .text{border:1px solid var(--hair);background:#ffffff0d;border-radius:16px;width:100%;padding:15px 16px;font-size:17px}.sheet .text:focus{border-color:color-mix(in oklab, var(--accent) 70%, transparent)}.sheet .btn{margin-top:16px}.sheet>.btn:not(.ghost){z-index:1;position:sticky;bottom:0;box-shadow:inset 0 1px #fff6,0 -12px 24px 6px #121214}:root[data-kb] .sheet{padding-bottom:12px}:root[data-kb] .sheet.tall{height:calc(var(--vv-h) - 8px);border-radius:22px 22px 0 0}:root[data-kb] .sheet.tall .grabber{margin-bottom:8px}:root[data-kb] .sheet.tall .search-head{margin-bottom:10px}:root[data-kb] .kcal-in input{font-size:44px}:root[data-kb] .kcal-in+.muted{margin-bottom:8px!important}:root[data-kb] .food-kcal{margin-top:8px}:root[data-kb] .food-kcal b{font-size:42px}.kcal-in{justify-content:center;align-items:baseline;gap:8px;margin:4px 0 10px;display:flex}.kcal-in input{text-align:center;width:100%;font-family:var(--display);letter-spacing:-.05em;color:var(--accent);font-variant-numeric:tabular-nums;background:0 0;border:0;font-size:64px;font-weight:800}.kcal-in input::placeholder{color:var(--text-3)}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:none}}@keyframes fade{0%{opacity:0}}.profile-head{align-items:center;gap:16px;margin:6px 0 20px;display:flex}.avatar{background:linear-gradient(145deg, var(--accent-hi), var(--accent) 50%, var(--accent-lo));width:64px;height:64px;color:var(--accent-ink);font-family:var(--display);box-shadow:inset 0 1px 0 #fff6, 0 14px 30px -12px color-mix(in oklab, var(--accent) 70%, transparent);border-radius:50%;flex:none;place-items:center;font-size:28px;font-weight:750;display:grid}.group{padding:4px 18px}.group+.group,.card+.group,.group+.card{margin-top:14px}.group-label{color:var(--text-3);margin:22px 4px 8px;font-size:13px;font-weight:600}.row{justify-content:space-between;align-items:center;padding:14px 0;font-size:16px;display:flex}.row+.row{border-top:1px solid var(--hair)}.row span{color:var(--text-2);font-variant-numeric:tabular-nums}.row button{color:var(--accent);font-weight:600}.empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:64dvh;display:flex}.empty-art{background:var(--surface);border:1px solid var(--hair);width:88px;height:88px;box-shadow:var(--sheen), 0 24px 50px -20px color-mix(in oklab, var(--accent) 50%, transparent);color:var(--accent);border-radius:26px;place-items:center;margin-bottom:8px;display:grid}.empty-art svg{width:40px;height:40px}.scan{background:#000;position:fixed;inset:0;overflow:hidden}.scan-video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.scan:after{content:"";pointer-events:none;background:linear-gradient(#000000b3 0%,#0000 24% 62%,#000000d9 100%);position:absolute;inset:0}.scan-top{z-index:2;padding:calc(var(--safe-top) + 16px) 20px 0;justify-content:space-between;align-items:center;max-width:520px;margin:0 auto;display:flex;position:absolute;top:0;left:0;right:0}.scan-pill{-webkit-backdrop-filter:blur(20px);background:#1c1c2099;border:1px solid #ffffff1f;border-radius:20px;align-items:center;gap:8px;height:40px;padding:0 16px;font-size:14px;font-weight:600;display:inline-flex}.scan-pill svg{width:18px;height:18px}.viewfinder{z-index:2;aspect-ratio:1.55;width:min(78vw,340px);transition:box-shadow .4s var(--ease);border-radius:28px;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 100vmax #00000080}.viewfinder .c{border:4px solid var(--accent);width:38px;height:38px;filter:drop-shadow(0 4px 10px color-mix(in oklab, var(--accent) 60%, transparent));position:absolute}.viewfinder .tl{border-bottom:0;border-right:0;border-radius:28px 0 0;top:-2px;left:-2px}.viewfinder .tr{border-bottom:0;border-left:0;border-radius:0 28px 0 0;top:-2px;right:-2px}.viewfinder .bl{border-top:0;border-right:0;border-radius:0 0 0 28px;bottom:-2px;left:-2px}.viewfinder .br{border-top:0;border-left:0;border-radius:0 0 28px;bottom:-2px;right:-2px}.laser{background:linear-gradient(90deg, transparent, var(--accent-hi), transparent);height:2px;box-shadow:0 6px 18px 2px color-mix(in oklab, var(--accent) 50%, transparent);border-radius:1px;animation:2.2s ease-in-out infinite sweep;position:absolute;top:50%;left:10%;right:10%}.viewfinder.busy .laser{animation-duration:.7s}.vf-hint{text-align:center;color:#ffffffd9;font-size:15px;font-weight:600;position:absolute;top:calc(100% + 22px);left:0;right:0}@keyframes sweep{0%,to{top:18%}50%{top:82%}}.scan-msg{z-index:2;text-align:center;color:var(--text-2);max-width:400px;margin:0 auto;line-height:1.5;position:absolute;top:38%;left:24px;right:24px}.food-head{align-items:center;gap:14px;display:flex}.food-img{object-fit:cover;width:56px;height:56px;box-shadow:var(--sheen);background:#fff;border-radius:14px;flex:none}.food-name{text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2;display:-webkit-box;overflow:hidden;margin:0!important;font-size:20px!important}.food-meta{color:var(--text-3);margin-top:3px;font-size:13px}.icon-btn{width:34px;height:34px;color:var(--text-2);background:#ffffff14;border-radius:50%;flex:none;align-self:flex-start;place-items:center;margin-left:auto;display:grid}.icon-btn svg{width:16px;height:16px}.food-kcal{justify-content:center;align-items:baseline;gap:8px;margin-top:18px;display:flex}.food-kcal b{font-family:var(--display);letter-spacing:-.05em;color:var(--accent);font-variant-numeric:tabular-nums;font-size:60px;font-weight:800;line-height:1}.food-kcal span{color:var(--text-2);font-size:16px}.food-macros{grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0;display:grid}.food-macros div{text-align:center;color:var(--text-3);background:#ffffff0a;border-radius:14px;padding:10px 0;font-size:12px}.food-macros b{font-family:var(--display);color:var(--text);font-size:18px;font-weight:650;display:block}.chip-row{scrollbar-width:none;gap:8px;margin:0 -20px;padding:2px 20px;display:flex;overflow-x:auto}.pick{border:1px solid var(--hair);height:38px;color:var(--text-2);background:#ffffff0f;border-radius:19px;flex:none;padding:0 14px;font-size:14px;font-weight:600;transition:background .2s,color .2s,border-color .2s}.pick.small{height:34px;font-size:13px}.pick.on{background:var(--accent-soft);border-color:color-mix(in oklab, var(--accent) 60%, transparent);color:var(--accent)}.stepper{background:#ffffff0a;border-radius:16px;justify-content:space-between;align-items:center;margin-top:12px;padding:8px 8px 8px 16px;display:flex}.stepper>div{align-items:center;gap:14px;display:flex}.stepper b{font-family:var(--display);text-align:center;font-variant-numeric:tabular-nums;min-width:28px;font-size:20px}.stepper button{background:#ffffff14;border-radius:12px;place-items:center;width:38px;height:38px;display:grid}.stepper button svg{width:16px;height:16px}.sheet-alt{width:100%;color:var(--accent);justify-content:center;align-items:center;gap:8px;margin-top:12px;padding:10px;font-size:15px;font-weight:600;display:flex}.sheet-alt svg{width:20px;height:20px}.trend-card{margin-top:18px;padding:18px 18px 14px}.trend-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.trend-label{color:var(--text-2);font-size:14px;font-weight:600}.trend-big{font-family:var(--display);letter-spacing:-.045em;font-variant-numeric:tabular-nums;font-size:44px;font-weight:750;line-height:1.1}.trend-big small{color:var(--text-2);letter-spacing:0;margin-left:4px;font-size:16px;font-weight:500}.rate{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text-2);background:#ffffff0f;border-radius:14px;margin-top:4px;padding:7px 12px;font-size:14px;font-weight:650}.rate.down{background:var(--accent-soft);color:var(--accent)}.rate.up{background:var(--amber-bg);color:var(--amber)}.chart{width:100%;height:auto;margin-top:14px;display:block;overflow:visible}.chart .grid{stroke:#ffffff0f;stroke-width:1px}.chart .axis{fill:var(--text-3);font-size:10.5px;font-family:var(--display);font-variant-numeric:tabular-nums}.chart .goal{stroke:var(--text-3);stroke-width:1.2px;stroke-dasharray:3 4}.chart .goal-t{fill:var(--text-2)}.chart .sinker{stroke:#ffffff1f;stroke-width:1px}.chart .dot{fill:#0e0e10;stroke:var(--text-3);stroke-width:1.4px}.chart .trend-line{fill:none;stroke:var(--accent);stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 4px 10px color-mix(in oklab, var(--accent) 45%, transparent))}.chart .end{fill:var(--accent);stroke:#000;stroke-width:2.5px}.chart-wait{color:var(--text-3);text-align:center;border:1px dashed #ffffff1a;border-radius:16px;margin:18px 0 4px;padding:22px 18px;font-size:14px;line-height:1.5}.trend-ranges{margin:12px -18px 0;padding:2px 18px}.stats{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.stat-tile{flex-direction:column;min-height:150px;padding:16px;display:flex}.stat-tile .big{font-family:var(--display);letter-spacing:-.04em;font-variant-numeric:tabular-nums;margin-top:auto;font-size:30px;font-weight:750}.stat-tile .big small{color:var(--text-2);letter-spacing:0;margin-left:4px;font-size:13px;font-weight:500}.stat-tile .sub{color:var(--text-3);margin-top:4px;font-size:12.5px;line-height:1.35}.foot-note{color:var(--text-3);margin:16px 4px 0;font-size:13px;line-height:1.5}.sheet.tall{height:calc(var(--vv-h,100dvh) - var(--safe-top) - 44px);flex-direction:column;padding-bottom:0;display:flex;overflow:hidden}.search-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.search-head h2{margin:0}.search-head .icon-btn{align-self:center}.search-box{border:1px solid var(--hair);background:#ffffff0f;border-radius:16px;align-items:center;gap:10px;height:52px;padding:0 14px;transition:border-color .25s,box-shadow .25s;display:flex}.search-box:focus-within{border-color:color-mix(in oklab, var(--accent) 70%, transparent);box-shadow:0 0 0 4px var(--accent-soft)}.search-box>svg{width:20px;height:20px;color:var(--text-3);flex:none}.search-box input{appearance:none;background:0 0;border:0;flex:1;min-width:0;font-size:17px}.search-box input::-webkit-search-cancel-button{display:none}.search-box input::placeholder{color:var(--text-3)}.search-box button{width:26px;height:26px;color:var(--text-2);background:#ffffff1f;border-radius:50%;flex:none;place-items:center;display:grid}.search-box button svg{width:12px;height:12px}.pick svg{vertical-align:middle;width:16px;height:16px;margin:-2px 6px 0 -2px}.search-list{padding:0 20px calc(var(--safe-bottom) + 24px);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;margin:6px -20px 0;overflow-y:auto}.list-label{color:var(--text-3);align-items:center;gap:8px;margin:18px 2px 6px;font-size:13px;font-weight:600;display:flex}.list-empty{color:var(--text-3);padding:6px 2px;font-size:14px;line-height:1.5}.spin{border:2px solid var(--text-3);border-top-color:var(--accent);border-radius:50%;width:12px;height:12px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.stale{opacity:.45;transition:opacity .2s}.hit.skel{padding:14px 0;animation:.3s both fade}.hit.skel>div{flex:1}.hit.skel i{background:linear-gradient(90deg,#ffffff0d,#ffffff1c,#ffffff0d) 0 0/200% 100%;border-radius:6px;height:12px;animation:1.1s linear infinite shimmer;display:block}.hit.skel i:first-child{width:62%;height:14px}.hit.skel i+i{width:34%;margin-top:8px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.hit{border-bottom:1px solid var(--hair);align-items:center;gap:10px;animation:.3s both fade;display:flex}.hit-main{text-align:left;flex:1;min-width:0;padding:12px 0}.hit-main b{text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:550;display:block;overflow:hidden}.hit-main small{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;margin-top:2px;font-size:13px;display:block;overflow:hidden}.hit .add{width:34px;height:34px}.add.done{background:var(--accent);color:var(--accent-ink);animation:pop .35s var(--ease)}@keyframes pop{40%{transform:scale(1.18)}}.mini{background:var(--accent-soft);height:32px;color:var(--accent);font-variant-numeric:tabular-nums;transition:transform .2s var(--ease);border-radius:16px;align-items:center;gap:7px;margin:10px 8px 0 0;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex}.mini:active{transform:scale(.95)}.mini svg{width:15px;height:15px}.mini.quiet{color:var(--text-2);background:#ffffff0d}.meal-preview{background:#ffffff0a;border-radius:16px;margin-top:12px;padding:4px 14px}.meal-preview div{justify-content:space-between;gap:12px;padding:10px 0;font-size:15px;display:flex}.meal-preview div+div{border-top:1px solid var(--hair)}.meal-preview span{color:var(--text-2);font-variant-numeric:tabular-nums;flex:none}.meal-preview .sum{font-weight:650}.meal-preview .sum span{color:var(--accent)}.row-main{min-width:0}.row-main small{color:var(--text-3);margin-top:2px;font-size:13px;display:block}.row button.quiet{color:var(--text-3);font-size:14px;font-weight:500}.row button.danger{color:var(--amber);font-size:14px}.side-brand,.fab-label{display:none}.today-grid{flex-direction:column;display:flex}.today-grid .col-a,.today-grid .col-b{display:contents}.today-grid .tiles{order:2}@media (width>=900px){:root{--side:248px;--safe-top:0px;--safe-bottom:0px}.dock{width:var(--side);border-right:1px solid var(--hair);-webkit-backdrop-filter:blur(24px);background:linear-gradient(#141417db,#080809e6);flex-direction:column;align-items:stretch;gap:0;padding:28px 16px 24px;top:0;bottom:0;left:0;transform:none}.side-brand{font-family:var(--display);letter-spacing:-.035em;align-items:center;gap:12px;padding:0 8px 30px;font-size:22px;font-weight:750;display:flex}.side-mark{border:1px solid var(--hair);width:40px;height:40px;box-shadow:0 10px 24px -10px color-mix(in oklab, var(--accent) 60%, transparent);background:radial-gradient(90% 90% at 50% 0,#1d1d21,#060607);border-radius:11px;padding:2px;display:block}.tabs{box-shadow:none;-webkit-backdrop-filter:none;background:0 0;border:0;border-radius:0;flex-direction:column;flex:none;gap:4px;padding:0}.tab{height:46px;color:var(--text-2);border-radius:14px;flex-direction:row;flex:none;justify-content:flex-start;gap:12px;padding:0 14px;font-size:15px;font-weight:600}.tab svg{width:20px;height:20px}.tab:hover{color:var(--text);background:#ffffff0a}.tab.on{background:var(--accent-soft);color:var(--accent)}.fab{border-radius:16px;justify-content:center;align-items:center;gap:10px;width:100%;height:52px;margin-top:auto;display:flex}.fab svg{width:22px;height:22px}.fab-label{font-size:15px;font-weight:650;display:inline}body:before{left:var(--side)}.screen{max-width:none;margin:0 0 0 var(--side);padding:40px 48px 64px}.screen>*{max-width:1080px;margin-inline:auto}.screen>.top{margin-bottom:24px}.title{font-size:40px}.today-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start;gap:20px;display:grid}.today-grid .col-a,.today-grid .col-b{display:block}.today-grid .col-b .diary{margin-top:0}.today-grid .tiles .tile{min-height:160px}.prog-grid{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);grid-template-areas:"chart stats""notice notice";gap:16px;display:grid}.prog-grid .trend-card{grid-area:chart;margin-top:0}.prog-grid .stats{grid-area:stats;grid-auto-rows:1fr;margin-top:0}.prog-grid .notice{grid-area:notice;margin-top:0!important}.me-cols{grid-template-columns:1fr 1fr;align-items:start;gap:0 28px;display:grid}.sheet{border-bottom:1px solid var(--hair);width:min(480px,100vw - 48px);max-height:86vh;animation:modal-in .35s var(--ease);border-radius:28px;margin:0;padding:24px;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.sheet.tall{height:min(760px,86vh);padding-bottom:0}.grabber{display:none}.sheet>.btn:not(.ghost){box-shadow:inset 0 1px 0 #fff6, 0 14px 30px -12px color-mix(in oklab, var(--accent) 70%, transparent);position:static}.chip-row{margin:0 -24px;padding:2px 24px}.search-list{margin:6px -24px 0;padding:0 24px 24px}.scan{left:var(--side)}.ob{border:1px solid var(--hair);max-width:540px;min-height:0;box-shadow:var(--sheen), 0 50px 120px -40px color-mix(in oklab, var(--accent) 40%, transparent);background:linear-gradient(#18181beb,#0a0a0cf0);border-radius:32px;margin:5vh auto;padding:32px 40px}.ob-body{min-height:300px}.ob-foot{background:linear-gradient(#0000,#0b0b0d 32%);border-radius:0 0 32px 32px;margin:0 -40px -32px;padding:20px 40px 32px}.target-hero input{font-size:72px}.me-cols .swatches{grid-template-columns:repeat(8,1fr);gap:12px}.welcome-mark{margin-top:8px}.welcome{padding-top:32px}.gate{justify-content:center;max-width:1040px;padding:48px}.gate-hero{text-align:left;flex-direction:row;flex:none;align-items:center;gap:72px}.gate-icon{border-radius:68px;flex:none;width:300px;height:300px;padding:14px}.gate h1{margin-top:0;font-size:64px}.gate .tag,.gate-why{text-align:left;max-width:460px;margin-left:0}.gate-copy{flex:1;min-width:0}.steps{max-width:480px}.steps>.btn{max-width:320px}}@keyframes modal-in{0%{opacity:0;transform:translate(-50%,-47%)scale(.97)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}}
