@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,500;9..144,600&display=swap");:root{--cream:#faf8f0;--paper:#fffef9;--ink:#203b30;--muted:#64766a;--line:#dce4d7;--leaf:#32714e;--leaf-dark:#215338;--tomato:#d65e46;--sun:#f1c45b;--soft-green:#edf3e9}*{box-sizing:border-box}body,html{background:var(--cream)}body{margin:0;color:var(--ink);font-family:DM Sans,sans-serif;font-size:16px}button,input,select{font:inherit}a,button,input,select{-webkit-tap-highlight-color:transparent}a{color:inherit}.page-shell{width:min(100% - 40px,980px);margin:0 auto;padding:24px 0 48px}.topbar{min-height:58px;display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:17px}.brand,.topbar{align-items:center}.brand{display:inline-flex;gap:10px;font-family:Fraunces,Georgia,serif;font-size:22px;font-weight:600;text-decoration:none;letter-spacing:-.025em}.brand img{width:40px;height:40px;border-radius:12px;object-fit:cover}.today-tag{color:var(--muted);font-size:13px}.signout-form{margin:0}.signout-button{padding:8px 11px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--leaf-dark);font-size:13px;font-weight:600;cursor:pointer}.signout-button:hover{background:var(--soft-green)}.signout-button:focus-visible{outline:3px solid var(--sun);outline-offset:2px}.welcome-panel{width:min(100%,640px);margin:72px auto 92px;padding:34px;border:1px solid var(--line);border-radius:18px;background:var(--paper)}.welcome-panel h1{max-width:540px}.welcome-panel>p:not(.eyebrow):not(.form-error){max-width:480px;margin:15px 0 24px;color:var(--muted);line-height:1.6}.welcome-panel form{margin:0}.work-area{width:min(100%,720px);margin:42px auto 0;padding:0 0 39px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}.eyebrow{margin:0 0 9px;color:var(--leaf);font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}h1,h2{font-family:Fraunces,Georgia,serif;font-weight:500;letter-spacing:-.035em}h1{font-size:clamp(32px,6vw,44px);line-height:1.06}h1,h2{margin:0}h2{font-size:25px;line-height:1.15}.form-intro,.progress-lede{max-width:550px;margin:13px 0 25px;color:var(--muted);line-height:1.55}.goal-form{padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--paper)}.goal-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px;margin-bottom:17px}.choice-row,.nutrition-goals{grid-template-columns:repeat(3,minmax(0,1fr))}.goal-form label{display:flex;flex-direction:column;gap:8px;color:var(--ink);font-size:14px;font-weight:600}.goal-form input,.goal-form select{width:100%;min-height:50px;border:1px solid #cbd8ca;border-radius:10px;padding:0 13px;background:#fff;color:var(--ink);outline:none}.goal-form input::placeholder{color:#88978c}.goal-form input:focus,.goal-form select:focus{border-color:var(--leaf);box-shadow:0 0 0 3px #32714e20}.meal-picker{min-width:0;margin:0 0 17px;padding:0;border:0}.meal-picker legend{margin-bottom:8px;color:var(--ink);font-size:14px;font-weight:600}.meal-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.goal-form .meal-choices .meal-choice{min-height:50px;flex-direction:row;align-items:center;gap:8px;padding:0 11px;border:1px solid #cbd8ca;border-radius:10px;background:#fff;cursor:pointer}.goal-form .meal-choices .meal-choice.selected{border-color:var(--leaf);background:var(--soft-green);color:var(--leaf-dark)}.goal-form .meal-choices input[type=checkbox]{flex:0 0 18px;width:18px;min-height:18px;height:18px;margin:0;padding:0;accent-color:var(--leaf)}.meal-choice:focus-within{outline:3px solid #f1c45b;outline-offset:2px}.snack-row{grid-template-columns:minmax(0,1fr)}.day-filter-row{grid-template-columns:repeat(2,minmax(0,1fr))}.taste-picker{min-width:0;margin:0 0 15px;padding:0;border:0}.taste-picker legend{margin-bottom:9px;color:var(--ink);font-size:14px;font-weight:600}.taste-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.taste-choices label{display:flex;flex-direction:column;gap:7px;color:var(--ink);font-size:13px;font-weight:600}.taste-choices select{width:100%;min-height:48px;border:1px solid #cbd8ca;border-radius:10px;padding:0 12px;background:#fff;color:var(--ink)}.taste-choices select:focus-visible{outline:3px solid #32714e35;border-color:var(--leaf)}.style-field{margin-top:4px}.style-field small{font-weight:400}.style-field small,.style-hint{color:var(--muted);font-size:12px}.style-hint{display:block;margin:-5px 0 0;line-height:1.45}.locked-value{display:flex;padding:0 13px;color:var(--muted);border:1px solid var(--line);border-radius:10px;background:#f5f6ef;font-weight:500}.button,.locked-value{align-items:center;min-height:50px}.button{border:0;border-radius:10px;padding:0 18px;display:inline-flex;justify-content:center;gap:12px;text-decoration:none;font-weight:700;cursor:pointer;transition:background-color .15s ease,transform .15s ease}.button:hover:not(:disabled){transform:translateY(-1px)}.button:focus-visible{outline:3px solid #f1c45b;outline-offset:3px}.button:disabled{opacity:.68;cursor:progress}.button-primary{color:#fffef8;background:var(--leaf)}.button-primary:hover:not(:disabled){background:var(--leaf-dark)}.button-secondary{color:var(--leaf-dark);border:1px solid #a8c0a7;background:var(--soft-green)}.button-secondary:hover:not(:disabled){background:#e1ecdf}.make-button{width:100%;margin-top:21px;min-height:54px;font-size:16px}.make-button span{font-size:20px}.tiny-note{margin:13px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.step-badge{padding:7px 10px;color:var(--leaf-dark);border-radius:99px;background:var(--soft-green);font-size:12px;font-weight:700;white-space:nowrap}.step-line{display:flex;justify-content:space-between;color:var(--muted);font-size:13px;margin-bottom:20px}.options-screen{width:min(100%,980px)}.options-intro{max-width:620px;margin:11px 0 20px;color:var(--muted);line-height:1.55}.recipe-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;grid-gap:16px;gap:16px;margin-top:22px}.recipe-option{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:15px;background:var(--paper)}.option-image{display:block;width:100%;aspect-ratio:1.5/1;object-fit:cover;background:#f4ead0}.option-body{padding:16px}.option-number{margin:0 0 6px;color:var(--leaf);font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.recipe-option h2{font-size:21px}.option-description{min-height:62px;margin:9px 0 13px;color:var(--muted);font-size:13px;line-height:1.5}.preference-note{margin:8px 0 12px;color:#704b16;font-size:12px;line-height:1.45}.option-nutrition{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:7px;gap:7px;padding:10px 8px;border-radius:10px;background:var(--soft-green)}.option-nutrition span{color:var(--leaf-dark);font-size:11px;line-height:1.35}.option-nutrition strong{display:block;margin-bottom:2px;font-size:16px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.option-grocery{margin-top:16px}.option-grocery h3{margin:0 0 7px;font-size:14px}.option-grocery ul{margin:0;padding-left:18px;color:#42594a;font-size:12px;line-height:1.5}.option-grocery li+li{margin-top:3px}.option-steps{margin-top:13px;border-top:1px solid var(--line);padding-top:10px}.option-steps summary{width:-moz-fit-content;width:fit-content;color:var(--leaf-dark);font-size:13px;font-weight:600;cursor:pointer}.option-steps summary:focus-visible{outline:3px solid var(--sun);outline-offset:3px;border-radius:3px}.option-steps ol{margin:9px 0 0;padding-left:20px;color:#42594a;font-size:12px;line-height:1.5}.option-steps li+li{margin-top:7px}.option-button{width:100%;min-height:46px;margin-top:15px;padding:0 10px;font-size:13px}.options-back{margin-top:16px}.day-overview{width:min(100%,720px)}.day-recipe-list{margin:22px 0 0;padding:0;list-style:none;border-top:1px solid var(--line)}.day-recipe-list li{border-bottom:1px solid var(--line)}.day-recipe-list a{min-height:72px;display:grid;grid-template-columns:92px minmax(0,1fr) 20px;grid-gap:12px;gap:12px;align-items:center;color:var(--ink);text-decoration:none}.day-recipe-list a:hover strong{color:var(--leaf-dark);text-decoration:underline;text-underline-offset:3px}.day-recipe-list a:focus-visible{outline:3px solid var(--sun);outline-offset:2px;border-radius:6px}.day-recipe-list a>span:first-child{color:var(--muted);font-size:13px}.day-recipe-list strong{font-size:15px}.day-recipe-arrow{color:var(--leaf);font-size:20px;text-align:right}.day-overview-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.day-back{margin:0 0 17px}.recipe-layout{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;grid-gap:25px;gap:25px}.recipe-copy h1{max-width:410px}.recipe-description{max-width:410px;margin:10px 0 8px;color:var(--muted);line-height:1.55}.recipe-context{margin:0 0 20px;color:var(--leaf-dark);font-size:13px;font-weight:600}.recipe-image{display:block;width:100%;aspect-ratio:1/1;max-height:300px;border-radius:16px;background:#f4ead0;object-fit:cover}.nutrition-strip{display:flex;gap:28px}.nutrition-strip div{display:flex;flex-direction:column;gap:2px}.nutrition-strip strong{font-size:19px}.nutrition-strip span,.portion-note{color:var(--muted);font-size:12px}.portion-note{max-width:410px;margin:10px 0 0;line-height:1.5}.recipe-detail-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(210px,.75fr);grid-gap:30px;gap:30px;margin-top:31px}.recipe-grocery,.recipe-steps{min-width:0;padding:23px 0 19px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.recipe-steps h2{margin-bottom:15px}.recipe-steps ol{margin:0;padding:0;list-style:none}.recipe-steps li{display:grid;grid-template-columns:32px 1fr;grid-gap:12px;gap:12px;align-items:start;padding:11px 0}.recipe-steps li>span{color:var(--tomato);font-size:12px;font-weight:700;padding-top:3px}.recipe-steps li p{margin:0;color:#42594a;line-height:1.5}.recipe-grocery h2{margin-bottom:9px}.recipe-grocery>p{margin:0 0 12px;color:var(--muted);font-size:12px;line-height:1.5}.recipe-grocery ul{margin:0;padding:0;list-style:none}.recipe-grocery li{padding:9px 0;border-bottom:1px solid #e8ece3;color:#42594a;font-size:14px;line-height:1.4}.recipe-grocery li:last-child{border-bottom:0}.recipe-grocery li:before{content:"";display:inline-block;width:7px;height:7px;margin:0 10px 1px 1px;border-radius:50%;background:var(--leaf)}.recipe-grocery .grocery-empty{margin-top:12px}.recipe-actions{display:flex;justify-content:space-between;gap:12px;margin-top:20px}.recipe-actions form{flex:1 1}.recipe-actions form .button{width:100%}.progress-lede{margin-bottom:22px}.progress-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.progress-grid article{padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--paper)}.progress-grid article small,.progress-grid article>span{display:block;color:var(--muted);font-size:12px}.progress-grid article strong{display:block;margin:10px 0 3px;color:var(--leaf-dark);font-family:Fraunces,Georgia,serif;font-size:36px;font-weight:500}.progress-grid article p{margin:13px 0 0;color:var(--leaf-dark);font-size:13px;font-weight:700}.progress-grid article p.over-goal{color:#9e3f2b}.progress-recipes{margin:25px 0 22px}.progress-recipes h2{margin-bottom:10px}.progress-recipes>p{display:grid;grid-template-columns:77px 1fr auto;grid-gap:8px;gap:8px;margin:0;padding:12px 0;border-bottom:1px solid var(--line);align-items:center;font-size:14px}.progress-recipes>p small,.progress-recipes>p span{color:var(--muted);font-size:12px}.progress-screen>.button{min-width:190px}.form-error{margin:13px 0 0;padding:11px 13px;border-radius:9px;color:#8b2d24;background:#fce9e3;font-size:13px;line-height:1.4}.load-error{width:min(100%,640px);margin:55px auto 70px}.load-error p{margin:15px 0 20px;color:var(--muted)}.saved-section{padding:25px 24px 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.saved-count{color:var(--muted);font-size:12px;white-space:nowrap}.saved-list{margin:18px 0 0;padding:0;list-style:none}.saved-list li{border-top:1px solid #e8ece3}.saved-list a{min-height:50px;display:grid;grid-template-columns:9px minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:center;text-decoration:none}.saved-list a:hover .saved-name{color:var(--leaf);text-decoration:underline;text-underline-offset:3px}.saved-dot{width:7px;height:7px;border-radius:50%;background:var(--tomato)}.saved-name{font-size:14px;font-weight:600}.saved-meta{color:var(--muted);font-size:12px;white-space:nowrap}.empty-state{margin:17px 0 14px;color:var(--muted);font-size:14px}.shared-notice{margin:16px 0 0}.footer-note,.shared-notice{color:var(--muted);font-size:12px;line-height:1.5}.footer-note{padding:17px 24px 0}.page-shell.landing-page{width:min(100% - 48px,1180px);min-height:100svh;display:flex;flex-direction:column;padding:24px 0 25px}.landing-topbar{flex:0 0 auto}.landing-hero{flex:1 1;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);align-items:center;grid-gap:clamp(40px,7vw,92px);gap:clamp(40px,7vw,92px);padding:clamp(48px,8vh,88px) 0}.landing-copy h1{max-width:650px;font-size:clamp(52px,6.1vw,76px);line-height:1.02;text-wrap:balance}.landing-audience{max-width:520px;margin:22px 0 8px;color:var(--ink);font-size:18px;line-height:1.5}.landing-proof{max-width:490px;margin:0 0 28px;color:var(--muted);font-size:16px;line-height:1.6}.landing-cta{min-width:235px;min-height:56px}.landing-plan-preview{min-width:0;padding:26px;border:1px solid var(--line);border-radius:18px;background:var(--paper);box-shadow:0 14px 36px rgba(32,59,48,.09)}.landing-plan-preview h2{font-size:25px}.landing-preview-help{margin:8px 0 20px;color:var(--muted);font-size:14px;line-height:1.5}.landing-preview-goals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:9px;gap:9px}.landing-preview-goals>div{min-width:0;display:grid;grid-gap:9px;gap:9px;padding:12px 10px;border:1px solid #cbd8ca;border-radius:10px;background:#fff}.landing-preview-goals span{color:var(--ink);font-size:12px;font-weight:600}.landing-preview-goals strong{color:var(--muted);font-size:12px;font-weight:500}.landing-preview-meals{margin-top:20px}.landing-preview-meals h3{margin:0 0 8px;font-size:14px;font-weight:600}.landing-preview-meal-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.landing-preview-meal{min-width:0;min-height:44px;display:flex;align-items:center;gap:7px;padding:8px;border:1px solid #cbd8ca;border-radius:10px;background:#fff;color:var(--ink);font-size:12px}.landing-preview-checkbox{flex:0 0 15px;width:15px;height:15px;border:1px solid #8ea293;border-radius:3px;background:#fff}.landing-preview-choices{margin:18px 0 0}.landing-preview-choices div{display:grid;grid-template-columns:86px minmax(0,1fr);grid-gap:8px;gap:8px;padding:10px 0;border-top:1px solid var(--line)}.landing-preview-choices dt{color:var(--muted);font-size:12px}.landing-preview-choices dd{margin:0;color:var(--ink);font-size:12px;line-height:1.4}.welcome-panel h1{font-size:clamp(38px,5.4vw,48px)}.landing-footer{padding:13px 0 0;border-top:1px solid var(--line)}@media (max-width:700px){.page-shell.landing-page{width:min(100% - 28px,520px);padding-top:14px}.landing-topbar{padding-bottom:12px}.landing-hero{grid-template-columns:minmax(0,1fr);gap:30px;padding:37px 0 33px}.landing-copy h1{max-width:530px;font-size:clamp(44px,12vw,52px);line-height:1.02}.landing-audience{margin-top:17px;font-size:16px}.landing-proof{margin-bottom:21px;font-size:14px}.landing-cta{width:100%}.landing-plan-preview{padding:19px 15px;border-radius:15px}.landing-preview-goals{gap:6px}.landing-preview-goals>div{padding:10px 7px}.landing-preview-goals span,.landing-preview-goals strong{font-size:11px}.landing-preview-meal-list{gap:6px}.landing-preview-meal{gap:5px;padding:7px 5px;font-size:11px}.landing-preview-choices div{grid-template-columns:76px minmax(0,1fr)}.landing-footer{padding-top:13px}}@media (prefers-reduced-motion:reduce){.landing-page .button{transition:none}.landing-page .button:hover:not(:disabled){transform:none}}@media (max-width:900px){.recipe-options{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:620px){.page-shell{width:min(100% - 28px,520px);padding-top:14px}.topbar{padding-bottom:12px}.welcome-panel{margin:48px auto 64px;padding:23px 18px}.welcome-panel .button{width:100%}.signout-button{padding:7px 9px;font-size:12px}.brand{font-size:20px}.brand img{width:36px;height:36px}.today-tag{max-width:120px;text-align:right;font-size:11px}.work-area{margin-top:28px;padding-bottom:28px}.recipe-options{grid-template-columns:minmax(0,1fr);gap:13px;margin-top:17px}.option-image{aspect-ratio:1.7/1}.option-body{padding:15px}.option-description{min-height:0}h1{font-size:34px}.form-intro{margin:11px 0 19px;font-size:14px}.goal-form{padding:17px 15px;border-radius:14px}.goal-row{gap:10px;margin-bottom:13px}.choice-row{grid-template-columns:repeat(2,minmax(0,1fr))}.taste-choices{grid-template-columns:minmax(0,1fr);gap:9px}.nutrition-goals{grid-template-columns:repeat(2,minmax(0,1fr))}.nutrition-goals>label:last-child{grid-column:1/-1}.goal-form label{font-size:12px}.goal-form input,.goal-form select,.locked-value{min-height:47px;padding-left:10px;font-size:14px}.meal-picker legend{font-size:12px}.meal-choices{gap:6px}.goal-form .meal-choices .meal-choice{gap:6px;padding:0 7px;font-size:12px}.goal-form .meal-choices input[type=checkbox]{flex-basis:17px;width:17px;height:17px}.make-button{margin-top:17px}.recipe-layout{grid-template-columns:1fr;gap:17px}.recipe-image{grid-row:1;max-height:none;width:100%;aspect-ratio:1.45/1}.recipe-description{margin:10px 0 16px}.nutrition-strip{gap:25px}.recipe-detail-grid{grid-template-columns:1fr;gap:0;margin-top:24px}.day-recipe-list a{min-height:68px;grid-template-columns:72px minmax(0,1fr) 18px;gap:9px}.day-recipe-list strong{font-size:14px}.day-overview-actions{flex-direction:column}.day-overview-actions .button{width:100%}.recipe-actions{flex-direction:column-reverse}.recipe-actions form,.recipe-actions>.button{width:100%}.progress-grid{gap:9px}.progress-grid article{padding:14px 12px}.progress-grid article strong{font-size:30px}.progress-recipes>p{grid-template-columns:61px 1fr}.progress-recipes>p small{grid-column:2}.saved-section{padding:22px 4px 17px}.saved-list a{grid-template-columns:8px minmax(0,1fr);padding:9px 0}.saved-meta{grid-column:2}.footer-note{padding:14px 4px 0}}