.ov{--ov-wall:#f4f5f1;--ov-paper:#fafaf8;--ov-white:#ffffff;--ov-ink:#20391e;--ov-text:#2b3529;--ov-muted:#56624f;--ov-leaf:#5f8a2c;--ov-leaf-text:#4a7322;--ov-lime:#a8d151;--ov-sage:#cbd9b0;--ov-sage-light:#dbe5c7;--ov-sage-deep:#b7c89a;--ov-on-sage:#34422f;--ov-line:#e1e4db;--ov-stage:#e9f1da;--ov-tint:#eef4e1;--ov-hairline:#eceee8;--ov-shadow-sm:0 1px 2px rgba(32,57,30,0.06),0 6px 16px -10px rgba(32,57,30,0.28);--ov-shadow:0 1px 2px rgba(32,57,30,0.05),0 10px 24px -14px rgba(32,57,30,0.22),0 28px 48px -36px rgba(32,57,30,0.3);--ov-shadow-lift:0 2px 4px rgba(32,57,30,0.05),0 18px 34px -16px rgba(32,57,30,0.3),0 40px 60px -40px rgba(32,57,30,0.36);--ov-shadow-deep:0 2px 6px rgba(32,57,30,0.08),0 30px 60px -24px rgba(32,57,30,0.4),0 60px 90px -50px rgba(32,57,30,0.4);--ov-gutter:clamp(16px,4vw,48px);--ov-max:1440px;--ov-header:96px;--ov-nav-max:1160px;--ov-ease:cubic-bezier(0.22,1,0.36,1);--ov-grain-field:radial-gradient(60% 75% at 50% 50%,rgba(255,255,255,0.75),rgba(255,255,255,0.25) 55%,transparent 85%),radial-gradient(50% 65% at 0% 0%,rgba(201,230,128,0.3),transparent 70%),radial-gradient(50% 65% at 100% 100%,rgba(161,197,89,0.22),transparent 72%),#edf5e1;--ov-grain-noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.16 0 0 0 0 0.32 0 0 0 0 0.14 0 0 0 1.7 -0.62'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background:var(--ov-white);color:var(--ov-text);font-family:var(--font-display),"Nunito Sans",system-ui,sans-serif;font-size:1rem;line-height:1.55;-webkit-font-smoothing:antialiased}.ov ::selection{background:var(--ov-lime);color:var(--ov-ink)}.ov :focus-visible{outline:3px solid var(--ov-ink);outline-offset:3px;border-radius:6px}.ov h1,.ov h2,.ov h3{margin:0;color:var(--ov-ink);font-weight:800;text-wrap:balance}.ov h2{font-size:clamp(2.1rem,1.35rem + 2.6vw,3.6rem);line-height:1.03;letter-spacing:-.032em}.ov h3{font-size:1.3rem;line-height:1.2;letter-spacing:-.015em}.ov p{margin:0}.ov-lead{max-width:40ch;color:var(--ov-muted);font-size:clamp(1.0625rem,1rem + .3vw,1.1875rem);line-height:1.55;text-wrap:pretty}.ov-wrap{width:100%;max-width:calc(var(--ov-max) + var(--ov-gutter) * 2);margin:0 auto;padding:0 var(--ov-gutter)}.ov-header{position:fixed;top:20px;right:max(var(--ov-gutter),calc((100vw - var(--ov-nav-max)) / 2));left:max(var(--ov-gutter),calc((100vw - var(--ov-nav-max)) / 2));z-index:50;display:grid;height:64px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:24px;padding:0 10px 0 22px;border:1px solid rgba(32,57,30,.07);border-radius:22px;background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(16px) saturate(160%);backdrop-filter:blur(16px) saturate(160%);box-shadow:0 1px 2px rgba(20,36,18,.04),0 12px 32px -18px rgba(20,36,18,.22);transition:transform .38s var(--ov-ease),box-shadow .32s var(--ov-ease)}.ov-header[data-hidden]:not(:focus-within){transform:translateY(calc(-100% - 24px))}.ov-header[data-scrolled]{box-shadow:0 1px 2px rgba(20,36,18,.05),0 16px 36px -18px rgba(20,36,18,.3)}.ov-brand{grid-column:1;justify-self:start}.ov-brand img{display:block;width:112px;height:auto}.ov-nav{display:flex;grid-column:2;gap:4px}.ov-nav a{padding:8px 16px;border-radius:999px;color:rgba(32,57,30,.78);font-size:.9375rem;font-weight:700;text-decoration:none;transition:background-color .2s var(--ov-ease),color .2s var(--ov-ease)}.ov-nav a:hover{background:rgba(32,57,30,.05);color:var(--ov-ink)}.ov-header-actions{display:flex;grid-column:3;justify-self:end;align-items:center;gap:20px}.ov-header-login{color:rgba(32,57,30,.8);font-size:.9375rem;font-weight:700;text-decoration:none;transition:color .2s var(--ov-ease)}.ov-header-cta,.ov-header-login:hover{color:var(--ov-ink)}.ov-header-cta{display:inline-flex;height:44px;align-items:center;gap:8px;padding:0 16px 0 20px;border:1.5px solid transparent;border-radius:999px;background:linear-gradient(180deg,#ffffff,#f8fbf1) padding-box,linear-gradient(115deg,#3f6b2a,#6f9d35 45%,#a8d151) border-box;font-size:.9375rem;font-weight:800;text-decoration:none;white-space:nowrap;box-shadow:0 6px 18px -12px rgba(60,100,25,.55);transition:background .22s var(--ov-ease),box-shadow .22s var(--ov-ease),transform .22s var(--ov-ease)}.ov-header-cta:hover{background:linear-gradient(180deg,#f6faec,#eaf4d6) padding-box,linear-gradient(115deg,#3f6b2a,#6f9d35 45%,#a8d151) border-box;box-shadow:0 10px 22px -12px rgba(60,100,25,.6);transform:translateY(-1px)}.ov-header-spark{width:17px;height:17px;flex:none;fill:#8cbd3a;transition:transform .3s var(--ov-ease)}.ov-header-cta:hover .ov-header-spark{transform:rotate(18deg) scale(1.08)}.ov section[id]{scroll-margin-top:88px}.ov-atmos{position:relative;isolation:isolate}.ov-atmos:after,.ov-atmos:before{position:absolute;z-index:-1;content:"";pointer-events:none}.ov-atmos:before{inset:0;background:radial-gradient(1100px 820px at -4% -6%,rgba(158,203,82,.5) 0,rgba(158,203,82,.18) 45%,rgba(158,203,82,0) 72%),radial-gradient(900px 600px at 104% -4%,rgba(203,228,150,.42) 0,rgba(203,228,150,0) 70%),radial-gradient(1000px 760px at -6% 1000px,rgba(248,205,160,.5) 0,rgba(248,205,160,0) 70%),radial-gradient(1000px 760px at 106% 1250px,rgba(250,226,186,.55) 0,rgba(250,226,186,0) 70%),linear-gradient(180deg,#f4f7ee,#fbfbf8 35%,#fffcf8 65%,#ffffff)}.ov-atmos:after{top:0;right:0;left:0;height:min(1100px,120svh);background:repeating-linear-gradient(98deg,rgba(255,255,255,0),rgba(255,255,255,0) 9%,rgba(255,255,255,.5) 12%,rgba(255,255,255,0) 16%,rgba(255,255,255,0) 23%,rgba(255,255,255,.32) 25%,rgba(255,255,255,0) 29%);filter:blur(18px);-webkit-mask-image:linear-gradient(180deg,#000,rgba(0,0,0,.5) 40%,transparent 85%);mask-image:linear-gradient(180deg,#000,rgba(0,0,0,.5) 40%,transparent 85%)}.ov-hero{display:grid;gap:32px;padding:calc(var(--ov-header) + 12px) 0 72px}.ov-hero-copy{padding:0 var(--ov-gutter)}.ov-hero h1{max-width:20ch;font-size:clamp(2.9rem,1.5rem + 5vw,5.6rem);line-height:.96;letter-spacing:-.038em}.ov-hero h1 span{display:block;color:var(--ov-leaf)}.ov-hero-text{width:fit-content;max-width:100%}.ov-hero .ov-lead{margin-top:24px;max-width:none;contain:inline-size}.ov-hero .store-download-links{margin-top:32px}.ov-web-link{display:inline-block;margin-top:18px;color:var(--ov-leaf-text);font-size:.9375rem;font-weight:700;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:5px}.ov-web-link:hover{color:var(--ov-ink)}.store-download-links{display:flex;flex-wrap:wrap;gap:12px}.store-download-link{display:inline-flex;align-items:center;gap:12px;min-height:58px;padding:8px 22px 8px 16px;border-radius:16px;background:var(--ov-white);color:var(--ov-ink);text-decoration:none;box-shadow:inset 0 0 0 1px rgba(32,57,30,.1),0 1px 2px rgba(20,36,18,.06),0 12px 26px -16px rgba(20,36,18,.4);transition:transform .2s var(--ov-ease),box-shadow .2s var(--ov-ease)}.store-download-link:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px rgba(32,57,30,.14),0 2px 4px rgba(20,36,18,.06),0 18px 32px -16px rgba(20,36,18,.45)}.store-download-icon{width:24px;height:24px;flex:none}.store-download-copy{display:grid;line-height:1.1}.store-download-copy small{color:var(--ov-muted);font-size:.75rem;font-weight:600}.store-download-copy strong{font-size:1.1875rem;font-weight:800;letter-spacing:-.01em}.week{display:grid;gap:18px;padding:0 var(--ov-gutter)}.week-stage{grid-template-areas:"days" "meals" "budget" "note" "device";gap:14px;isolation:isolate}.week-days,.week-stage{position:relative;display:grid}.week-days{grid-area:days;grid-template-columns:repeat(7,minmax(0,1fr));align-self:start;padding:4px;border-radius:999px;background:var(--ov-white);box-shadow:var(--ov-shadow-sm)}.week-days button{position:relative;z-index:1;min-width:0;min-height:40px;padding:0;border:0;border-radius:999px;background:none;color:var(--ov-muted);font:inherit;font-size:.875rem;font-weight:800;cursor:pointer;transition:color .26s var(--ov-ease)}.week-days button:hover{color:var(--ov-ink)}.week-days button[aria-pressed=true]{color:var(--ov-white)}.week-days-thumb{position:absolute;top:4px;bottom:4px;left:4px;width:calc((100% - 8px) / 7);border-radius:999px;background:var(--ov-ink);box-shadow:0 6px 14px -8px rgba(20,36,18,.7);transform:translateX(calc(var(--day) * 100%));transition:transform .46s cubic-bezier(.3,1.3,.45,1)}.week-meals{grid-area:meals;display:grid;gap:10px;margin:4px 0 0;padding:0;list-style:none}.meal-slot{display:flex;animation:week-card-in .82s var(--ov-ease) both;animation-delay:calc(.18s + var(--slot) * 90ms)}.meal-card{position:relative;display:block;width:100%;padding:0;border:0;border-radius:20px;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;translate:0 0;transition:translate .32s var(--ov-ease)}.meal-card[data-lifted]{visibility:hidden}.meal-face{position:relative;display:flex;gap:14px;padding:9px;overflow:hidden;border-radius:20px;background:var(--ov-white);box-shadow:var(--ov-shadow);transition:box-shadow .32s var(--ov-ease)}.meal-photo{flex:none;width:88px;aspect-ratio:1;overflow:hidden;border-radius:13px;background:var(--ov-tint)}.meal-photo img{display:block;width:100%;height:100%;object-fit:cover}.meal-body{display:flex;min-width:0;flex:1;flex-direction:column;gap:4px;padding:3px 6px 2px 0}.meal-kind{display:inline-flex;align-items:center;gap:5px;color:var(--ov-leaf-text);font-size:.6875rem;font-weight:800;letter-spacing:.07em;line-height:1.2;text-transform:uppercase}.meal-kind .icon{width:1.3em;height:1.3em;stroke-width:2.2}.meal-name{display:-webkit-box;overflow:hidden;color:var(--ov-ink);font-size:.9375rem;font-weight:800;letter-spacing:-.01em;line-height:1.22;-webkit-box-orient:vertical;-webkit-line-clamp:2}.meal-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;color:var(--ov-muted);font-size:.8125rem;font-weight:600}.meal-meta span{display:inline-flex;align-items:center;gap:4px}.meal-meta .icon{width:1.05em;height:1.05em}.meal-meta b{color:var(--ov-leaf-text);font-size:.9375rem;font-weight:800;font-variant-numeric:tabular-nums}.meal-shade{position:absolute;inset:0;border-radius:20px;background:linear-gradient(90deg,rgba(20,36,18,.5),rgba(20,36,18,.1));opacity:0;pointer-events:none}@media (hover:hover){.meal-card:not([data-landed]):hover{translate:0 -3px}.meal-card:not([data-landed]):hover .meal-face{box-shadow:var(--ov-shadow-lift)}}.week-device{position:relative;grid-area:device;display:grid;justify-items:center;gap:14px;padding-top:6px}.phone{position:relative;width:280px;aspect-ratio:9/19.4;padding:3.5px;border-radius:52px;background:linear-gradient(180deg,rgba(255,255,255,.5),rgba(255,255,255,0) 9%,rgba(0,0,0,0) 88%,rgba(40,34,26,.22)),linear-gradient(90deg,rgba(40,34,26,.16),rgba(255,255,255,.35) 1.6%,rgba(255,255,255,0) 4%,rgba(255,255,255,0) 96%,rgba(255,255,255,.35) 98.4%,rgba(40,34,26,.16)),conic-gradient(from 215deg,#b9b4ab,#d9d5cd 10%,#aba69d 22%,#c9c4bb 36%,#a39e95 50%,#d4d0c8 63%,#b1aca3 77%,#dcd8d0 90%,#b9b4ab);box-shadow:inset 0 0 0 .75px rgba(255,255,255,.7),inset 0 0 0 2px rgba(122,115,104,.28),0 0 0 .75px rgba(92,86,76,.55),0 2px 3px rgba(24,28,20,.16),0 26px 44px -22px rgba(24,28,20,.45),0 70px 100px -54px rgba(24,28,20,.4);animation:week-fade-in .8s var(--ov-ease) .25s both}.phone:after,.phone:before{position:absolute;width:3.5px;border-radius:2px;background:linear-gradient(90deg,#8f8a81,#dcd8d0 55%,#a8a399);box-shadow:0 0 0 .5px rgba(92,86,76,.45);content:""}.phone:before{top:132px;left:-3px;height:52px}.phone:after{top:160px;right:-3px;height:82px;background:linear-gradient(270deg,#8f8a81,#dcd8d0 55%,#a8a399)}.phone-buttons{position:absolute;top:196px;left:-3px;width:3.5px;height:52px;border-radius:2px;background:linear-gradient(90deg,#8f8a81,#dcd8d0 55%,#a8a399);box-shadow:0 0 0 .5px rgba(92,86,76,.45),0 -104px 0 -13px #b3aea5}.phone-screen{position:relative;display:flex;height:100%;flex-direction:column;overflow:hidden;border:7px solid #0b0b0a;border-radius:48.5px;background:#f6f6f2;box-shadow:0 0 0 .75px rgba(0,0,0,.55)}.phone-screen:after{position:absolute;inset:0;z-index:5;border-radius:inherit;background:linear-gradient(118deg,rgba(255,255,255,.2),rgba(255,255,255,.07) 26%,rgba(255,255,255,0) 38%);content:"";pointer-events:none}.phone-status{position:relative;display:flex;height:44px;flex:none;align-items:center;justify-content:space-between;padding:2px 22px 0 30px;color:#141612;font-size:.8125rem;font-weight:800}.phone-status svg{width:44px;height:10px}.phone-island{top:8px;left:50%;width:84px;height:25px;background:#050505;transform:translateX(-50%)}.phone-island,.phone-island:after{position:absolute;border-radius:999px}.phone-island:after{top:50%;right:9px;width:9px;height:9px;background:radial-gradient(circle at 35% 35%,#3b4a66 0,#141b29 45%,#070809 70%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.05);content:"";transform:translateY(-50%)}.phone-tabs{position:absolute;right:10px;bottom:12px;left:10px;z-index:2;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:5px;border-radius:26px;background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:inset 0 0 0 1px rgba(32,57,30,.06),0 10px 24px -14px rgba(20,36,18,.4)}.phone-tab{display:grid;justify-items:center;gap:2px;padding:6px 0 5px;border-radius:20px;color:#262b24;font-size:.59375rem;font-weight:700}.phone-tab .icon{width:18px;height:18px}.phone-tab[data-active]{background:#eceee7;color:var(--ov-leaf-text)}.week-list{flex:1;padding:2px 13px 92px;overflow:hidden}.week-list-title{color:#141612;font-size:1.0625rem;font-weight:800;letter-spacing:-.01em;line-height:1.25;text-align:center}.week-list-sub{color:var(--ov-muted);font-size:.6875rem;font-weight:600;text-align:center}.week-list-sub span{display:inline-block;animation:week-word-in .42s var(--ov-ease) both}.week-list-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px}.week-list-count{padding:4px 9px;border-radius:999px;background:#e5edf6;color:#25364a;font-size:.65625rem;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}.week-list-add{display:inline-flex;align-items:center;gap:6px;padding:4px 11px 4px 4px;border-radius:999px;background:var(--ov-white);color:var(--ov-leaf-text);font-size:.6875rem;font-weight:800;box-shadow:0 2px 8px -4px rgba(20,36,18,.3)}.week-list-add .icon{width:20px;height:20px;padding:4px;border-radius:999px;background:var(--ov-tint);stroke-width:2.6}.week-list-aisles{display:grid;gap:10px;margin-top:12px}.week-aisle-label{padding:0 4px 5px;color:var(--ov-muted);font-size:.59375rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.week-aisle ul{margin:0;padding:1px 10px;border-radius:16px;background:var(--ov-white);box-shadow:0 1px 2px rgba(32,57,30,.05);list-style:none}.week-row{height:36px;overflow:hidden}.week-row>label{position:relative;display:grid;height:36px;grid-template-columns:24px minmax(0,1fr) auto 18px;align-items:center;gap:8px;cursor:pointer}.week-row+.week-row>label:before{position:absolute;top:0;right:0;left:32px;height:1px;background:var(--ov-hairline);content:""}.week-row-emoji{display:grid;width:24px;height:24px;place-items:center;border-radius:999px;font-size:13px;line-height:1}.week-row-emoji>span{display:block;transition:opacity .12s linear,transform .42s cubic-bezier(.3,1.7,.5,1)}.week-row[data-state=new] .week-row-emoji:not([data-landed])>span{opacity:0;transform:scale(.3)}.week-row-emoji[data-landed]{animation:week-land .76s var(--ov-ease) both}.week-chip{position:absolute;top:0;left:0;z-index:6;display:grid;width:30px;height:30px;place-items:center;border-radius:999px;font-size:16px;line-height:1;opacity:0;box-shadow:0 0 0 2px var(--ov-white),0 10px 18px -8px rgba(20,36,18,.55);pointer-events:none;will-change:transform}:is(.week-row-emoji,.week-chip)[data-tint=warm]{background:#fcebe1}:is(.week-row-emoji,.week-chip)[data-tint=sea]{background:#e4eef7}:is(.week-row-emoji,.week-chip)[data-tint=leaf]{background:#e7f1d8}:is(.week-row-emoji,.week-chip)[data-tint=grain]{background:#f8efd9}.week-row-name{overflow:hidden;color:#1d211b;font-size:.78125rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap;transition:color .2s var(--ov-ease)}.week-row-qty{color:var(--ov-muted);font-size:.71875rem;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.week-row-qty[data-changed]{animation:week-qty .9s var(--ov-ease) both}.week-row input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.week-row-check{display:grid;width:18px;height:18px;place-items:center;border:1.5px solid #d6d4ca;border-radius:999px;transition:background-color .2s var(--ov-ease),border-color .2s var(--ov-ease)}.week-row-check .icon{width:11px;height:11px;color:var(--ov-ink);opacity:0;stroke-width:3.2;transform:scale(.5);transition:opacity .2s var(--ov-ease),transform .26s cubic-bezier(.3,1.5,.5,1)}.week-row input:focus-visible+.week-row-check{outline:3px solid var(--ov-ink);outline-offset:2px}.week-row label[data-done] .week-row-check{border-color:var(--ov-lime);background:var(--ov-lime)}.week-row label[data-done] .week-row-check .icon{opacity:1;transform:none}.week-row label[data-done] .week-row-name,.week-row label[data-done] .week-row-qty{color:#a0a79a;text-decoration:line-through;text-decoration-color:rgba(43,53,41,.45)}.week-row[data-state=new]{animation:week-row-open .5s var(--ov-ease) .12s both}.week-row[data-state=out]{animation:week-row-close .5s var(--ov-ease) .12s both}.week-row[data-state=new]>label{animation:week-row-content-in .42s var(--ov-ease) both;animation-delay:calc(.18s + var(--i, 0) * 55ms)}.week-row[data-state=out]>label{animation:week-fade-out .22s var(--ov-ease) both}.week-list[data-intro] .week-row{animation:week-row-in .48s var(--ov-ease) both;animation-delay:calc(.9s + var(--n, 0) * 65ms)}.week-note{display:flex;grid-area:note;align-items:center;gap:6px;padding:0 6px;color:#8c9486;font-size:.75rem;font-weight:600}.week-note .icon{width:14px;height:14px;flex:none}@property --hint-turn{syntax:"<angle>";inherits:false;initial-value:0deg}.meal-slot{position:relative;container:meal/inline-size}.meal-hint{position:absolute;top:29px;left:50%;z-index:4;display:inline-flex;height:22px;align-items:center;gap:6px;padding:0 10px 0 3px;border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.6),rgba(255,255,255,0) 58%),linear-gradient(100deg,rgba(206,234,142,.72),rgba(236,247,205,.5) 22%,rgba(178,218,98,.6) 46%,rgba(219,240,222,.55) 70%,rgba(198,230,124,.7));background-size:100% 100%,320% 100%;-webkit-backdrop-filter:blur(8px) saturate(180%);backdrop-filter:blur(8px) saturate(180%);color:var(--ov-ink);font-size:.6875rem;font-weight:800;letter-spacing:.01em;white-space:nowrap;box-shadow:inset 0 -1px 1.5px rgba(86,128,24,.28),inset 0 0 8px rgba(255,255,255,.45),0 1px 1px rgba(40,70,20,.08),0 6px 14px -6px rgba(70,110,25,.55);isolation:isolate;pointer-events:none;translate:-50% 0;animation:week-hint-in .56s cubic-bezier(.3,1.4,.5,1) 2s both,week-hint-tap 2.4s ease-in-out 2.6s infinite,week-hint-liquid 7s ease-in-out infinite alternate}.meal-hint:before{padding:1.25px;background:conic-gradient(from var(--hint-turn),rgba(255,255,255,1) 0deg,rgba(255,255,255,.35) 70deg,rgba(118,168,38,.45) 180deg,rgba(255,255,255,.35) 290deg,rgba(255,255,255,1) 1turn);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);animation:week-hint-rim 3.2s linear infinite}.meal-hint:after,.meal-hint:before{position:absolute;inset:0;z-index:-1;border-radius:inherit;content:""}.meal-hint:after{background:linear-gradient(105deg,rgba(255,255,255,0) 38%,rgba(255,255,255,.85) 48%,rgba(255,255,255,0) 58%) no-repeat;background-position:180% 0;background-size:260% 100%;animation:week-hint-sheen 2.4s ease-in-out 2.9s infinite}.meal-hint-tap{position:relative;display:grid;width:16px;height:16px;flex:none;place-items:center;border-radius:999px;background:radial-gradient(120% 120% at 30% 20%,#cbe882 0,var(--ov-lime) 55%,#93be3f 100%);box-shadow:inset 0 1px .5px rgba(255,255,255,.7),0 1px 2px rgba(60,96,20,.35)}.meal-hint-tap .icon{width:9px;height:9px;stroke-width:2.6;fill:var(--ov-ink)}.meal-hint-tap:after{position:absolute;inset:0;border:2px solid var(--ov-lime);border-radius:999px;opacity:0;content:"";animation:week-hint-ripple 2.4s ease-out 2.6s infinite}.week-budget{grid-area:budget;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;padding:14px 16px 15px;border-radius:18px;background:var(--ov-white);box-shadow:var(--ov-shadow-lift)}.week-budget-bar{grid-column:1/-1}.week-budget-left{grid-column:2;grid-row:1/3;align-self:end;color:var(--ov-leaf-text);font-size:.75rem;font-weight:700;line-height:1.25;text-align:right}.week-budget-left b{display:block;font-size:1.0625rem;font-weight:800;font-variant-numeric:tabular-nums}.week-budget-label{color:var(--ov-muted);font-size:.75rem;font-weight:700}.week-budget-amount{display:flex;align-items:baseline;gap:5px;color:var(--ov-muted);font-size:.8125rem;font-weight:600;white-space:nowrap}.week-budget-amount b{color:var(--ov-ink);font-size:1.0625rem;font-weight:800;font-variant-numeric:tabular-nums}.week-budget-bar{display:block;height:6px;margin-top:8px;overflow:hidden;border-radius:999px;background:rgba(32,57,30,.1)}.week-budget-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2f5a2a 0,var(--ov-lime) 100%)}.week-detail{position:absolute;inset:-8px;z-index:10}.week-scrim{position:absolute;inset:0;border-radius:28px;background:rgba(244,245,241,.78);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:week-fade-in .34s var(--ov-ease) both}.week-detail[data-closing] .week-scrim{animation:week-fade-out .48s var(--ov-ease) both}.recipe-lift{position:absolute;z-index:3;pointer-events:none}.recipe-lift .meal-face{height:100%;box-shadow:var(--ov-shadow-lift)}.recipe{position:absolute;top:12px;right:0;left:0;z-index:2;display:flex;width:min(400px,calc(100% - 24px));flex-direction:column;margin:0 auto;overflow:hidden;border-radius:24px;background:var(--ov-white);box-shadow:var(--ov-shadow-deep)}.recipe-photo{height:168px;flex:none;overflow:hidden;background:var(--ov-tint);animation:week-fade-in .42s var(--ov-ease) both}.recipe-photo img{display:block;width:100%;height:100%;object-fit:cover}.recipe-close{position:absolute;top:12px;right:12px;display:grid;width:38px;height:38px;place-items:center;padding:0;border:0;border-radius:999px;background:rgba(255,255,255,.94);color:var(--ov-ink);box-shadow:0 4px 14px -6px rgba(20,36,18,.45);cursor:pointer}.recipe-close .icon{width:18px;height:18px;stroke-width:2.4}.recipe-body{padding:14px 20px 0;animation:week-word-in .44s var(--ov-ease) both}.recipe-meta{display:flex;align-items:center;gap:12px;color:var(--ov-muted);font-size:.8125rem;font-weight:600}.recipe-meta>span:not(.meal-kind){display:inline-flex;align-items:center;gap:4px}.recipe-meta .icon{width:1.05em;height:1.05em}.recipe-meta b{margin-left:auto;color:var(--ov-leaf-text);font-size:1rem;font-weight:800}.recipe-name{margin-top:6px!important;color:var(--ov-ink);font-size:1.25rem;font-weight:800;letter-spacing:-.02em;line-height:1.18;text-wrap:balance}.recipe-label{margin-top:12px!important;color:var(--ov-muted);font-size:.6875rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.recipe-items{margin:4px 0 0;padding:0;list-style:none}.recipe-items li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;padding:5px 0;color:var(--ov-text);font-size:.875rem;font-weight:700}.recipe-items .week-row-emoji{width:28px;height:28px;font-size:15px}.recipe-items li+li{border-top:1px solid var(--ov-hairline)}.recipe-qty{color:var(--ov-muted);font-size:.8125rem;font-weight:600;font-variant-numeric:tabular-nums}.recipe-swap{display:inline-flex;flex:none;align-items:center;justify-content:center;gap:8px;min-height:46px;margin:14px 20px 18px;padding:0 18px;border:1.5px solid rgba(32,57,30,.16);border-radius:999px;background:var(--ov-white);color:var(--ov-ink);font:inherit;font-size:.9375rem;font-weight:800;cursor:pointer;transition:background-color .2s var(--ov-ease),border-color .2s var(--ov-ease)}.recipe-swap:hover{border-color:var(--ov-ink);background:var(--ov-tint)}.recipe-swap .icon{width:17px;height:17px;stroke-width:2.4}@media (min-width:640px){.week{width:100%;max-width:780px;margin:0 auto}.week-stage{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto auto 1fr;grid-template-areas:"days device" "meals device" "budget device" "note device";gap:16px clamp(32px,4.4vw,64px);align-items:start}.week-days{margin-top:22px}.week-meals{gap:12px}.meal-face{gap:16px;padding:10px}.meal-photo{width:104px;border-radius:14px}.meal-body{gap:4px;padding-top:9px}.meal-name{font-size:1rem}.week-device{padding-top:0}.week-budget{padding:16px 18px 17px;border-radius:20px;box-shadow:var(--ov-shadow);animation:week-card-in .82s var(--ov-ease) .45s both}}@keyframes week-card-in{0%{opacity:0;transform:translateY(22px) scale(.97)}}@keyframes week-fade-in{0%{opacity:0}}@keyframes week-fade-out{to{opacity:0}}@keyframes week-word-in{0%{opacity:0;transform:translateY(6px)}}@keyframes week-row-in{0%{height:0;opacity:0;transform:translateX(-10px)}}@keyframes week-row-open{0%{height:0}}@keyframes week-row-close{to{height:0}}@keyframes week-row-content-in{0%{opacity:0;transform:translateX(-10px)}}@keyframes week-hint-in{0%{opacity:0;transform:translateY(6px) scale(.9)}}@keyframes week-hint-tap{0%,12%,to{transform:none}6%{transform:translateY(-2px) scale(1.04)}}@keyframes week-hint-liquid{0%{background-position:0 0,0 0}to{background-position:0 0,100% 0}}@keyframes week-hint-rim{to{--hint-turn:360deg}}@keyframes week-hint-sheen{0%{background-position:180% 0}45%,to{background-position:-80% 0}}@keyframes week-hint-ripple{0%{opacity:.9;transform:scale(1)}22%,to{opacity:0;transform:scale(2.4)}}@keyframes week-land{0%{box-shadow:0 0 0 0 rgba(168,209,81,.7)}to{box-shadow:0 0 0 10px rgba(168,209,81,0)}}@keyframes week-qty{0%{color:var(--ov-leaf-text);font-weight:800}to{color:var(--ov-muted)}}.ov-engine{padding:clamp(56px,5vw,80px) 0 clamp(40px,4vw,60px)}.ov-engine-head{max-width:1120px;margin:0 auto;text-align:center}.ov-engine-head h2 span{color:var(--ov-leaf)}.ov-engine-head .ov-lead{max-width:68ch;margin:22px auto 0}.engine{position:relative;display:grid;grid-template-areas:"chips" "core" "meal" "list";row-gap:20px;margin-top:clamp(44px,6vw,80px)}.engine-pulses,.engine-wires{position:absolute;top:0;left:0;overflow:visible;pointer-events:none}.engine-wires path{fill:none;stroke:rgba(32,57,30,.2);stroke-width:1.5}.engine-wires .engine-wire-out{stroke:rgba(95,138,44,.45);stroke-dasharray:100;stroke-dashoffset:0;transition:stroke-dashoffset .52s var(--ov-ease)}.engine[data-phase=idle] .engine-wire-out,.engine[data-phase=running] .engine-wire-out{stroke-dashoffset:100}.engine-pulses{filter:drop-shadow(0 0 3px rgba(168,209,81,.9))}.engine-pulses path{fill:none;stroke:var(--ov-lime);stroke-width:3;stroke-linecap:round;stroke-dasharray:7 110;stroke-dashoffset:8;opacity:0}.engine[data-phase=done] .engine-pulses path:not(.engine-pulse-out),.engine[data-phase=running] .engine-pulses path:not(.engine-pulse-out){animation:engine-pulse 3.4s cubic-bezier(.45,0,.3,1) calc(var(--i) * 85ms) infinite}.engine[data-phase=done] .engine-pulse-out{animation:engine-pulse 3.4s cubic-bezier(.45,0,.3,1) calc(.5s + var(--i) * .16s) infinite}.engine[data-offscreen] *,.engine[data-offscreen] :after,.engine[data-offscreen] :before{animation-play-state:paused!important}.engine-chips{display:grid;grid-area:chips;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px;margin:0 0 76px;padding:0;list-style:none}.engine-chip{z-index:1;grid-template-columns:clamp(48px,13.5vw,58px) minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;align-content:center}.engine-chip,.engine-chip-art{position:relative;display:grid}.engine-chip-art{width:100%;aspect-ratio:1;grid-row:span 2;align-self:center;place-items:center;isolation:isolate;border-radius:27%;background:var(--ov-grain-field);box-shadow:inset 0 1px 0 #ffffff,inset 0 -2px 0 rgba(32,57,30,.04),0 0 0 1px rgba(32,57,30,.06),0 2px 4px -1px rgba(32,57,30,.08),0 20px 30px -18px rgba(32,57,30,.32)}.engine-chip-art img{display:block;width:82%;height:82%;filter:drop-shadow(0 5px 5px rgba(32,57,30,.16))}.engine-chip-art:after{position:absolute;inset:0;border-radius:inherit;content:"";opacity:0;pointer-events:none}.engine[data-phase=done] .engine-chip-art:after,.engine[data-phase=running] .engine-chip-art:after{animation:engine-send 3.4s ease-out calc(var(--i) * 85ms) infinite}.engine-chip-label{align-self:end;color:var(--ov-muted);font-size:.625rem;font-weight:800;letter-spacing:.05em;line-height:1.3;text-transform:uppercase}.engine-chip-value{align-self:start;color:var(--ov-ink);font-size:.8125rem;font-weight:800;line-height:1.25;text-wrap:balance}.engine-chip[data-wish] .engine-chip-art{box-shadow:inset 0 1px 0 #ffffff,0 0 0 2px rgba(168,209,81,.9),0 0 0 7px rgba(168,209,81,.2),0 2px 4px -1px rgba(32,57,30,.08),0 20px 30px -18px rgba(32,57,30,.32)}.engine-chip[data-wish] .engine-chip-label{color:var(--ov-leaf-text)}.engine-wish{justify-self:start;margin-top:5px;padding:6px 11px;border-radius:12px;background:var(--ov-white);box-shadow:0 0 0 1px rgba(95,138,44,.3),0 10px 22px -14px rgba(32,57,30,.45)}.engine-wish .wish-text{font-size:inherit;font-weight:800;line-height:1.3}.engine-core{position:relative;z-index:1;width:min(100%,300px);grid-area:core;justify-self:center;margin-bottom:44px;text-align:center}.engine-core-visual{position:relative;width:240px;aspect-ratio:1;margin:0 auto 12px}.engine-core-glow{position:absolute;inset:20%;border-radius:50%;background:radial-gradient(circle,rgba(168,209,81,.5) 0,rgba(168,209,81,0) 70%);filter:blur(14px);opacity:.45}.engine[data-phase=running] .engine-core-glow{animation:engine-glow 1.4s ease-in-out infinite alternate}.engine-core-visual img{position:absolute;top:22%;left:22%;width:56%;height:56%;filter:drop-shadow(0 16px 16px rgba(60,100,25,.16))}.engine-ticks{position:absolute;inset:0;overflow:visible;filter:drop-shadow(0 0 2px rgba(120,170,50,.4))}.engine-ticks line{stroke:rgba(32,57,30,.14);stroke-width:2.6;stroke-linecap:round;transition:stroke .18s ease}.engine-ticks line[data-on]{stroke:var(--c)}.engine-ticks line{transform-box:fill-box;transform-origin:50% 0}.engine[data-phase=done] .engine-ticks line{animation:engine-tick 3.4s calc(var(--k) * 3.4s) infinite}@keyframes engine-tick{0%{transform:scaleY(1);animation-timing-function:cubic-bezier(.3,0,.2,1)}5%{transform:scaleY(1.75);animation-timing-function:ease}24%,to{transform:scaleY(1)}}.engine-core-label{min-height:1.35em;color:var(--ov-ink);font-size:.9375rem;font-weight:800;letter-spacing:-.005em;line-height:1.35;text-wrap:balance}.engine-core-label span{display:block;animation:engine-label .36s var(--ov-ease) both}.engine .engine-core-sub{margin-top:4px;color:var(--ov-muted);font-size:.75rem;font-weight:700}.engine-core-steps{--ramp:linear-gradient(90deg,#c9e680,#9dcb43 38%,#5f8a2c 72%,#264822);position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;width:200px;margin:14px auto 0;padding:0;list-style:none;transition:gap .42s var(--ov-ease)}.engine-core-steps li{height:5px;overflow:hidden;border-radius:999px;background:rgba(32,57,30,.1);transition:border-radius .42s var(--ov-ease)}.engine-core-steps li:before{display:block;width:100%;height:100%;background:var(--ramp);background-position:calc(var(--i) * 33.333%) 0;background-size:400% 100%;content:"";transform:scaleX(0);transform-origin:left}.engine-core-steps li[data-state=done]:before{transform:none}.engine-core-steps li[data-state=active]{background:rgba(157,203,67,.2)}.engine-core-steps li[data-state=active]:before{box-shadow:inset -2px 0 0 rgba(255,255,255,.75);animation:engine-step .72s cubic-bezier(.55,.1,.3,1) both}.engine-core-steps[data-finished]{gap:0}.engine-core-steps[data-finished] li{border-radius:0}.engine-core-steps[data-finished] li:first-child{border-radius:999px 0 0 999px}.engine-core-steps[data-finished] li:last-child{border-radius:0 999px 999px 0}.engine-core-steps:after{position:absolute;inset:0;border-radius:999px;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.85) 50%,rgba(255,255,255,0)) no-repeat;background-size:40% 100%;background-position:-80% 0;content:"";opacity:0;pointer-events:none}.engine[data-phase=done] .engine-core-steps{animation:engine-steps-out .52s var(--ov-ease) 1.4s both}.engine[data-phase=static] .engine-core-steps{opacity:0}.engine[data-phase=done] .engine-core-steps:after{animation:engine-steps-sheen .8s var(--ov-ease) .32s both}.engine-out{position:relative;z-index:1;width:100%;max-width:420px;align-self:start;justify-self:center;padding:16px;border-radius:24px;background:var(--ov-white);box-shadow:var(--ov-shadow);transition:opacity .56s var(--ov-ease),transform .7s var(--ov-ease)}.engine-list{transition-delay:.14s}.engine[data-phase=idle] .engine-out,.engine[data-phase=running] .engine-out{opacity:0;transform:translateY(16px) scale(.98)}.engine-meal{grid-area:meal}.engine-list{grid-area:list}.engine .engine-out-label{display:flex;align-items:center;gap:6px;margin-bottom:12px;color:var(--ov-leaf-text);font-size:.6875rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.engine-out-label .icon{width:14px;height:14px}.engine-meal-main{display:grid;grid-template-columns:80px minmax(0,1fr);align-items:center;gap:14px}.engine-meal-main img{display:block;width:80px;height:80px;border-radius:14px;object-fit:cover}.engine-meal h3{color:var(--ov-ink);font-size:1rem;font-weight:800;letter-spacing:-.01em;line-height:1.25}.engine .engine-meal-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 12px;margin-top:8px;color:var(--ov-muted);font-size:.8125rem;font-weight:600}.engine-meal-meta span{display:inline-flex;align-items:center;gap:4px}.engine-meal-meta .icon{width:14px;height:14px}.engine-meal-meta b{color:var(--ov-leaf-text);font-weight:800}.engine-tags{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:14px 0 0;padding:12px 0 0;border-top:1px solid var(--ov-hairline);list-style:none}.engine-tags li{display:inline-flex;align-items:center;gap:5px;padding:5px 10px 5px 7px;border-radius:999px;background:var(--ov-tint);color:var(--ov-ink);font-size:.75rem;font-weight:700}.engine-tags img{width:20px;height:20px;flex:none}.engine[data-phase=done] .engine-tags li{animation:engine-tag .46s cubic-bezier(.3,1.4,.5,1) calc(.42s + var(--i) * 80ms) both}.engine-rows{margin:0;padding:0;list-style:none}.engine-rows li{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--ov-hairline)}.engine[data-phase=done] .engine-rows li{animation:engine-tag .46s var(--ov-ease) calc(.52s + var(--i) * 90ms) both}.engine-row-emoji{display:grid;width:32px;height:32px;place-items:center;border-radius:999px;background:#e7f1d8;font-size:.9375rem}.engine-row-emoji[data-tint=warm]{background:#fcebe1}.engine-row-emoji[data-tint=sea]{background:#e4eef7}.engine-row-emoji[data-tint=grain]{background:#f8efd9}.engine-row-body{display:grid;min-width:0;gap:3px}.engine-row-name{color:var(--ov-ink);font-size:.875rem;font-weight:800;line-height:1.2}.engine-row-sum{display:flex;flex-wrap:wrap;align-items:center;gap:3px 7px;color:var(--ov-muted);font-size:.75rem;font-weight:600;font-variant-numeric:tabular-nums}.engine-row-qty{white-space:nowrap}.engine-row-photos{display:inline-flex;flex:none;padding-left:5px}.engine-row-photos img{display:block;width:20px;height:20px;margin-left:-5px;border:2px solid var(--ov-white);border-radius:999px;object-fit:cover}.engine-rows b{color:var(--ov-ink);font-size:.875rem;font-weight:800;font-variant-numeric:tabular-nums}@keyframes engine-pulse{0%{stroke-dashoffset:8;opacity:1}36%{stroke-dashoffset:-100;opacity:1}36.1%,to{stroke-dashoffset:-100;opacity:0}}@keyframes engine-send{0%{opacity:1;box-shadow:inset 0 0 0 1.5px rgba(157,203,67,.9),0 0 0 0 rgba(168,209,81,.5)}20%,to{opacity:0;box-shadow:inset 0 0 0 1.5px rgba(157,203,67,0),0 0 0 10px rgba(168,209,81,0)}}@keyframes engine-glow{0%{opacity:.35;transform:scale(.92)}to{opacity:.8;transform:scale(1.08)}}@keyframes engine-label{0%{opacity:0;transform:translateY(6px)}}@keyframes engine-step{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes engine-steps-sheen{0%{background-position:-80% 0;opacity:1}to{background-position:180% 0;opacity:1}}@keyframes engine-steps-out{to{opacity:0;transform:scaleX(.4)}}@keyframes engine-tag{0%{opacity:0;transform:translateY(6px) scale(.94)}}.ov-food{padding:clamp(64px,7vw,104px) 0 clamp(48px,5vw,72px)}.ov-food-head{display:grid;justify-items:center;text-align:center}.ov-food h2{max-width:30ch}.ov-food h2 span{display:block;color:var(--ov-leaf)}.wish-line{display:inline-flex;max-width:100%;align-items:center;gap:10px;margin-top:28px!important;padding:7px 18px 7px 7px;border-radius:999px;background:var(--ov-white);box-shadow:0 0 0 1px rgba(32,57,30,.07),0 14px 30px -20px rgba(32,57,30,.5);text-align:left}.wish-icon{display:grid;width:34px;height:34px;flex:none;place-items:center;border-radius:999px;background:linear-gradient(150deg,#d9ef9e,var(--ov-lime));color:var(--ov-ink)}.wish-icon .icon{width:17px;height:17px;fill:currentColor;stroke-width:1.2}.wish-label{flex:none;color:var(--ov-leaf-text);font-size:.6875rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.wish-text{display:grid;min-width:0;color:var(--ov-ink);font-size:.9375rem;font-weight:700}.wish-sizer,.wish-typed{grid-area:1/1}.wish-sizer{visibility:hidden}.wish-caret{display:none;width:2px;height:1.05em;margin:0 -4px 0 2px;vertical-align:-.15em;background:var(--ov-leaf);animation:wish-caret .9s steps(1) infinite}.wish-text[data-typing] .wish-caret{display:inline-block}@keyframes wish-caret{50%{opacity:0}}@media (max-width:639px){.wish-line{flex-wrap:wrap;row-gap:2px;border-radius:22px}.wish-line .wish-text{flex-basis:100%;padding:0 0 4px 6px}}.dish-rows{--row-inset:max(var(--ov-gutter),calc((100vw - var(--ov-max)) / 2));display:grid;gap:clamp(28px,3vw,44px);margin-top:clamp(48px,6vw,88px)}.dish-row{display:grid;gap:16px}.dish-row-head{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon name" "icon line";align-items:center;column-gap:12px;padding:0 var(--row-inset)}.dish-row-icon{display:grid;width:44px;height:44px;grid-area:icon;place-items:center;border-radius:14px;background:linear-gradient(160deg,#f3f8e8,#e2edcc);box-shadow:inset 0 0 0 1px rgba(95,138,44,.16),0 6px 14px -10px rgba(32,57,30,.5);color:var(--ov-leaf-text)}.dish-row-icon .icon{width:20px;height:20px}.ov .dish-row-head h3{grid-area:name;font-size:clamp(1.25rem,1rem + .8vw,1.625rem);letter-spacing:-.02em;line-height:1.1}.dish-row-head p{grid-area:line;color:var(--ov-muted);font-size:.875rem;font-weight:600}.dish-row-viewport{overflow:hidden;padding:6px 0 14px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}.dish-track{display:flex;width:max-content;margin:0;padding:0;list-style:none;animation:dish-drift var(--dur) linear infinite}.dish-track[data-reverse]{animation-direction:reverse}.dish-row-viewport:hover .dish-track,.dish-rows[data-offscreen] .dish-track{animation-play-state:paused}.dish-track li{width:clamp(136px,11.5vw,176px);flex:none;margin-right:clamp(12px,1.2vw,18px);padding:6px 6px 12px;border-radius:22px;background:var(--ov-white);box-shadow:0 0 0 1px rgba(32,57,30,.06),0 10px 24px -16px rgba(32,57,30,.4);transition:transform .32s var(--ov-ease),box-shadow .32s var(--ov-ease)}.dish-track li:hover{box-shadow:0 0 0 1px rgba(32,57,30,.08),0 18px 32px -18px rgba(32,57,30,.5);transform:translateY(-4px)}.dish-photo{display:block;overflow:hidden;border-radius:16px;background:var(--ov-tint)}.dish-photo img{display:block;width:100%;aspect-ratio:1;object-fit:cover;transition:transform .6s var(--ov-ease)}.dish-track li:hover .dish-photo img{transform:scale(1.05)}.dish-name{display:-webkit-box;min-height:2.6em;margin:10px 6px 0;overflow:hidden;color:var(--ov-ink);font-size:.8125rem;font-weight:700;line-height:1.3;-webkit-box-orient:vertical;-webkit-line-clamp:2}@keyframes dish-drift{to{transform:translateX(-50%)}}.ov-features{position:relative;overflow:clip;padding:clamp(48px,5vw,72px) 0;background:linear-gradient(180deg,#f4f8ec,#e9f1dc)}.ov-closing-panel{background:radial-gradient(circle,rgba(32,57,30,.05) 1px,transparent 1.6px) 0 0 /20px 20px,var(--ov-grain-field);isolation:isolate}.engine-chip-art:before,.ov-closing-panel:before{position:absolute;inset:0;z-index:-1;border-radius:inherit;background:var(--ov-grain-noise);content:"";opacity:.32;mix-blend-mode:multiply;pointer-events:none}.ov-features .ov-features-title{margin:0 auto clamp(40px,5vw,64px);text-align:center}.ov-features .ov-features-title span{color:var(--ov-leaf)}.tour{display:grid;grid-template-areas:"stage" "list";gap:40px}.tour-list{grid-area:list}.tour-stage{grid-area:stage}.tour-list{display:grid;gap:4px;margin:0;padding:0;list-style:none}.tour-list li{position:relative;overflow:hidden;border-radius:20px;transition:background-color .36s var(--ov-ease),box-shadow .36s var(--ov-ease)}.tour-list li[data-on]{background:var(--ov-white);box-shadow:0 0 0 1px rgba(32,57,30,.07),0 18px 40px -24px rgba(32,57,30,.45)}.tour-list button{display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto 0fr;width:100%;padding:18px 22px;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:grid-template-rows .42s var(--ov-ease)}.tour-list li[data-on] button{grid-template-rows:auto 1fr}.tour-no{align-self:center;color:rgba(52,66,47,.55);font-size:.8125rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.04em}.tour-item-title,.tour-no{transition:color .3s var(--ov-ease)}.tour-item-title{color:var(--ov-on-sage);font-size:1.125rem;font-weight:800;letter-spacing:-.01em}.tour-item-more{grid-column:2;min-height:0;overflow:hidden}.tour-item-text{display:block;max-width:44ch;padding-top:6px;color:var(--ov-muted);font-size:.9375rem;line-height:1.5;opacity:0;transition:opacity .3s var(--ov-ease)}.tour-list li[data-on] .tour-no{color:var(--ov-leaf)}.tour-list button:hover .tour-item-title,.tour-list li[data-on] .tour-item-title{color:var(--ov-ink)}.tour-list li[data-on] .tour-item-text{opacity:1;transition-delay:.12s}.tour-progress{position:absolute;right:22px;bottom:0;left:22px;height:3px;overflow:hidden;border-radius:3px 3px 0 0;background:var(--ov-hairline);pointer-events:none}.tour-progress i{position:absolute;inset:0;border-radius:inherit;background:linear-gradient(90deg,#c9e680,#9dcb43 55%,#5f8a2c);transform-origin:left;animation:tour-progress var(--slot) linear both}.tour:has(.tour-list button:hover) .tour-progress i,.tour[data-offscreen] .tour-progress i{animation-play-state:paused}.tour[data-offscreen] .tour-demo,.tour[data-offscreen] .tour-demo *,.tour[data-offscreen] .tour-demo:after{animation-play-state:paused}@keyframes tour-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.tour-stage{position:relative;isolation:isolate;display:grid;justify-items:center;gap:18px}.tour-stage:before{position:absolute;inset:-18% -40%;z-index:-1;background:radial-gradient(closest-side,rgba(255,255,255,.9),rgba(255,255,255,.45) 45%,rgba(255,255,255,0));content:"";pointer-events:none}.tour-stage .tour-note{color:var(--ov-on-sage)}.tour-note{display:inline-flex;align-items:center;gap:6px;color:var(--ov-muted);font-size:.75rem;font-weight:600}.tour-note .icon{width:14px;height:14px}.tour-screen{position:relative;width:min(100%,360px);height:480px;overflow:hidden;border:1px solid rgba(32,57,30,.08);border-radius:30px;background:#f6f6f2;box-shadow:var(--ov-shadow-deep)}.tour-demo{position:relative;display:flex;height:100%;flex-direction:column;padding:14px;animation:tour-in .42s var(--ov-ease) both}.tour-demo img{display:block;object-fit:cover}.tour-photo{position:relative;height:220px;flex:none;overflow:hidden;border-radius:20px;background:var(--ov-tint)}.tour-photo img{position:absolute;inset:0;width:100%;height:100%}.tour-body{padding:16px 6px 0}.tour-kind{display:inline-flex;align-items:center;gap:6px;color:var(--ov-leaf-text);font-size:.6875rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.tour-kind .icon{width:14px;height:14px}.tour-name{margin-top:6px!important;color:var(--ov-ink);font-size:1.1875rem;font-weight:800;letter-spacing:-.02em;line-height:1.2;text-wrap:balance}.tour-meta{display:flex;align-items:center;gap:10px;margin-top:8px!important;color:var(--ov-muted);font-size:.8125rem;font-weight:600}.tour-meta>span:first-child{display:inline-flex;align-items:center;gap:4px}.tour-meta .icon{width:14px;height:14px}.tour-chip{padding:2px 10px;border:1px solid rgba(95,138,44,.22);border-radius:999px;background:var(--ov-tint);color:var(--ov-ink);font-weight:700}.tour-actions{display:flex;gap:10px;margin-top:auto}.tour-button,.tour-heart{position:relative;display:grid;height:48px;place-items:center;border:1px solid rgba(32,57,30,.1);border-radius:999px;background:var(--ov-white);color:var(--ov-leaf-text);box-shadow:var(--ov-shadow-sm)}.tour-button{flex:1;font-size:.9375rem;font-weight:800}.tour-heart{width:48px;flex:none}.tour-heart .icon{width:20px;height:20px}.tour-tap{position:absolute;top:50%;left:50%;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:999px;background:rgba(32,57,30,.18);opacity:0;pointer-events:none}@keyframes tour-tap{0%{opacity:0;transform:scale(.4)}30%{opacity:1}to{opacity:0;transform:scale(1.5)}}@keyframes tour-in{0%{opacity:0;transform:translateY(8px)}}@keyframes tour-out{to{opacity:0}}@keyframes tour-press{40%{transform:scale(.96)}}.tour-tap--swap{animation:tour-tap .62s ease-out 1.1s both}.tour-demo--swap .tour-button{animation:tour-press .36s var(--ov-ease) 1.1s both}.tour-swap-names{display:grid}.tour-swap-names>div{grid-area:1/1}.tour-demo--swap .tour-from{animation:tour-out .3s var(--ov-ease) 3.5s both}.tour-demo--swap .tour-to{animation:tour-in .42s var(--ov-ease) 3.62s both}.tour-demo--swap:after{position:absolute;inset:0;background:rgba(20,36,18,.22);content:"";opacity:0;pointer-events:none;animation:tour-scrim 2.3s var(--ov-ease) 1.4s both}.tour-sheet{position:absolute;right:0;bottom:0;left:0;z-index:1;padding:10px 14px 16px;border-radius:26px 26px 30px 30px;background:var(--ov-white);box-shadow:0 -12px 32px -18px rgba(20,36,18,.45);transform:translateY(105%);animation:tour-sheet 2.3s var(--ov-ease) 1.4s both}.tour-sheet:before{display:block;width:36px;height:4px;margin:0 auto 12px;border-radius:4px;background:var(--ov-line);content:""}.tour-sheet-title{margin:0 4px 8px!important;color:var(--ov-ink);font-size:1rem;font-weight:800}.tour-sheet ul{display:grid;gap:6px;margin:0;padding:0;list-style:none}.tour-sheet li{position:relative;display:flex;align-items:center;gap:12px;padding:8px;border:1.5px solid transparent;border-radius:16px}.tour-sheet li img{width:44px;height:44px;flex:none;border-radius:12px}.tour-sheet li b{display:block;color:var(--ov-ink);font-size:.875rem;line-height:1.25}.tour-sheet li small{color:var(--ov-muted);font-size:.75rem;font-weight:600}.tour-sheet li[data-pick]{animation:tour-pick .3s var(--ov-ease) 2.5s both}.tour-tap--pick{animation:tour-tap .62s ease-out 2.4s both}@keyframes tour-sheet{0%{transform:translateY(105%)}20%,83%{transform:translateY(0)}to{transform:translateY(105%)}}@keyframes tour-scrim{0%,to{opacity:0}20%,83%{opacity:1}}@keyframes tour-pick{to{border-color:var(--ov-lime);background:var(--ov-tint)}}.tour-head{display:flex;align-items:center;gap:12px;padding:4px 4px 16px}.tour-head img{width:56px;height:56px;flex:none;border-radius:16px}.tour-head .tour-name{margin-top:0!important;font-size:1rem}.tour-head .tour-meta{margin-top:4px!important;font-size:.75rem}.tour-segments{position:relative;display:grid;grid-template-columns:1fr 1fr;padding:4px;border:1px solid var(--ov-hairline);border-radius:999px;background:var(--ov-white);box-shadow:var(--ov-shadow-sm)}.tour-segments:before{position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border:1px solid rgba(95,138,44,.4);border-radius:999px;background:#e9f1da;content:""}.tour-segments[data-on=steps]:before{animation:tour-segment .42s var(--ov-ease) .5s both}.tour-segments span{position:relative;padding:9px 0;color:var(--ov-muted);font-size:.875rem;font-weight:800;text-align:center}.tour-segments[data-on=ingredients] span:first-child,.tour-segments[data-on=steps] span:last-child{color:var(--ov-ink)}@keyframes tour-segment{to{transform:translateX(100%)}}.tour-steps{display:grid;gap:14px;margin:16px 0 0;padding:0 4px;list-style:none}.tour-steps li{display:grid;grid-template-columns:26px minmax(0,1fr);gap:12px;color:var(--ov-muted);font-size:.8125rem;line-height:1.45;animation:tour-in .42s var(--ov-ease) calc(.9s + var(--i) * .7s) both}.tour-steps li+li{padding-top:14px;border-top:1px solid var(--ov-hairline)}.tour-steps b{display:block;margin-bottom:2px;color:var(--ov-ink);font-size:.9375rem}.tour-step-no{display:grid;width:26px;height:26px;place-items:center;border-radius:999px;background:var(--ov-tint);color:var(--ov-leaf-text);font-size:.75rem;font-weight:800}.tour-items{margin:12px 0 0;padding:0 6px;list-style:none}.tour-items li{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:10px 0;color:var(--ov-text);font-size:.875rem;animation:tour-in .38s var(--ov-ease) calc(.4s + var(--i) * .15s) both}.tour-items li+li{border-top:1px solid var(--ov-hairline)}.tour-items b{color:var(--ov-ink);font-variant-numeric:tabular-nums}.tour-items em{margin-left:6px;padding:1px 7px;border-radius:999px;color:var(--ov-muted);font-size:.75rem;font-style:normal;font-weight:700;white-space:nowrap;animation:tour-mark .5s var(--ov-ease) 1.9s both}@keyframes tour-mark{to{background:#e9f1da;color:var(--ov-leaf-text)}}.tour-advice{display:grid;gap:12px;padding:16px;border-radius:20px;background:#faf3e8;animation:tour-in .42s var(--ov-ease) .3s both}.tour-advice-title{display:flex;align-items:center;gap:8px;color:var(--ov-ink);font-weight:800}.tour-advice-title .icon{width:18px;height:18px;color:var(--ov-leaf)}.tour-advice>div{animation:tour-in .42s var(--ov-ease) calc(.8s + var(--i) * .7s) both}.tour-advice>div+div{padding-top:12px;border-top:1px solid rgba(120,90,40,.14)}.tour-advice b{color:var(--ov-ink);font-size:.9375rem}.tour-advice p{margin-top:4px!important;color:var(--ov-muted);font-size:.8125rem;line-height:1.45}.tour-demo--saved .tour-photo{height:150px}.tour-demo--saved .tour-actions{margin-bottom:12px}.tour-demo--saved .tour-heart .icon{animation:tour-heart .52s var(--ov-ease) 1.25s both}.tour-tap--heart{animation:tour-tap .62s ease-out 1.15s both}@keyframes tour-heart{50%{transform:scale(1.28)}to{fill:currentColor;transform:scale(1)}}.tour-tabs{display:grid;grid-template-columns:repeat(4,1fr);padding:6px;border-radius:26px;background:var(--ov-white);box-shadow:var(--ov-shadow-sm)}.tour-tabs span{display:grid;justify-items:center;gap:3px;padding:7px 0 6px;border-radius:20px;color:var(--ov-ink);font-size:.6875rem;font-weight:700}.tour-tabs .icon{width:19px;height:19px}.tour-tabs span[data-saved]{animation:tour-tab .42s var(--ov-ease) 1.9s both}.tour-tabs span[data-saved] .icon{animation:tour-heart .52s var(--ov-ease) 1.9s both;color:var(--ov-leaf-text)}@keyframes tour-tab{to{background:#e9f1da}}@media (prefers-reduced-motion:reduce){.dish-track{animation:none}.dish-row-viewport{overflow-x:auto}.tour-progress{display:none}.tour-list button{transition:none}}.ov-faq{padding:clamp(56px,6vw,88px) 0}.ov-faq-grid{display:grid;gap:40px}.ov-faq-list details{border-top:1px solid var(--ov-line)}.ov-faq-list details:last-child{border-bottom:1px solid var(--ov-line)}.ov-faq summary{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:64px;padding:18px 0;color:var(--ov-ink);font-size:1.125rem;font-weight:800;line-height:1.3;cursor:pointer;list-style:none}.ov-faq summary::-webkit-details-marker{display:none}.ov-faq summary svg{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .24s var(--ov-ease)}.ov-faq details[open] summary svg{transform:rotate(180deg)}.ov-faq details p{max-width:60ch;padding:0 0 24px;color:var(--ov-muted)}.ov-closing{padding:0 var(--ov-gutter) clamp(48px,6vw,88px)}.ov-closing-panel{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:40px;max-width:calc(var(--ov-max) + 96px);margin:0 auto;padding:clamp(36px,6vw,80px) clamp(22px,5vw,80px);border-radius:32px}.ov-closing h2{max-width:14ch}.ov-closing .ov-lead{margin-top:20px}.ov-closing .store-download-links{margin-top:30px}.ov-closing .ov-web-link{color:var(--ov-ink)}.closing-phones{--front:0.62;--back:0.54;--spread:99px;display:grid;place-items:center;justify-self:center;padding-inline:calc(var(--spread) + 140px * (var(--back) - var(--front)))}.closing-phone{grid-area:1/1}.closing-phone .phone{zoom:var(--back);animation:none}.closing-phone[data-screen=list]{transform:translateX(calc(-1 * var(--spread)))}.closing-phone[data-screen=recipe]{transform:translateX(var(--spread))}.closing-phone[data-screen=plan]{z-index:1}.closing-phone[data-screen=plan] .phone{zoom:var(--front)}.phone-shot{display:block;width:100%;min-height:0;flex:1;object-fit:cover;object-position:top center}.phone-screen>.phone-island{z-index:2}@media (min-width:640px){.closing-phones{--front:0.74;--back:0.62;--spread:150px}.engine{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"chips chips" "core core" "meal list";column-gap:16px}.engine-chips{grid-template-columns:repeat(5,minmax(0,1fr));gap:36px 16px;margin-bottom:96px}.engine-chip{grid-template-columns:minmax(0,1fr);grid-template-rows:none;align-content:start;justify-items:center;row-gap:4px;text-align:center}.engine-chip-art{width:min(100%,clamp(84px,9vw,112px));grid-row:auto;margin-bottom:12px}.engine-wish{justify-self:center;margin-top:6px}.engine-chip-label{font-size:.6875rem;letter-spacing:.07em}.engine-chip-value{font-size:.875rem}.engine-core{margin-bottom:64px}.engine-meal{justify-self:end}.engine-list{justify-self:start}}@media (min-width:960px){.dish-row{grid-template-columns:calc(var(--row-inset) + clamp(220px, 18vw, 280px)) minmax(0,1fr);align-items:center;gap:0}.dish-row-head{grid-template-columns:1fr;grid-template-areas:"icon" "name" "line";row-gap:6px;padding:0 24px 0 var(--row-inset)}.dish-row-icon{margin-bottom:8px;justify-self:start}.dish-row-viewport{-webkit-mask-image:linear-gradient(90deg,transparent,#000 64px,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 64px,#000 94%,transparent)}.tour{grid-template-columns:minmax(0,440px) minmax(0,440px);grid-template-areas:"list stage";justify-content:center;align-items:center;column-gap:clamp(56px,8vw,150px)}.tour-stage{align-self:center}.ov-faq-grid{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:64px}.ov-closing-panel{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:48px}.closing-phones{--front:0.6;--back:0.5;--spread:120px}}@media (min-width:1100px){.ov-hero{grid-template-columns:minmax(0,1fr) auto;gap:0;min-height:clamp(720px,100svh,1000px);padding:0}.ov-hero-copy{align-self:center;padding:var(--ov-header) clamp(32px,3vw,64px) 48px max(var(--ov-gutter),calc((100vw - var(--ov-max)) / 2))}.ov-hero h1{font-size:clamp(3rem,4.1vw,4.25rem)}.week{align-self:center;width:auto;max-width:none;margin:0 max(var(--ov-gutter),calc((100vw - var(--ov-max)) / 2)) 0 0;padding:calc(var(--ov-header) + 12px) 0 32px}.week-stage{grid-template-columns:clamp(256px,19vw,300px) 280px;column-gap:clamp(24px,2.8vw,44px)}.meal-photo{width:clamp(80px,6.2vw,92px)}}@media (min-width:1360px){.engine{grid-template-columns:minmax(0,1fr) 300px minmax(0,1fr);grid-template-areas:"chips chips chips" "meal core list";align-items:center;column-gap:clamp(56px,5vw,96px)}.engine-chips{grid-template-columns:repeat(10,minmax(0,1fr));column-gap:clamp(12px,1.2vw,24px);margin-bottom:150px}.engine-chip-art{width:min(100%,clamp(92px,6.4vw,116px))}.engine-chip-value{font-size:.8125rem}.engine-core{margin-bottom:0}.engine-out{align-self:center}}@media (max-width:959px){.ov-nav{display:none}}@media (max-width:639px){.ov-header-login{display:none}.ov-header{top:14px;height:58px;padding:0 8px 0 16px;border-radius:18px}.ov-brand img{width:104px}.ov-header-cta{height:40px;padding:0 13px 0 16px;font-size:.875rem}}@media (prefers-reduced-motion:reduce){.ov *,.ov :after,.ov :before{transition-duration:1ms!important;animation-duration:1ms!important;animation-delay:0s!important;animation-iteration-count:1!important}}@media (min-width:1180px){.closing-phones{--front:0.72;--back:0.6;--spread:148px}}@media (min-width:1280px){.closing-phones{--front:0.8;--back:0.68;--spread:163px}}@media (min-width:1400px){.closing-phones{--front:0.9;--back:0.76;--spread:184px}}