:root{--ember: #ff6a2b;--ember-soft: color-mix(in oklab, #ff6a2b 16%, transparent)}.wrap{margin-inline:auto;width:100%;max-width:1120px;padding-inline:1rem}@media (min-width: 640px){.wrap{padding-inline:1.5rem}}.ico{width:1.15em;height:1.15em;flex:none}.cta{background:var(--primary);color:var(--primary-foreground);box-shadow:0 10px 30px -10px color-mix(in oklab,var(--primary) 70%,transparent);transition:transform .2s,box-shadow .2s}.cta:hover{transform:translateY(-2px);box-shadow:0 16px 34px -12px color-mix(in oklab,var(--primary) 80%,transparent)}.cta .ico{transition:transform .2s}.cta:hover .ico{transform:translate(3px)}.badge{background:var(--ember-soft);color:color-mix(in oklab,var(--ember) 75%,var(--foreground))}.ember-text{background:linear-gradient(100deg,var(--ember),#ffb347 55%,var(--ember));background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 6s linear infinite}.tick{display:inline-flex;align-items:center;gap:.4rem}.tick .ico{color:var(--success, #16a34a);width:.95rem;height:.95rem;stroke-width:3}.brand-mark{display:inline-flex;border-radius:.6rem;overflow:hidden}.hero-glow{position:absolute;inset:-10% -20% auto;height:620px;pointer-events:none;background:radial-gradient(40% 50% at 70% 30%,color-mix(in oklab,var(--primary) 28%,transparent),transparent 70%),radial-gradient(30% 40% at 85% 60%,color-mix(in oklab,var(--ember) 18%,transparent),transparent 70%);filter:blur(10px);animation:drift 14s ease-in-out infinite alternate}.phone{position:relative;border:1px solid var(--border);border-radius:2.4rem;padding:2.1rem 1rem 1.1rem;background:var(--card);box-shadow:0 40px 80px -30px color-mix(in oklab,var(--primary) 45%,transparent),0 0 0 8px color-mix(in oklab,var(--foreground) 6%,transparent);animation:float 6s ease-in-out infinite}.phone-notch{position:absolute;top:.7rem;left:50%;width:5.5rem;height:1.1rem;translate:-50% 0;border-radius:1rem;background:color-mix(in oklab,var(--foreground) 12%,transparent)}.streak-chip{display:inline-flex;align-items:center;gap:.25rem;border-radius:999px;padding:.25rem .6rem;font-size:11px;font-weight:600;background:var(--ember-soft);color:var(--ember)}.streak-chip b{font-variant-numeric:tabular-nums}.meal{display:flex;align-items:center;justify-content:space-between;gap:.5rem;border-radius:1rem;padding:.6rem .75rem;background:color-mix(in oklab,var(--muted) 60%,transparent);font-size:13px}.meal span{display:flex;flex-direction:column;min-width:0}.meal small{font-size:11px;color:var(--muted-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip{font-style:normal;font-size:11px;font-weight:700;border-radius:999px;padding:.2rem .6rem;border:1px solid var(--border);color:var(--muted-foreground)}.glass{flex:1;height:1.4rem;border-radius:.35rem;border:1.5px solid color-mix(in oklab,var(--primary) 45%,transparent);position:relative;overflow:hidden}.glass:after{content:"";position:absolute;inset:auto 0 0;height:100%;background:linear-gradient(var(--primary),color-mix(in oklab,var(--primary) 70%,#7dd3fc))}.score-ring{stroke-dasharray:86 100}.toast{position:absolute;left:50%;bottom:-1.1rem;translate:-50% 0;display:flex;align-items:center;gap:.4rem;white-space:nowrap;border-radius:999px;padding:.5rem .9rem;font-size:12px;font-weight:600;background:var(--foreground);color:var(--background);box-shadow:0 12px 30px -10px #0006;opacity:0}.stat{display:block;font-family:var(--font-heading);font-size:clamp(1.7rem,4vw,2.3rem);line-height:1.15;color:var(--primary)}.stat-l{display:block;margin-inline:auto;max-width:15em;font-size:13px;color:var(--muted-foreground)}.section-head{margin:0 auto 2.5rem;max-width:42rem;text-align:center}.section-head h2{font-family:var(--font-heading);font-size:clamp(1.7rem,4vw,2.5rem);line-height:1.15;font-weight:700;text-wrap:balance}.section-head p{margin-top:.75rem;color:var(--muted-foreground);font-size:1.05rem}.step{position:relative;display:flex;flex-direction:column;gap:.35rem;border:1px solid var(--border);border-radius:1.4rem;padding:1.4rem;background:var(--card)}.step h3{font-size:1.15rem;font-weight:700}.step p{font-size:.95rem;color:var(--muted-foreground)}.step-ico{display:grid;place-items:center;width:2.9rem;height:2.9rem;border-radius:.9rem;margin-bottom:.4rem;background:color-mix(in oklab,var(--primary) 14%,transparent);color:var(--primary)}.step-ico .ico{width:1.4rem;height:1.4rem}.step-t{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ember)}@media (min-width: 768px){.day-line:before{content:"";position:absolute;top:2.85rem;left:2rem;right:2rem;height:2px;z-index:0;transform-origin:left;background:linear-gradient(90deg,var(--primary),var(--ember));opacity:.5}.day-line .step{z-index:1}}.feature{border:1px solid var(--border);border-radius:1.4rem;padding:1.5rem;background:var(--card);transition:transform .25s,box-shadow .25s,border-color .25s}.feature:hover{transform:translateY(-4px);border-color:color-mix(in oklab,var(--primary) 45%,var(--border));box-shadow:0 22px 40px -24px color-mix(in oklab,var(--primary) 60%,transparent)}.feature-ico{display:grid;place-items:center;width:3rem;height:3rem;border-radius:.9rem;margin-bottom:1rem;background:color-mix(in oklab,var(--primary) 14%,transparent);color:var(--primary);transition:transform .3s}.feature:hover .feature-ico{transform:rotate(-6deg) scale(1.08)}.feature-ico .ico{width:1.5rem;height:1.5rem}.feature h3{margin-bottom:.45rem;font-size:1.2rem;font-weight:700}.feature p{font-size:.95rem;color:var(--muted-foreground)}.kicker{display:inline-flex;align-items:center;gap:.4rem;margin-bottom:.8rem;font-size:13px;font-weight:700;color:var(--ember)}.spot-h{font-family:var(--font-heading);font-size:clamp(1.7rem,4vw,2.5rem);line-height:1.15;font-weight:700;text-wrap:balance}.spot-p{margin-top:1rem;color:var(--muted-foreground);font-size:1.05rem}.spot-list{margin-top:1.25rem;display:flex;flex-direction:column;gap:.7rem}.spot-list li{display:flex;gap:.6rem;font-size:.97rem}.spot-list .ico{margin-top:.2rem;color:var(--primary);stroke-width:3;width:1rem;height:1rem}.spot-card{border:1px solid var(--border);border-radius:1.6rem;padding:1.4rem;background:var(--card);box-shadow:0 30px 60px -36px color-mix(in oklab,var(--primary) 55%,transparent)}.streak-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.45rem}.streak-grid i{aspect-ratio:1;border-radius:.45rem;background:color-mix(in oklab,var(--muted-foreground) 14%,transparent)}.streak-grid i.on{background:var(--primary)}.streak-grid i.freeze{background:transparent;border:2px dashed var(--primary)}.streak-grid i.today{background:var(--ember);box-shadow:0 0 0 4px var(--ember-soft)}.pill{border-radius:999px;padding:.15rem .5rem;border:1px solid var(--border);color:var(--muted-foreground)}.pill.on{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}.chart .trend{stroke-dasharray:100;stroke-dashoffset:0}.board{display:flex;flex-direction:column;gap:.45rem}.board li{display:grid;grid-template-columns:1.4rem 2rem 1fr auto auto;align-items:center;gap:.6rem;border-radius:1rem;padding:.55rem .7rem;background:color-mix(in oklab,var(--muted) 60%,transparent);font-size:.92rem}.board li.me{outline:2px solid color-mix(in oklab,var(--primary) 60%,transparent)}.board .rank{font-weight:700;color:var(--muted-foreground);text-align:center}.board .av{display:grid;place-items:center;width:2rem;height:2rem;border-radius:999px;font-weight:700;font-size:.85rem;color:#fff;background:hsl(var(--h) 75% 52%)}.board .sc{font-weight:700;font-variant-numeric:tabular-nums}.board .st{display:inline-flex;align-items:center;gap:.2rem;font-size:12px;font-weight:600;color:var(--ember)}.board .st .ico{width:.9rem;height:.9rem}.kudos{display:inline-flex;align-items:center;gap:.45rem;border-radius:999px;padding:.4rem .8rem;background:var(--ember-soft);color:var(--ember);font-weight:600}.faq{border:1px solid var(--border);border-radius:1.1rem;background:var(--card)}.faq summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer;list-style:none;padding:1.05rem 1.2rem;min-height:44px}.faq summary::-webkit-details-marker{display:none}.faq summary h3{font-size:1.02rem;font-weight:650}.faq summary .ico{color:var(--muted-foreground);transition:transform .25s}.faq[open] summary .ico{transform:rotate(180deg)}.faq p{padding:0 1.2rem 1.15rem;color:var(--muted-foreground)}.final{color:#fff;background:linear-gradient(135deg,var(--primary),#1d3fd1 60%,#14248f);box-shadow:0 40px 80px -40px color-mix(in oklab,var(--primary) 80%,transparent)}.final-glow{position:absolute;inset:-40% -10% auto auto;width:60%;height:140%;background:radial-gradient(closest-side,color-mix(in oklab,var(--ember) 45%,transparent),transparent);animation:drift 12s ease-in-out infinite alternate}.js [data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d, 0ms)}.js [data-reveal].in{opacity:1;transform:none}.js .phone .chip{transition:none}.js .phone.play .chip{animation:ate 9s infinite;animation-delay:calc(.6s + var(--i) * .7s)}.js .phone.play .glass:after{animation:fill 9s infinite;animation-delay:calc(3.4s + var(--i) * .18s);transform:translateY(100%)}.js .phone.play .score-ring{animation:ring 9s infinite cubic-bezier(.3,.7,.2,1)}.js .phone.play .toast{animation:toast 9s infinite}.js .day-line:before{transform:scaleX(0);transition:transform 1.4s cubic-bezier(.3,.7,.2,1) .2s}.js .day-line.in:before,.js .day-line:has(.in):before{transform:scaleX(1)}.js #streak-card .streak-grid i{transform:scale(.4);opacity:.2;transition:transform .4s,opacity .4s;transition-delay:calc(var(--i) * 45ms)}.js #streak-card.in .streak-grid i{transform:none;opacity:1}.js #chart-card .trend{stroke-dashoffset:100;transition:stroke-dashoffset 1.8s cubic-bezier(.3,.7,.2,1) .3s}.js #chart-card.in .trend{stroke-dashoffset:0}.js #chart-card .dots circle{opacity:0;transition:opacity .3s;transition-delay:calc(var(--i) * 40ms)}.js #chart-card.in .dots circle{opacity:.55}.js .board li{opacity:0;transform:translate(24px);transition:opacity .5s,transform .5s;transition-delay:calc(.2s + var(--i) * .11s)}.js .spot-card.in .board li{opacity:1;transform:none}.js .kudos{opacity:0;transform:translateY(8px);transition:opacity .5s 1s,transform .5s 1s}.js .spot-card.in .kudos{opacity:1;transform:none}@keyframes ate{0%,4%{background:transparent;color:var(--muted-foreground);border-color:var(--border);transform:scale(1)}8%{transform:scale(1.18)}11%,88%{background:var(--success, #16a34a);color:#fff;border-color:transparent;transform:scale(1)}96%,to{background:transparent;color:var(--muted-foreground);border-color:var(--border)}}@keyframes fill{0%,2%{transform:translateY(100%)}8%,88%{transform:translateY(0)}96%,to{transform:translateY(100%)}}@keyframes ring{0%{stroke-dasharray:0 100}55%,88%{stroke-dasharray:86 100}to{stroke-dasharray:0 100}}@keyframes toast{0%,58%{opacity:0;translate:-50% 10px}63%,84%{opacity:1;translate:-50% 0}90%,to{opacity:0;translate:-50% 10px}}@keyframes float{50%{transform:translateY(-10px)}}@keyframes drift{to{transform:translate3d(-4%,3%,0) scale(1.06)}}@keyframes shine{to{background-position:200% center}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}.js [data-reveal],.js .board li,.js .kudos,.js #streak-card .streak-grid i{opacity:1!important;transform:none!important}.js #chart-card .trend{stroke-dashoffset:0!important}.js .phone .chip{background:var(--success, #16a34a);color:#fff;border-color:transparent}.js .phone .glass:after{transform:none!important}.js #chart-card .dots circle{opacity:.55!important}}
