:root{--ink:#17352a;--ink2:#46645a;--paper:#edf2ec;--surface:#f8fbf7;--line:#d3dfd6;--food:#c2471b;--health:#0f6b63;--money:#a86a12;
--serif:"Young Serif",Georgia,serif;--sans:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;--bar:62px;color-scheme:light}
@media (prefers-color-scheme:dark){:root{--ink:#e3eee6;--ink2:#a7bcb1;--paper:#0f1a15;--surface:#16241d;--line:#29392f;--food:#f07a4f;--health:#3cc2b2;--money:#e7a947;color-scheme:dark}}
*{box-sizing:border-box}[hidden]{display:none!important}
html,body{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 var(--sans);-webkit-text-size-adjust:100%}
a{color:inherit}button{font:inherit;color:inherit}
:focus-visible{outline:2.5px solid var(--health);outline-offset:2px}
.app{display:grid;grid-template-rows:auto 1fr auto;height:100dvh;height:100vh}
@supports (height:100dvh){.app{height:100dvh}}
header.top{display:flex;align-items:center;gap:12px;padding:calc(env(safe-area-inset-top,0px) + 10px) 16px 10px;border-bottom:1px solid var(--line);background:var(--paper)}
.mark{display:flex;align-items:center;gap:9px;text-decoration:none;font:22px/1 var(--serif);letter-spacing:-.01em;background:none;border:0;padding:0;cursor:pointer}
.mark svg{width:28px;height:28px;flex:none}
.where{font-size:14px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.menu{margin-left:auto;position:relative}
.inst{margin-left:auto;border:1.5px solid var(--ink);background:none;border-radius:999px;padding:7px 13px;font-weight:700;font-size:14px;cursor:pointer;white-space:nowrap}
.inst+.menu{margin-left:6px}
@media (max-width:420px){.where{display:none}}
.menu>button{border:1px solid var(--line);background:var(--surface);border-radius:999px;width:38px;height:38px;cursor:pointer;font-size:20px;line-height:1}
.menu ul{position:absolute;right:0;top:44px;list-style:none;margin:0;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:14px;min-width:230px;box-shadow:0 10px 30px rgba(0,0,0,.18);z-index:20}
.menu li button,.menu li a{display:block;width:100%;text-align:left;background:none;border:0;padding:10px 12px;border-radius:9px;text-decoration:none;cursor:pointer;font-size:15px}
.menu li button:hover,.menu li a:hover{background:var(--paper)}
main{position:relative;min-height:0;overflow:hidden}
.view{position:absolute;inset:0}
.home{overflow-y:auto;-webkit-overflow-scrolling:touch}
.frame{background:var(--paper)}.frame iframe{border:0;width:100%;height:100%;display:block;background:#fff}
.wait{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:24px;background:var(--paper);color:var(--ink2)}
.wait b{display:block;font:20px var(--serif);color:var(--ink);margin-bottom:6px}.wait button{margin-top:12px}
nav.tabs{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);background:var(--surface);padding-bottom:env(safe-area-inset-bottom,0px)}
nav.tabs button{background:none;border:0;cursor:pointer;height:var(--bar);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:12.5px;font-weight:600;color:var(--ink2);position:relative}
nav.tabs svg{width:24px;height:24px}
nav.tabs button[aria-selected=true]{color:var(--c,var(--ink))}
nav.tabs button[aria-selected=true]::before{content:"";position:absolute;top:0;left:22%;right:22%;height:3px;border-radius:0 0 3px 3px;background:var(--c,var(--ink))}
nav.tabs [data-tab=food]{--c:var(--food)}nav.tabs [data-tab=health]{--c:var(--health)}nav.tabs [data-tab=money]{--c:var(--money)}
@media (min-width:900px){
 .app{grid-template-rows:auto 1fr}
 nav.tabs{grid-row:1;grid-column:1;justify-self:center;align-self:start;display:flex;gap:4px;border:0;background:none;padding:12px 0 0;z-index:5;pointer-events:none}
 nav.tabs button{pointer-events:auto;height:38px;flex-direction:row;gap:7px;padding:0 14px;border-radius:999px;font-size:14.5px}
 nav.tabs svg{width:19px;height:19px}
 nav.tabs button[aria-selected=true]{background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--c,var(--ink))}
 nav.tabs button[aria-selected=true]::before{display:none}
 header.top{grid-row:1;grid-column:1}
}
/* home */
.wrap{max-width:980px;margin:0 auto;padding:28px 18px 40px}
.hero{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:center}
@media (min-width:760px){.hero{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:40px}}
.ring{width:min(100%,380px);margin:0 auto;display:block;overflow:visible}
.ring .seg{fill:none;stroke-width:34;cursor:pointer;transition:stroke-width .2s}
.ring .seg:hover,.ring .seg:focus-visible{stroke-width:40;outline:none}
.ring text{font:600 15px var(--sans);fill:var(--ink)}
.ring .mid{font:21px var(--serif);fill:var(--ink)}.ring .mid2{font:13.5px var(--sans);fill:var(--ink2)}
@media (prefers-reduced-motion:no-preference){.ring .seg{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);animation:draw .9s cubic-bezier(.3,.7,.2,1) forwards}.ring .s2{animation-delay:.25s}.ring .s3{animation-delay:.5s}}
@keyframes draw{to{stroke-dashoffset:0}}
h1{font:400 clamp(34px,6vw,52px)/1.08 var(--serif);letter-spacing:-.015em;margin:0 0 14px}
.lede{font-size:18px;color:var(--ink2);max-width:46ch;margin:0}
.parts{margin:34px 0 0;display:grid;gap:0;border-top:1px solid var(--line)}
.part{display:grid;grid-template-columns:6px minmax(0,1fr) auto;gap:16px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);text-decoration:none}
.part i{align-self:stretch;border-radius:3px;background:var(--c)}
.part h2{font:22px/1.2 var(--serif);margin:0}.part h2 small{font:600 14px var(--sans);color:var(--ink2);margin-left:8px}
.part p{margin:4px 0 0;color:var(--ink2);max-width:60ch}
.part .go{font-weight:700;color:var(--c);white-space:nowrap}
.part:hover h2{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:4px}
.links{margin:34px 0 0}
.links h2,.install h2{font:24px/1.2 var(--serif);margin:0 0 12px}
.links ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.links li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start}
.links .dots{display:flex;gap:3px;padding-top:8px}.links .dots span{width:9px;height:9px;border-radius:50%;background:var(--c)}
.links button{all:unset;cursor:pointer;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.install{margin:36px 0 0;padding:22px;border-radius:20px;background:var(--ink);color:var(--paper)}
.install p{margin:0 0 10px;max-width:60ch}.install ol{margin:0 0 6px;padding-left:20px}.install li{margin:4px 0}
.btn{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:999px;padding:12px 20px;font-weight:700;font-size:16px;cursor:pointer;background:var(--paper);color:var(--ink);text-decoration:none}
.btn.dark{background:var(--ink);color:var(--paper)}.btn.line{background:none;box-shadow:inset 0 0 0 1.5px currentColor}
.install .note{font-size:14px;opacity:.85}
.share{display:inline-block;vertical-align:-3px;width:18px;height:18px}
footer.foot{margin:36px 0 0;font-size:14px;color:var(--ink2)}footer.foot p{margin:0 0 8px;max-width:70ch}
/* update / sign-in gate */
.gate{position:fixed;inset:0;z-index:50;background:var(--paper);display:grid;place-items:center;padding:24px;text-align:center}
.gate div{max-width:380px}.gate h2{font:28px/1.15 var(--serif);margin:14px 0 10px}.gate p{color:var(--ink2);margin:0 0 18px}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--bar) + 16px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--paper);padding:10px 16px;border-radius:999px;font-size:14px;z-index:30}
